プログラミングはスポーツ?

まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。この際、「絶対に論理的に考えないこと」が必要である。(中略)だいたいイメージができたところで、心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。(中略)上記までで、ほぼすべての作業は完了している。残された仕事として、最後に、コンピュータに対して、プログラミングを行う必要がある。(中略)コンピュータの前に座って、キーボードの上に両手を置けば、後はあまり考える必要はない。自動的に手がキーボードを打ち、プログラムを入力して完成させてくれる。この処理は一切、論理的思考では行われていないので、途中で論理的思考を行うことは厳禁である (作業の邪魔になる)。ひたすら何も考えない。(登 大遊@筑波大学情報学類の SoftEther VPN 日記 - 論理的思考の放棄

これは面白い文章を読んだ。筆者も語るように、これはクルマの運転と同じなのだろう。いちいち意識したら却ってうまくいかない。おそらくスポーツなども同じで、たとえば野球なら、バットを振るときにその挙動をいちいち論理的に考えたりしない。自分はプログラマではないので適用可能かどうかはわからないが考え方の筋道としては同意する。問題は、強烈にゴールをイメージする力と、もうひとつ、ほぼ無意識のうちに手を動かす力だ。とくに後者は、野球選手がバットを振るのと同じように何度も何度も練習しなければいけない。つまり、ゴールと手元を強烈に鍛える。真ん中の論理は邪魔なので排除する、と。これはおもしろい。プランニングに応用してみようかな。