Недавно пришел к выводу, что главная мудрость в программировании (ну или главный скилл): в первую очередь надо научиться дебажить. Так как намного больше времени уходит на поиск ошибок, чем на написание кода. И самый тяжело обнаруживаемый тип ошибок - логические. То есть нет синтаксических и других ошибок, но программа работает не так, как предполагал программист.
Ещё совет по части дебагинга - почаще смотреть логи. Возможно, вы уже следуете этому совету. Но я только недавно убедился в важности данного действия.