Sollte ein Programmierer gute Debugging-Fähigkeiten benötigen?
Ja. Trotzdem möchte ich Sie bitten, die Methodik im Interview (dh Quiz / Test-Stil) als weniger perfekt (okay, fehlerhaft) zu betrachten, da viele Leute Code auf Papier als seltsame, ungewohnte Erfahrung empfinden.
Da das Debuggen ein Prozess ist , nicht die Antwort oder das Ergebnis (z. B. der Fehler ), würde ich die Verwendung eines interaktiven Dialogs oder einer interaktiven Diskussion als besseres Mittel zur Bewertung der Debugging-Fähigkeiten eines Kandidaten vorschlagen. Während die meisten Leute ein informelles Ad-hoc-Debugging-System verwenden, haben gute Kandidaten im Allgemeinen ein ähnliches Muster: Sie stellen Fragen, um das System oder die Annahmen und Anforderungen zu verstehen, dann das Problem zu isolieren (häufig zu teilen und zu erobern) und methodisch zu vergleichen den Code an die Anforderungen anpassen und die erwartete Eingabe / Ausgabe auswerten, anstatt eine Reihe von Dingen willkürlich auf einmal zu ändern, bis sie funktioniert.
Ich drücke auch Vorbehalte gegen Rätselprobleme während der Interviews aus, insbesondere in schriftlicher Form, als ob der Kandidat nicht die richtigen Annahmen über den Bezugsrahmen hat (der Trick)) ist das Rätsel für sie möglicherweise nicht lösbar. Viele Interview-Rätsel leiden unter einem einzigen richtigen Weg, während das Leben kompliziert ist und die kreativsten Ideen diejenigen sind, die überraschend neue Ansätze verfolgen, um ein Problem zu lösen, das mit einem bestimmten vorgekochten Rätsel möglicherweise nicht funktioniert, mit einer erwarteten Lösung . Es ist, als würden alle Trompeter Jazz spielen. Dies kann erreicht werden, indem die Frage als nicht-konfrontative (Druck kann Kreativität stören) interaktive Diskussion gestellt wird. Auch hier ist die Antwort für mich zweitrangig, um einen guten Gedankenprozess zum Ausdruck zu bringen. Sie müssen sie wahrscheinlich bitten, laut zu denken, aber dies ist meiner Erfahrung nach produktiver.
Ich habe Zellers Why Programs Fail nicht gelesen oder bewertet , kann aber empfehlen, das Debugging von Agans als kurze, schnelle Lektüre zu verwenden, um den Ad-hoc-Debugging-Prozess zu einem strukturierten, konkreten und organisierten Prozess zu machen, der Abhilfe schaffen kann effizienter beim Debuggen sein. Drucken Sie auch eine Kopie aus und hängen Sie sie an Ihre Kabine oder Problemumgehung, das Debugging Rules-Poster . Es ist eine perfekte Erinnerung an die schlechten Tage, an denen nichts richtig zu laufen scheint. Ich habe ein paar schlechte Tage und verbringe weniger Zeit mit dem aktiven Debuggen (Lesen: verwirrt meinen Kopf kratzen ), indem ich versuche, ihnen im Geiste zu folgen, wenn nicht im Brief.