プログラムを書いていると、誰しも一度はエラーや予期せぬ動作に直面します。
原因を追ってみると、実は「自分の思い込み」が招いたミスだった…という経験、ありませんか?
特に、ファイルや参照先の取り違えは、現場で本当によく起こる「思い込みエラーあるある」です。
そこで今回は、僕が思い込みによってエラーに気づくのが遅くなるランキングTOP5を紹介します!

🥇第1位:「==」にすべきところを「=」にしていた!
条件式で「代入演算子(=)」を使ってしまうパターン。if (a = 1) と書いても構文エラーにはならず、代入された結果が真として評価されてしまうため、
「比較しているつもりで代入していた」という厄介な状況に陥ります。
🥈第2位:別のファイルを参照・更新していた!
「修正したのに反映されない!」と思ったら、別フォルダのファイルを編集していた…。
あるいは import パスの指定を間違えて、意図しないファイルを読み込んでいた。
複数環境(開発/本番)があるプロジェクトでは、これが本当に多いです。
🥉第3位:なぜか動くけど重い!実は無限ループ!?
「動くには動くけど、やたら重い…」
そんなときは、ループ条件のミスによる無限ループの可能性が高いです。
while (1) { ... } // 永遠に終わらない
処理が止まらずCPUを食い尽くす、静かな恐怖。
🏅第4位:条件分岐の範囲や論理演算子を思い込み
「10〜20の間」と思いながら if (x > 10 || x < 20) と書いてしまうなど、
日本語的思考と論理式がズレるのが典型的なパターン。
頭の中のイメージとコードの実態がズレると、原因特定が遅れます。
🎖第5位:関数を呼び出していない・全角文字の混入
func; と書いて実行していない、または x(全角)や lenght(スペルミス)など。
「合ってるはず」と思っていると延々デバッグ地獄に。
💡まとめ
思い込みエラーの厄介な点は、「自分では正しいと思っている」こと。
そのため、発見が遅れ、時間を大きく浪費してしまいます。
僕の感覚では、「なぜか動かない」「原因が全くわからない」と本気で悩んでいるとき、
ほとんどの場合、このランキングで紹介した5つのパターンのどれかに当てはまっている気がします。
はたから見れば「そんな凡ミス!?」「信じられなーい!」と言われそうな内容ですが(笑)、
実際、複雑なロジックを組んでいるときほど、そちらの思考に意識が集中してしまい、
単純なミスに気づけなくなるものです。
だからこそ、こうした「思い込みエラー」を棚卸ししておくことが大事。
トラブルに直面したときに、
「あ、もしかしてこのパターンかも」と思い出せるだけで、
エラー発見のスピードは確実に上がります。
プログラミングは「論理」だけでなく「冷静さ」も試される世界。
自戒を込めて――これからも、自分の思い込みを疑うクセをつけていきたいですね。
