たくさん書くということ

森博嗣さんの日記から。落書きが偶然うまく描けてしまって、あとで同じように書こうと思ってもどうしてもその最初の落書きほどうまく描けない、という現象の話。たしかに身に覚えがある。それもしょっちゅう。その最後のところ:

同じものを何度も描くと、だんだん客観的になれる。1つだけ描いて、「これだ」と思っているうちは、主観的であることが多く、何日か経って頭が冷めてくると、「そうでもないな」と幻滅することになる。そして、この幻滅する能力が、客観的な目であり、これまた重要なものである。

これはプログラミングでも全く同じだなあ。1つだけ書いて大事にとっておくのだと書かれたプログラムのよしあしはよくわからない。だけど、大量のコードを山のように書き捨てていくと、だんだん自分が書いたコードでも突き放して見ることができるようになる。まわりを振り返っても、自分の経験からでも、コードをどれくらい消してきたかがそのままプログラマとしての基礎体力になっている気がする。
リファクタリングプログラマに歓迎されたのは、同じことをやるためのコードを何種類も書くことを正しいことだと主張していて、それによってコードの客観的な評価みたいなことをしやすくなるのがやがてはプログラマの力に結びつくことが期待されたからなのではないか。
とここまで書いてきて、37signalsの"Write less code"というキャッチフレーズを思い出したのだが、その続きはあとで書く。


引用元の落書きの話は、これは脳の情報処理の問題であって偶然うまく描けたように思うのも錯覚の一種なんだけどその錯覚は重要だと言っていて、それもまた面白いのでそちらも読んでください。