「etc.」などの見出しの下には、時間の50%以上を簡単に費やすことができるものがあります。
デバッグ方法を学びます。
これは、科学的方法を学ぶことを意味します。本当に学んでいるということです。そして、残忍な自己正直でそれを適用します。あなたが知っていることは真実、あなたが知っていることは真実でない、そしてあなたが知らないことを正確に述べる方法を学びましょう。アイテムを誤って誤ったカテゴリに割り当てると、人生がずっと難しくなります。
「知っている」の代わりに「思う」と言うことを学びます。何かが真(または偽)であると「考える」場合にのみ「I know」と言うことができ、それを証明します!
多くのバグは些細なものですが、コードがどうあるべきかを「知っている」ため、見にくい場合があります。それを説明する友人を見つけてください。あなたのコードを知らないが、あなたがBSを吹き飛ばすことができないことを知っている人:「専門家のばか」であることを彼らに依頼してください。彼らにそれを説明している最中に突然立ち止まって、「そして…あなたは…それを見て…それを見て…ありがとう。」と言っても驚かないでください。
自明でないバグには、多くの技術が必要です。タイミングに関係しないほとんどのバグをすばやくスポットできるクラシックは、アラスカのウルフフェンスです。アラスカのどこかにオオカミがいます。状態を半分に切るフェンスを構築します。オオカミはどちら側にいますか?その辺を半分に切ります。泡立て、すすぎ、繰り返します。これをコード内の適切に選択された場所で20回行うと、バグ(オオカミ)が存在する可能性のある領域が1/1048576に減少します。そのオオカミを殺します。
ヒント:物理的、精神的、またはその他の種類のハンドウェーブを探します。あなた(またはあなたの同僚)がコードの一部に注意を向ける/迂回する/注意を最小化するとすぐに、完全に狂暴になります。何時間も何日もd * mnを探して、それでも見つけられないにもかかわらず、バグを知っているだけの領域はありえないからです。誰も「さようなら」をもらわず、誰も(マシン、OS、コンパイラー、またはあなたを含む)いかなる種類の「正当な敬意」ももらえません。バグがあります。限目。文の終わり。さあ、d * mnを殺してください。
デバッグをそれ自体の主題として教える学校はありません。IMNSHO、これは彼ら(大学/教授)があなたにプログラマーであることを教えていないという最も明白な証拠かもしれませんが、彼らはあなたに彼らのように教えているのですか... 厳しい?おそらく。本当?自分で決めてください。今それを証明します。