ちがうにょー
デバッグに梃子摺る人が初心者に多いわけは、主に次の3つに起因するにょ。
エラーメッセージの見方を知らないからエラーメッセージを全く見ない。エラーが出ている場所と内容まで事細かに記してあるコンパイル時エラーメッセージや実行時スタックトレースを前に絶望してしまい、慌ててソースコードを1から読み直してしまう。特によく耳にするのが『どこが悪いのかわかりません』だけど、数行のエラーメッセージに答えがずばり書いてあることがほとんどだったりします。
特にプログラミングに慣れていない初心者が陥りがちなのが、制御フローばかりに目が行ってしまい、制御フローから類推できるデータフローには気を配らないという現象。例えば値「1」を返す関数が「2」を返してきてしまった。確かにそういう場合には制御フローを辿ることも重要だけど「2の源流をたどってみる」ことをすれば、意外とすんなり原因が見つかることも多かったりです。
見たままの文字にばかり注意してしまい、例えば半角空白と全角空白とタブを見分けていなかったり、他にも行末に1個空白が紛れていて「なんで上手く処理されないんだ」と悩んでしまう人が意外といる。他にもコンパイル時エラーで多いのが ; の有無だったり () の対応だったり。原因の目星がついても、最後の最後で躓くのはおおよそこういうポイント。慣れればぱっと見で気付くことなんだけど、このあたりが前述2つの理由と相まって、意外と疎かにされやすいところなんだよね。
総じて、デバッグを出来ない初心者に共通する原因は「結果から原因を探ることに慣れていない」ということに集約されたりする。そもそも結果を見ていなかったり、結果から原因を逆算する手法を知らなかったりするのが、「慣れていない人」というわけです。
複数の新人プログラマーを見ていると、大抵はまともにデバッグが出来ない。 原因を予想できず、検証もできず、力業で偶然発見するというお粗末さである。 また、ある3000人ア...
ちがうにょー デバッグに梃子摺る人が初心者に多いわけは、主に次の3つに起因するにょ。 エラーメッセージを見ることに慣れていない エラーメッセージの見方を知らないからエラー...