高難度のプログラムほど一発で動く不思議
高木です。おはようございます。
私は現役のプログラマーです。
これまでの経歴を振り返ってみると、それなりに高難度のプログラミングに関わったことが多いほうだと思います。
今回は、これまで比較的高難度のプログラミングを経験する中で感じたことを書いてみることにします。
タイトルにも書きましたが、高難度のプログラムほどなぜか一発で動く傾向があります。
一発といっても、タイプミスやその他のケアレスミスはどうしても発生します。
ですので、ビルドが通ったあと、一発で動くというのが正確な表現かと思います。
一方で、つまらないぐらい簡単なプログラムほど一発で動かなかったりします。
この差はなんでしょうか?
難度が高く、複雑なものを設計、実装するときは、集中力が研ぎ澄まされています。
そういうプログラムに取り組むときというのは、PCに向かっているとき以外のほうがはかどったりするものです。
例えば、歩いているとき、トイレに行っているとき、風呂に入っているとき、休憩しているとき、電車に乗っているときなどです。
何というか、一種の瞑想状態で設計していきます。
そして、プログラミング言語で直接思考し、実装をひねり出します。
それを慎重に脳内デバッグします。
あとは結果をコーディングするだけです。
こうして得たソースコードは、大抵一発で動くものなのです。
実際には、あとから仕様変更や追加が発生することで、完璧だったはずのものが崩れていくのですが・・・・・・。
あと、コメントをたくさん書くように要求されたりすると、コーディング中にノイズが入って精度が悪化しますね。
できあがったコードをアウトプットするだけなのに、その間に違う作業を割り込ませるわけですから、当然のようにエラーが頻発します。
プログラミング言語で直接思考して得た結果を、日本語に翻訳しながらコメントを書くのも苦痛でしかありません。
こういう仕事に関わっていると、いろんな人と遭遇します。
私のような人は、ほかにもいないわけではありませんが、ちょっと珍しがられますねえ。