Замечательные книги, вполне изумительные. Они могут провести вас от новичка к мастеру за несколько коротких страниц и извлечь знания, на накопление которых у вас ушли бы годы.
Сложнее всего открыть для себя эти удивительные книги. Я обычно читаю по 3-4 книги на каждую замечательную, читаю много обзоров и списков чтения.
Вот те, которые я рекомендую.
Основные строительные блоки (функции, классы и модульные тесты)
Code Complete - отличное и подробное описание того, как писать основные строительные блоки кода. Он довольно длинный, и примеры немного устарели, но он выдержал испытание временем и по-прежнему остается лучшим из существующих.
Чистый код похож. Короче и не столь обстоятельно, но примеры немного более актуальны. Вы могли бы быть прощены за то, что прочитали это вместо Code Complete, хотя чтение их обоих поможет закрепить знания.
Шаблоны тестов XUnit - исчерпывающее руководство по написанию хороших модульных тестов. Если вы прочитаете, поймете это и привыкнете применять шаблоны, вы станете экспертом по модульному тестированию.
Процесс написания программного обеспечения (как вы его получите, а также конечный результат)
99 бутылок ООП - поистине отличная книга, которая объясняет процесс написания высококачественного объектно-ориентированного кода, а также как, почему и когда быть прагаматичным.
Growing Object Oriented Software - это вдохновляющая демонстрация применения строгой разработки через тестирование к реальному программному проекту.
Малая архитектура (объединение классов в единое целое)
Практический объектно-ориентированный дизайн в Ruby - отличная книга, в которой обсуждаются различные дизайнерские решения и компромиссы между ними.
Рефакторинг устаревшего кода описывает набор методов безопасного преобразования проблемного кода.
Внедрение зависимостей в .Net - еще одна отличная книга, демонстрирующая написание классов, которые не создают своих собственных зависимостей (именно так следует разрабатывать почти все классы).
Крупномасштабная архитектура
Я все еще ищу отличные книги в этой сфере. Рекомендации приветствуются.
Пользовательский опыт
Refactoring UI - книга по UI / дизайну, ориентированная на разработчиков. Есть множество полезных советов с убедительными примерами.
Управление разработкой программного обеспечения
NoEstimates: как измерить прогресс проекта без оценки - отличная книга об управлении процессом разработки программного обеспечения, в которой учитывается тот факт, что время, необходимое для разработки программного обеспечения, по своей сути неопределенно.
Другой
В основном адекватное руководство по функциональному программированию - это увлекательно написанное руководство по функциональному программированию.
Гроккинговые алгоритмы - забавная книга, в которой описаны основные алгоритмы с отличными иллюстрациями.