Замечательные книги, вполне изумительные. Они могут провести вас от новичка к мастеру за несколько коротких страниц и извлечь знания, на накопление которых у вас ушли бы годы.

Сложнее всего открыть для себя эти удивительные книги. Я обычно читаю по 3-4 книги на каждую замечательную, читаю много обзоров и списков чтения.

Вот те, которые я рекомендую.

Основные строительные блоки (функции, классы и модульные тесты)

Code Complete - отличное и подробное описание того, как писать основные строительные блоки кода. Он довольно длинный, и примеры немного устарели, но он выдержал испытание временем и по-прежнему остается лучшим из существующих.

Чистый код похож. Короче и не столь обстоятельно, но примеры немного более актуальны. Вы могли бы быть прощены за то, что прочитали это вместо Code Complete, хотя чтение их обоих поможет закрепить знания.

Шаблоны тестов XUnit - исчерпывающее руководство по написанию хороших модульных тестов. Если вы прочитаете, поймете это и привыкнете применять шаблоны, вы станете экспертом по модульному тестированию.

Процесс написания программного обеспечения (как вы его получите, а также конечный результат)

99 бутылок ООП - поистине отличная книга, которая объясняет процесс написания высококачественного объектно-ориентированного кода, а также как, почему и когда быть прагаматичным.

Growing Object Oriented Software - это вдохновляющая демонстрация применения строгой разработки через тестирование к реальному программному проекту.

Малая архитектура (объединение классов в единое целое)

Практический объектно-ориентированный дизайн в Ruby - отличная книга, в которой обсуждаются различные дизайнерские решения и компромиссы между ними.

Рефакторинг устаревшего кода описывает набор методов безопасного преобразования проблемного кода.

Внедрение зависимостей в .Net - еще одна отличная книга, демонстрирующая написание классов, которые не создают своих собственных зависимостей (именно так следует разрабатывать почти все классы).

Крупномасштабная архитектура

Я все еще ищу отличные книги в этой сфере. Рекомендации приветствуются.

Пользовательский опыт

Refactoring UI - книга по UI / дизайну, ориентированная на разработчиков. Есть множество полезных советов с убедительными примерами.

Управление разработкой программного обеспечения

NoEstimates: как измерить прогресс проекта без оценки - отличная книга об управлении процессом разработки программного обеспечения, в которой учитывается тот факт, что время, необходимое для разработки программного обеспечения, по своей сути неопределенно.

Другой

В основном адекватное руководство по функциональному программированию - это увлекательно написанное руководство по функциональному программированию.

Гроккинговые алгоритмы - забавная книга, в которой описаны основные алгоритмы с отличными иллюстрациями.