プログラマは棋士である

昔、こんなことを言っている人がいました。

プログラミングなんて、しっかりロジック立てて、
その通りに書くだけだろ?

もちろんこの人はコードなんて書けません。自分は自分の領域をプロとしてこなすから、お前はお前の領域をプロとしてこなせというタイプ。そのポリシー自体は別にいいのですが、こんなこと言う人とは絶対一緒に仕事したくないと思ったものです。

確かに、ロジック立ててコード書くだけなんですが、それは例えば将棋だって同じことです。敵味方合わせても駒は40しかなく、動き方が決まっているのですから、ちゃんとシミュレーションすれば勝てるはずですね、羽生善治にだって。でも実際は勝てないんですよ。そんな暴論を振りかざすには人間の頭は処理速度もメモリも足りなくて、じゃあ紙と時間があれば良いのかと言ってもどうせどこかで間違えるんです。

全部の手を読む余裕はない。だから必要そうな手だけを読むわけですが、これはもうスキルや経験の世界であって、「だけだろ?」なんて言えるものではありません。

そして、プログラマが音楽を聴きながら仕事をしていたり、夜間など人がいない時間に仕事をするのも、プログラマが棋士だからです。将棋を指すのは、和室だったり縁側だったりしますが、それは決まって静かな場所です。

図書館のような環境を、とまでは言いませんが、もしプログラマの部署があったなら、その部屋くらいは電話を置かなくてもいいのではないかなと思います。