Обратил внимание в этой книжке на такое мнение авторов:
По теории программирования, прежде, чем приступать к так называемому "кодированию" (набору строк текста программы), надо детально описать алгоритмы, но, учитывая, что такое предварительное описание может занять недели, программисту очень сложно сохранять начальный уровень интереса к программе. А ведь потеря интереса к программе - достаточное условие для того, чтобы программа "не получилась".
Сегодня такой подход, когда составление программы разбивается на предварительное "бумажное программирование", то есть скурпулёзное описание всех алгоритмов на бумаге, и последующее кодирование - перенос уже готовых алгоритмов в компьютер, устарел. Он был необходим только в те времена, когда языки и методы программирования не позволяли быстро выявлять и эффективно устранять ошибки в алгоритме.
Современное программирование исходит из того, что ошибки в алгоритмах неизбежны. Более того, программ без ошибок не бывает. Мы повторим ещё раз: программ без ошибок не бывает! Недостаточное внимание к этому обстоятельству со стороны теоретического программирования приводит к тому, что программист, окончивший курс обучения, не готов к созданию реальных программных систем, предполагая, что вся его задача заключается лишь в формулировании алгоритма. Это неверно: половину времени (а иногда и более того), необходимую для создания программы, программист тратит на поиск и исправление скрытых в ней логических ошибок - это так называемый процесс тестирования и отладки программы. [...]
Неизбежность ошибок программы делает скрупулёзную тщательность составления алгоритмов ненужной и расточительной по времени.
(Выделение авторское.)
Занятная точка зрения для учебника (пусть неформального) по программированию. Конечно, человеку в вопросе разбирающемуся, понятно, что именно хотели сказать авторы (учитывая контекст функциональной декомпозиции программы). Но человеку только начинающему программировать (для которого книга, собственно, и написана), столь безаппеляционное заявление, по-моему, может повредить.