この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。
「書いたプログラムが思った通りに動作してくれない」というのは、プログラミングを学んだことがある者ならば、誰もが遭遇する場面でしょう。
何度もコードを見直し、あちこちに手を加えてはみるものの、問題は一向に解決しない。
そんな状況で数日間に及ぶ試行錯誤を強いられることも珍しくありません。
これが長く続くと、問題の原因は自分のコードではなく、コンパイラやライブラリのバグにあるのではないか、という疑念がプログラマの頭を支配するようになります。
しかし結局のところ、プログラムの動作不良の原因がコンパイラやライブラリにあることはごく稀なケースであり、自分のコードに問題がある場合が殆どです。
友人や同僚に「これは絶対コンパイラのバグだ。」などと散々吹聴した後に、自分のミスが発覚したときなどは、穴があったら入りたいほど恥ずかしい気分になります。
しかし、このような経験は、実はプログラマにとって非常に重要なものだと言えます。
何故なら、こうした経験を通じて、プログラマは「自分を疑う」という姿勢を身につけていくからです。
プログラムは思った通りに動かない。書いた通りに動く。
プログラマの格言
プログラミングにおける失敗は、それが自分の過失であることがこれ以上ないほど明確に示されてしまいます。
もちろん、あれこれと言い訳することはできますが、「ミスをした」という意識は、自分自身の心に確実に刻み付けられることでしょう。
こうした「過失の自覚」は、己を疑い、思い違い・思い込みに気が付くことの困難さと大切さをプログラマに教えてくれます。
そして、この教訓は、プログラミングに限らず、一般に問題解決の手段を模索する場においても有用です。
自分の「外」にある要因については比較的容易に発見することができますが、自分自身の先入観・思い込みにもとづく障害というのは、認識されにくいため非常に厄介なものです。
この先入観・思い込みを打破する思考方法を身につけるために、プログラミングの勉強をしてみる、というもの面白いのではないでしょうか。
成田 (懐疑主義者?)