Wie viele console.log()-Aufrufe packst du in den Code, bevor du merkst, dass Chrome DevTools bereits alles hat, das du brauchst?
Der echte Perspektivwechsel ist, das Debugging nicht als verzweifelte Schnitzeljagd zu sehen. Chrome DevTools hat die Sources, wo du echte Breakpoints setzen kannst - nicht nur „gib diesen Wert aus und hoffe das Beste" - und dann Zeile für Zeile durch den Code steppen kannst. Was die Leute viel zu wenig nutzen, ist das Beobachten von spezifischen Variablen, damit du in Echtzeit siehst, was sich ändert, während der Code läuft. Und dann ist da noch die Console Drawer, die immer griffbereit ist - perfekt für schnelle Checks, ohne die Ausführung zu unterbrechen.
Noch eine Sache, die mich unzählige Male gerettet hat: den Network Tab nicht nur nutzen, um zu sehen, ob Requests rausgehen, sondern um genau zu kontrollieren, was vom Server ankommt. Ich habe schon Stunden damit verbracht, Logik zu debuggen, die eigentlich ein Problem in den Daten war, die ankamen. Wenn die App komplex ist und einen internen State hat, sind Vue DevTools oder React DevTools (je nachdem, was du nutzt) absolute Killer - du siehst den State in Echtzeit mutieren und kannst zu vorherigen States zurückgehen. Das ist keine Magie, es ist nur, dass die Leute oft nicht wissen, dass es das gibt.
Ach, und noch eine letzte, banale aber wahre Sache: setz conditional breakpoints. Du willst nicht immer auf einer Zeile stoppen, du willst nur stoppen, wenn eine bestimmte Variable einen bestimmten Wert hat. Damit sparst du dir zumindest, tausendmal auf „continue" zu klicken.