ある読者との電子メールのやり取りの中で出てきた話である。彼は、開発者向けのブログや記事、雑誌の内容が2種類に分類できるということを述べていた。その2種類とは入門者向けのもの("Hello World"に代表されるもの)とエキスパート向けのもの(MSDN Magazineのようなもの)である。
これはなかなか鋭いポイントを突いている。開発者が入門レベルから中級レベルにステップアップするうえで役立てることのできる情報がほとんどないのだ。以下は、こういったステップアップを実現するための10のティップスである。
#1:新たなプログラミング言語を学習する
新たなプログラミング言語を学習することは、それがどのような言語であったとしても、より優れた開発者になるための近道となるのである(このことは、あなたが既に多くのプログラミング言語を修得していたとしても成立することである)。言語を選択する際には、あなたが普段使っているものとは大きく異なるものを選ぶのが良いだろう。例えば、あなたがC#の開発者なのであれば、VB.NETやJavaよりもRubyやGroovyを学習する方が良いだろう。
ここで私が「新たなプログラミング言語を学習する」と言っているのは、「本当に身に付ける」ということを意味している。プログラミング言語の学習というものは、まずはシンタックス、次に組み込み演算子とライブラリ、そして最後に「言語の使い方」という3つの知識領域から成り立っているのだ。最初の2つはさほど難しくない。ちょっとした経験のある開発者であれば、言語にもよるものの、30分から数時間もあればコードのメンテナンスに必要なシンタックスを身に付けることができるだろう。演算子とライブラリは、徐々に蓄積されていく知識であり、知っておくべきことを記憶するまで手元の参考資料で確認することになる。しかし3つ目の知識領域である「言語の使い方」は、その言語を何カ月間も使い続けて初めてものにすることができるのだ。プログラミング言語に見合ったプロジェクトを、そのプログラミング言語のスタイルに合ったかたちで遂行していくことをお勧めする。
新たなプログラミング言語を身に付けることで、あなたの開発者としての能力が開花していくのだ。
#2:検索を行うための高度な技術や戦術、戦略を学ぶ
より優れた開発者になるに従って、単なるスキルを向上させるというだけでなく、情報を検索するスキルも向上させるということが大事になってくる(関連英文記事)。早い話が、最近のプログラミング言語や開発フレームワークはたいていの人々にとって、憶えておくにはあまりにも巨大なものとなっているのだ。その結果、仕事をやり遂げる能力というものが、あなたの調査能力に依存することもしばしば出てくるわけである。残念なことに、正確かつ品質の高い情報を見つけ出す方法は、TechRepublicといった技術者向けのサイトにアクセスして答えを求めることや、適当な検索エンジンに検索語を入力するということだけではないのだ。
「技術」や「戦術」「戦略」という言葉は同じものを指しているように思えるかもしれない。しかし、実は同じものではないのである。あなたが学ぶべき技術というのは、お気に入りの検索エンジンを用いた高度な検索手法のことである。これには論理演算子の使い方や結果のフィルタリング手法(除外キーワード、ドメインの制限など)、語順の持つ意味合いといったことが含まれる。こういったものを身に付けるには、マニュアルを読むのが一番だろう。
また、特定の検索時におけるアプローチ方法を知り、実際に検索すべきものが何なのかを知るという戦術を学ぶべきだ。エラー原因の究明は簡単だ--単にエラーコードを検索すればよいのだ。しかし、さまざまな検索を行う際におけるキーワード選択はとても難しいのだ。
戦略に関して言えば、どの検索エンジンを使用するのか(ヒント:汎用の検索エンジンを使うことがいつも適切であるとは限らないのだ)や、汎用の検索エンジンに頼る前にどのサイトを訪問するべきか、どの掲示板に助けを求めるのかといったことを学ぶ必要がある。