最終更新日: 2007-07-27
WEB+DB PRESS Vol. 40 に向けて書いた記事の元の原稿です。
日常的な学習はプログラマにとって不可欠な活動です。ソフトウェアの世界には次々と新しい流行が登場しますし、基礎的な事柄だけでもマスターしておきたいことは山ほどあります。今回は日常的な学習の方法について私のパターンに照らし合わせて考察してみたいと思います。
ブログは学習というよりは情報収集に適したメディアです。ブログの記事は、だいたい小粒で、ひとつの記事で内容が完結しています。他の人がどんなことに興味をもっているかわかるのも、流行を知るといった点でプラスです。とはいうものの、ブログで得られる情報の大半は、断片的な雑多なノウハウであるため、長期的に役立つような知識のかたまりはほとんど残りません。
プログラムを書いている最中に「今すぐ知りたい」といった類いのピンポイントの情報 (たとえば、 Perl で文字コードを変換するにはどうすればいいんだっけ、とか) は、ウェブを検索すれば、大体見つかります。一方で、最近どんなフレームワークが流行っているんだろう、とか、ウェブサーバの活用法などに関してある程度まとまった情報を仕入れたいときは雑誌の記事が役に立ちます。
OSやネットワークといった基礎的な事柄をじっくり勉強するには、やはり書籍がしっくりきます。難しそうな専門書を読むのはなかなか億劫ですが、一度読み始めてしまえば案外すんなり読めてしまうこともあります。私の知る生産性の高いプログラマは実践的なノウハウに通じているだけでなく、基礎もしっかりしています。見習いたいところです。
この他にも、 Wikipedia などネット上には大変有益な情報源があります。また、覚えたことを実際に手を動かして試してみたり、人に説明したりすると、より理解が深まります。
日常的に学習することは重要とわかっていても、つい怠けてしまいがちです。ここからは私が意識している「続けるコツ」について書いてみたいと思います。
説明を1回聞いただけでは理解できなかったことも、違う言葉で何度も聞くとだんだんわかってくる、ということがあります。同様に、同じテーマの本を何冊か読むと、1冊読んだだけではよくわからなかった部分が理解できたりします。1つの説明を読んで理解できなくてもあきらめないで、別の説明を読めばわかるだろうと気楽に構えるのが吉です。
集中して取り組んだ方が物事がはかどるのは確かですが、集中状態に入るのはなかなか容易ではありません。集中してやろう、と気負わずに、何もやらないよりはだらだらやったまし、くらいの心構えで取り組むと気楽です。
厚めの専門書でも一日、十数ページ読めば、一か月そこそこで読了できます。しかし、一度読まない日を作ってしまうと、つい、ずるずると間隔が伸びてしまいがちです。間隔をあけないのが最善ですが、間隔があいてしまっても気にせずに、さっさと再スタートすることが次善の策だと思います。
ある程度大きな事柄を学ぶには、「よしやるぞ」という思い切りが必要です。このときよく障害になるのが「今さらこんなことを勉強しても遅すぎるのではないか」という懸念です。とはいえ、そうやって躊躇しているといつまでたっても学べないことは確かです。ここは、英語の諺 "Better late than never" (遅くてもしないよりまし) に従うのが得策です。
大型書店に足を運ぶと、大量の書籍に圧倒されます。また、高度な内容のブログを読むと、著者の知識や技術への理解に圧倒されることもあります。こういった刺激はプラスにもなりますが、あまり刺激が多すぎると、焦りを感じて自信を失ったり、他の人がやっていることや流行に振り回されすぎる危険性もあります。自分のペースで地道にやるには、刺激を受けすぎないことも大切なようです。
猛スピードで流行に振り回されるオレ
*1
今回は日常的な学習について書きました。ネット時代には情報を探すスキルさえあれば知識などさして重要ではないという考え方もありますが、さまざまなノウハウを組合せて瞬時に問題解決の方法を編み出したり、技術への深い理解に基づいて質の高いシステムの設計を行ったり、といったことは検索で代替できるスキルではありません。地道に修行を続けていきたいと思います。
*1写真、暗いのでレタッチで明るめにしてください