Cogito Ergo Sum.

我思う故に我あり

プログラミングと将棋

 プログラミングってのは将棋みたいなものだよな、と思う。

 将棋入門を1冊読めば、駒の動きや将棋のルールはわかる。ところが、それだけじゃ勝負を楽しむことができるほど実力がつくわけじゃない。

 プログラミングも入門書を読めば、まぁ、誰だって全く理解不能ということはないと思う。だけど、それだけじゃ何か実用的なプログラムを書けるほどの実力がつくわけじゃない。

 将棋の場合だったら、とにかく対局をこなすのはもちろん、他の本も読んでみたり、他の人の打ち方を見てみたり、教室や道場に通ったり、詰め将棋の本をやってみたり、定石を覚えたり、棋譜を読むなんてことまでして(そこまでやる人は滅多にいないだろうが)、だんだん上手く(強く)なっていく。

 プログラミングの場合も、プログラミングの場数をこなすのはもちろん、他の本も読んでみたり、他の人のプログラムを読んでみたり、教室や学校で学んだり、アルゴリズムの本を読んでみたり、定石を覚えたり、リバースエンジニアリングなんてことまでして(そこまでやる人は滅多にいないだろうが)、だんだん上手に(得意に)なっていく。

 まぁ、少なくとも1冊本を読んですぐにできるようになるものじゃあない。

 ところで、僕も小学生のときは少し将棋をやったが、実際のところ弱かった(僕は「定石を覚える」みたいなことをひどく窮屈なことに思っていた)。どおりでプログラミングも…。