Сколько console.log() ты понаставляешь в код, прежде чем осознаёшь, что Chrome DevTools уже содержит всё, что тебе нужно?
Настоящий перелом в подходе - это перестать думать о дебаггинге как об отчаянной охоте за сокровищами. Chrome DevTools имеет Sources, где ты можешь выставлять настоящие точки останова - не просто "напечатай это значение и молись" - и пошагово проходить через код. То, что люди недостаточно используют - это наблюдение за конкретными переменными, так что ты видишь в реальном времени, что меняется, пока код выполняется. Плюс есть console drawer, который всегда под рукой, идеален для быстрых проверок без остановки выполнения.
Ещё один трюк, который меня не раз спасал: используй Network tab не только чтобы проверить, отправились ли запросы, но чтобы увидеть ровно то, что ты получаешь с сервера. Я уже много раз терял часы, дебаггя логику, которая на самом деле была проблемой в поступающих данных. Если приложение сложное и имеет внутреннее состояние, Vue DevTools или React DevTools (в зависимости от того, что ты используешь) - это просто убийца - видишь, как состояние изменяется в реальном времени, и можешь вернуться к предыдущим состояниям. Это не магия, просто люди часто не знают, что это существует.
Ах, и ещё одно банальное, но правдивое: используй условные точки останова. Не всегда нужно остановиться на строке, нужно остановиться только когда переменная имеет определённое значение. Хотя бы сэкономишь время на клики "continue" тысячу раз.