考えないのが、いいプログラマ

先日、プロ棋士対コンピュータというNHKの番組があった。
その中で、羽生名人がどんだけ先読みしてるかという話で、初心者よりちょっと多いくらい、中級者より少ない手数しか先読みしてないということを言ってた。
確か、初心者が10手、中級者が20手、上級者が30手で、羽生名人は15手くらい、とかだったと思う。まあ、そのくらいの比率。

理由としては早くから枝刈りをして選択肢をせばめてるから、深くまで読む必要もないんだと。最初から勝てる手を選んでれば、読まなくていいよね。

で、これってプログラマにも当てはまるんじゃないかと。
幸い、プログラムを組んだ年数だけは長くなってきてて、もうプログラムを組んだことがない年数のほうが圧倒的に少なくなってるくらいなんで、ある程度、考えなくても正しい選択をするようになってる。
最初から間違わないなら、検証しなくていいよね。

たとえば関数の行数とか、クラス構成とか、まあその場の制約を満たすようにちゃんと組んでおけば、だいたいいい感じの構成になるわけで。
システムのほとんどは、まあそんなに難しく考える必要もないし。
もちろん、少しは構成を考えないといけないような部分もあるんだけど、えーい考えても埒があかないからとりあえず組んじゃえ、と手を動かしてれば、なんかいい感じになる。

で、これって、最初から枝刈りをやってて、明らかにだめな選択肢はそもそも考えに上がってこないから、考えにあがった時点で大きく間違ってないんだと思う。
そこまでなるには、まあそれなりに勉強して、コード書いて、失敗してっていうのを積み重ねておくのが大事なんだろう。

ただ、ぼくの場合は、あまり使える知識を持っていないようで、いざ仕事となると調べ物ばっかりして試行錯誤ばっかりして、考えずに仕事をするというほどにもならないのだけど。
それに、よくわからんアルゴリズムを試行錯誤とかいう仕事もやってないしね。