#6:いくつかの先進的アイデアを徹底的に掘り下げて学習する
中級開発者になるには、仕事において本当に得意とする分野を持つことが一番だろう。私の場合、マルチスレッド/並列処理や、正規表現、動的プログラミング言語の活用を得意分野としていた(最近はPerlをあまり使わなくなったため、最初のもの以外は少し色あせてきている)。どういった経緯でこれらが私の得意分野になったのだろうか?マルチスレッドと並列処理については、該当分野の記事を読んだ時に面白そうだと感じ、自分自身のものにしようと思い立ったのだ。そしてこういった技術を使ったアプリケーションを手がけ続けたのである。また、私はPerlの正規表現を用いた仕事を星の数ほどこなしてきた。さらに私は、テンプレート処理エンジンと組み込みデータベースシステムを用いたe-コマースエンジンを自らで2年ほどかけて開発したのだ。
あなた自身が本気で興味を持てることを探して欲しい。それは、ひょっとしたら画像処理かもしれないし、データベース設計かもしれない。あなたがずぶの素人だったとしても、少なくとも興味を持った分野におけるエキスパートになろうと決意して欲しい。そうすることで早い段階で中級にレベルアップすることができ、いったんそこまで到達したのであれば、エキスパートへの道は半ばまで来たも同然なのだ。
#7:あなたの分野を支える基本的な理論を学ぶ
"Hello World"プログラムを書いてみるのも悪くはないが、そのことと画面に文字列を表示させる方法を理解することとは別モノである。あなたの行う作業を支える「基礎」を学習することで、仕事がよりうまくこなせるようになるのだ。なぜかって?ものごとが動作する仕組みを理解することで、何かがおかしい場合に、その原因を突き止めるための手がかりが得やすくなるといった利点が生み出されるのだ。あなたのやっていることの裏側で起こっている詳細を理解することで、より優れた技術者になることができるわけだ。
あなたがウェブ開発者である場合、HTTPのRFCやHTMLの仕様に目を通して欲しい。また、コードジェネレータを使用しているのであれば、それが生成するコードに、データベースツールを使用しているのであれば、それが生成するSQLに目を通すといったことを実行して欲しい。
#8:上級開発者のコードを読む
仕事の場において、上級開発者が記述しているコードを読み、与えられた問題に対するアプローチ方法とその理由について尋ねてみて欲しい。また、可能であればオープンソースプロジェクトもチェックしてみて欲しい。他の開発者が最善のコーディング習慣を身に付けていない場合であっても、コードの書き方についてのさまざまなことを学べるはずだ。この際には悪い習慣を身に付けないように注意して欲しい。他の開発者がやっていることをすべて鵜呑みにして、そのまま真似ようとしないことが肝心だ。何がうまくいき、どういったことに意味があるのかを熟考したうえで、それを身に付けるようにするのだ。