2009-08-04

http://anond.hatelabo.jp/20090719101938

ちがうにょー

デバッグに梃子摺る人が初心者に多いわけは、主に次の3つに起因するにょ。

エラーメッセージを見ることに慣れていない

エラーメッセージの見方を知らないからエラーメッセージを全く見ない。エラーが出ている場所と内容まで事細かに記してあるコンパイルエラーメッセージや実行時スタックトレースを前に絶望してしまい、慌ててソースコードを1から読み直してしまう。特によく耳にするのが『どこが悪いのかわかりません』だけど、数行のエラーメッセージに答えがずばり書いてあることがほとんどだったりします。

データフローという概念を知らない

特にプログラミングに慣れていない初心者が陥りがちなのが、制御フローばかりに目が行ってしまい、制御フローから類推できるデータフローには気を配らないという現象。例えば値「1」を返す関数が「2」を返してきてしまった。確かにそういう場合には制御フローを辿ることも重要だけど「2の源流をたどってみる」ことをすれば、意外とすんなり原因が見つかることも多かったりです。

一字一句まで気を配らない

たままの文字にばかり注意してしまい、例えば半角空白と全角空白とタブを見分けていなかったり、他にも行末に1個空白が紛れていて「なんで上手く処理されないんだ」と悩んでしまう人が意外といる。他にもコンパイルエラーで多いのが ; の有無だったり () の対応だったり。原因の目星がついても、最後の最後で躓くのはおおよそこういうポイント。慣れればぱっと見で気付くことなんだけど、このあたりが前述2つの理由と相まって、意外と疎かにされやすいところなんだよね。

総じて、デバッグを出来ない初心者に共通する原因は「結果から原因を探ることに慣れていない」ということに集約されたりする。そもそも結果を見ていなかったり、結果から原因を逆算する手法を知らなかったりするのが、「慣れていない人」というわけです。

記事への反応 -
  • 複数の新人プログラマーを見ていると、大抵はまともにデバッグが出来ない。 原因を予想できず、検証もできず、力業で偶然発見するというお粗末さである。 また、ある3000人ア...

    • ちがうにょー デバッグに梃子摺る人が初心者に多いわけは、主に次の3つに起因するにょ。 エラーメッセージを見ることに慣れていない エラーメッセージの見方を知らないからエラー...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん