プログラマはプログラム書くのが仕事

吉岡さんのblogより。

まぁ言いたいことはわかるし、「そうだな」と思わんでもない。実際、プログラムを書いてる時間よりも読んでる時間の方が長いのは確かだし、フェーズ的にもそうだ。まぁフェーズの方は「ロングテール」だったりするわけだけど。

でも、やっぱりプログラマの仕事はプログラムを書くことでしょう。

だって、サッカーなんて試合時間中ずっと走っているけど、サッカーはサッカーでマラソンの類ではない。たいていのスポーツで基礎トレーニングにランニングはあると思うけど、彼等はランニングをあくまでも基礎トレーニングだ。もちろん一つの表現として、「サッカーとはランニングだ」というのはあるけれど、それはあくまでも心構えとか時間のかけ方であって、そのものではない。

プログラマがプログラムを読むのは、プログラムを書くためだ。それは保守フェーズであっても同じことだ。

プログラミングを学習する時に、私はそんなに他人のプログラムは読んでない。全く読まなかったわけではないが、「プログラミングのトレーニングとして必須」というところまでは読んでいない。

確かに他人のプログラムを読めば、どんどんプログラミングの馬力は出せるようになるだろう。瞬発的な生産性も上がるだろう。しかし、私はプログラマに一番大切な能力は、「コードに落とすこと」ではなくて「考えること」だと思っている。

もちろん他人のプログラムを読んで考えるのは意味がある。しかし、そのプログラムが自分の能力よりも高ければ圧倒されるばかりだし、自分の能力よりも低ければ馬鹿にする。確かにそういったものでも参考にしながら考えることは出来るけれど、それで身につくのはたいていは「コーディング能力」であって「考える力」ではない。

それよりは、まず自分に「課題」を持ってある程度の結論が出るまで考えておき、そこでさらに「○○氏のコードではどうだ?」という姿勢で臨むべきだ。つまり、「読む」前に「考える」と「書く」を持って来るべきだと思う。

吉岡さんは能力高い人だから、無意識に「考え」たり「書い」たりしてから、他人のコードを読んでいたのだろう。けっして闇雲に「○○関係のコード」とかと思って読んではいないはずだ。だから、「読め読め」という「吉岡メソッド」成功の裏には、そういった「無意識」の部分があったはずだ。