Фанат
На самом деле, вот это:
Я почему спрашиваю - отладка эффективна только тогда, когда вы понимаете логику программы. Понимаете, что она делает, и можете в голове представить значение переменной на каждом этапе, чтобы сравнивать с отладочной информацией.
А не имея представления о логике программы, выводить отладочную информацию бесполезно - она все равно ничего не скажет.
крайне спорное утверждение. С моей точки зрения, так вообще абсурдное. Говоря проще - то что ты не умеешь отлаживать чужой код не значит, что это невозможно. Если отладить его без стопроцентного вникания невозможно - зачем тогда все пляски с читаемостью кода, инкапсуляцией, ООП подходом?
Еще точнее - понимать "логику программы" вовсе не означает разбираться в ней до последней строчки. У меня 90% опыта моей работы состояло и состоит в копании в чужом коде. Сначала я тоже ленился разбираться, но обстоятельства заставили. Потом привык и сейчас чтение кода вообще не напрягает, если конечно он не полное говно.
Для меня отладка чужой программы начинается с анализа схемы БД, как модели данных, анализа структуры кода (как правило, несложно читается исходя из файловой структуры исходников). Далее, анализируем стек вызовов от точки входа до собственно выдачи ошибочных данных (тут, при большом объеме кода хорошо помогают ф-ии навроде debug_backtrace() ) локализуем ошибку (смотрим какая ф-ия при верных параметрах возвращает неверные значения) и дело в шляпе. При правильно самодокументированном и структурированном коде это все вовсе несложно (в большинстве случаев), даже на гигантских скриптах.
Я, конечно, извиняюсь, что написал как для детей, но просто, имхо, слова "разбор чужого кода" рождает черезчур жуткие, по сравнению с действительностью, кошмары.