いま私たちは実に面白い時代に生きています。ソフトウェア開発を仕事にする人は世界中に存在しています。自分と同じくらいの能力を持った人は、どこにでも、いくらでもいる、そう実感することも多いのではないでしょうか。そういう状況で自分の市場競争力を維持するためには、「学び続ける姿勢」がとても重要です。学ぶことを止めれば、早晩、恐竜のように滅びてしまうことになるでしょう。ずっと同じ仕事にしがみついていると、いずれ必要とされなくなる日が来ます。自分の仕事が、よりコストの安い誰かにアウトソースされることもありえます。

学び続ける、と言うのは簡単ですが、具体的にはどうすればいいのでしょうか。社員のスキルセット拡大のために費用を負担してトレーニングを受けさせてくれる気前のいい会社もありますが、社員のトレーニングのためにわざわざ時間やお金を使うことは一切しない、という会社も多いでしょう。やはり会社は当てにせず、自らのカで学んでいくのだ、と思っていた方が確かでしょう。学び、続ける姿勢を保つための手段をあげておきましょう。インターネットを利用すれば無料で済むものも多いです。

  • 書籍や雑誌、ブログなどを読む。Twitterや各種のWebサイトも参考になる。より深い知識が欲しい時は、メーリングリストやニュースグループへの参加も考える。
  • 本当に身につけたい技術は、コードを自ら書き、手を動かして学ぶ。
  • 常に自分よりレベルの高い人と仕事をするようにする。自分よりレベルの高い入が周囲にいないと、学ぶことは難しくなる。誰からでも何かが学べるというのは確かだが、自分より賢明で経験も豊富な人から学べることは、やはり圧倒的に多い。レベルの高い人がどうしても周囲にいないようなら、転職を考えた方がよい。
  • 自分の「良き師」になり得る人をネット上で探す。書いていることがどれも面白く「勉強になる」と感じる人がいれば、その人は師になり得る。もしその人のブログ等があるようなら、欠かさずに読むようにする。
  • 自分の利用しているフレームワークやライブラリに対する知践を深める。その機能と構造を十分に理解すれば、よりうまく使いこなせるようになる。オープンソースのものなら、デバッガを使ってコードを逐一確認し、中でどういうことが行われているのか順に見ていけばよい。これは最高に頭の良い人たちが書き、レビューもされたコードを直接目にする絶好のチャンスと言える。
  • 何かミスをした時、バグ修正をした時、システムに何か問題を発見した時には、ただ解決するだけでなく、そのバグや問題について深く理解するように努める。すでに過去に同様の問題に出会い、Web上で情報を提供している人がいる可能性も高い。Googleで検索すれば、ほぼどんな情報でも見つかる。
  • 自分が学びたいことを人に教えたり、話したりすることは非常に有効である。誰かが自分の話を聞き、質問をしてくると思えば、学ぶ意欲は自然に高まる。会社の同僚に昼食をとりながら話をしてもいいし、ユーザグループや、地元で聞かれるカンファレンスなどを利用しでもよい
  • 自分が興味を持っている言語、技術、分野に関連する勉強会(例:パターンについて学ぶコミュニテイなど)を自ら立ち上げるか、地元のユーザグループなどがあればそれに参加する。
  • カンファレンスに積極的に参加する。直接その場に行けない場合でも、内容のかなりの部分がオンラインで無料提供されていることが多いので、それを利用する。
  • 通勤時間が長い場合は、ポッドキャステイングを利用して学ぶ。
  • 自分のコードベースに対して静的分析ツールを実行する。あるいは、IDE使用中に警告が出される場合には、それについてよく調べる。ツールのレポートや、IDEの警告の内容を詳しく分析し、なぜ、このようなレポート、警告になったのか、その理由を追及する。
  • 「達人プログラマ」を読み、学んだことを実践してみる。本の教えに従い、毎年1つ新しい言語を学ぶ。たとえ言語が無理でも、少なくとも毎年1つは新しい技術、ツールについて学ぶ。そうして未知のものに触れることは、新たな発想の元になる。
  • 新しく学ぶのは、必ずしもコンピュータ関連技術でなくても構わない。システムが応用されるドメインについて学ぶことも重要で、ある。そうすれば、顧客の求めていることがよくわかり、ビジネス上の問題の解決により役立つシステムを作ることができる。また、自分の生産性を高める方法も学ぶべし。「生産性を高める」とは、一定の労力、時間で得られる成果を大きくすることを意味する。
  • 学校に通う。

映画「マトリックス」のネオのように、必要な情報があれば即時に脳にダウンロードするような能力が私たちにもあればいいのですが、あいにくそんな能力はありません。時間をかけ、努力して学ぶしかないのです。とはいえ、起きている時間のすべてを学ぶことに向けることは不可能だしそんな必要はありません。そのほんの一部でも、たとえば週に1回1時問でも、何もしないよりはずっと良いでしょう。人間には日々の業務とは関係ないことをする時があってもいいし、むしろそうあるべきでしょう。

技術はすごい速さで変化していきます。学ばなければ置いていかれるのは確実です。