Про поиск ошибок: программисты используют классный метод, который называется «rubber duck debugging». Когда программа не работает и кодер в тупике, он ставит перед монитором резиновую уточку для купания в ванне и объясняет ей код программы line-by-line. И внезапно замечает ошибку.
Эта штука отлично работает и для прохождения тестов Школы редакторов Горбунова.
http://www.rubberduckdebugging.com/