Unter der Überschrift " etc. " steht etwas, das leicht 50% oder mehr Ihrer Zeit in Anspruch nehmen kann.
Erfahren Sie, wie Sie Fehler beheben.
Dies bedeutet das Erlernen der wissenschaftlichen Methode . Ich meine es wirklich zu lernen. Und dann mit brutaler Selbstaufrichtigkeit anwenden . Erfahren Sie, wie Sie genau sagen, was Sie wissen, ist wahr, was Sie wissen, ist nicht wahr, und die Dinge, die Sie nicht wissen. Jedes Mal , wenn Sie schlampig ein Element in der falschen Kategorie zuweisen, haben Sie gerade Ihr Leben gemacht viel härter.
Lerne "Ich denke" statt "Ich weiß" zu sagen. Sie können nur dann "Ich weiß" sagen, wenn Sie "denken", dass etwas wahr (oder falsch) ist, und dann beweisen Sie es!
Viele Bugs sind trivial, aber sie können schwer zu erkennen sein, weil Sie wissen, wie der Code lauten soll ... es sei denn, es ist nicht so. Finde einen Freund, dem du es erklären kannst. Bitten Sie sie, ein "erfahrener Idiot" zu sein: Jemand, der Ihren Code nicht kennt, aber von dem Sie wissen, dass Sie BS nicht vorbeischießen können. Seien Sie nicht überrascht, wenn Sie mitten in einer Beschreibung plötzlich innehalten und sagen: "Und so können Sie ... sehen ... sehen, dass ... sh * t. Danke."
Nicht-triviale Bugs erfordern ein Arsenal an Techniken. Wolf Fence in Alaska ist ein Klassiker, der die meisten Fehler, die nicht mit Timing zu tun haben, schnell aufdecken kann. Irgendwo in Alaska gibt es einen Wolf. baue einen Zaun, der den Staat halbiert. Auf welcher Seite ist der Wolf? Schneiden Sie diese Seite in zwei Hälften. Aufschäumen, ausspülen, wiederholen. Durch 20-maliges Ausführen an ausgewählten Stellen im Code wird der Bereich, in dem der Fehler (Wolf) auftreten kann, auf 1/1048576 verringert. Töte diesen Wolf.
Tipp: Suchen Sie nach Handwellen - physisch , mental oder auf andere Weise. Sobald Sie (oder Ihr Kollege) einen Teil des Codes zucken / ablenken / auf ein Mindestmaß reduzieren, werden Sie total tollwütig . Weil der Bereich, in dem Sie gerade den Fehler kennen, nicht sein kann, obwohl Sie Stunden / Tage damit verbracht haben, nach dem D * MN-Ding zu suchen und es immer noch nicht finden können ... das ist der Ort mit der höchsten Wahrscheinlichkeit für den Fehler. Niemand bekommt ein "Tschüss" , niemand (einschließlich der Maschine, des Betriebssystems, des Compilers oder Ihnen ) bekommt irgendeine Art von "gebührendem Respekt". Es gibt einen Bug. Zeitraum. Ende des Satzes. Jetzt geh und töte das d * mn Ding.
Ich kenne keine Schule, die das Debuggen als eigenes Fach unterrichtet. IMNSHO, dies ist vielleicht der eklatanteste Beweis dafür, dass sie (Universitäten / Professoren) Sie nicht lehren, Programmierer zu sein, sondern Sie lehren, ... wie sie zu sein? Hart? Vielleicht. Wahr? Entscheide dich. Jetzt beweise es.