Книги и учебные ресурсы по фундаментальным знаниям и навыкам разработчика

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

Все эти книги следовало бы добавить в каждый список литературы, но мы следуем принципу DRY и сохраняем их здесь, в одном месте.

Дополнения к ответу всячески приветствуются!

Данный перечень входит в поддерживаемый сообществом Сборник учебных ресурсов по программированию.

2 ответа

Архитектура ПО

  • Structure and Interpretation of Computer Programs - 2nd Edition. Harold Abelson, Gerald Jay Sussman, Julie Sussman

    Русский перевод: Структура и Интерпретация Компьютерных Программ. Харольд Абельсон, Джеральд Джей Сассман

Алгоритмы и структуры данных

  • The Algorithm Design Manual. Steven S Skiena. 2008

    Русский перевод: Алгоритмы. Руководство по разработке. Стивен Скиена. 2014 г.

  • Introduction to Algorithms, 3rd Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. 2009

    Русский перевод: Алгоритмы. Построение и анализ. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. 2015 г.

  • The Art of Computer Programming. Donald E. Knuth. 2011

    Русский перевод: Искусство программирования. Дональд Э. Кнут. 2015 г.

  • Algorithms + Data Structures = Programs. Niklaus Wirth, 1976 (or Algorithms + Data Structures. 2004.

    Русский перевод: Алгоритмы + структуры данных = программы. М.: Мир, 1985, Алгоритмы и структуры данных. М.: Мир, 1989, Алгоритмы и структуры данных. Новая версия для Оберона. М.: ДМК Пресс, 2010. Старая версия книги, в отличие от новых, содержит подробно разобранный компилятор простого языка.

Проектирование и стиль кода

  • Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

    Русский перевод: Приёмы объектно-ориентированного проектирования. Паттерны проектирования. Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидс

  • Patterns of Enterprise Application Architecture. Martin Fowler

    Русский перевод: Архитектура корпоративных программных приложений. Мартин Фаулер

  • Domain-Driven Design: Tackling Complexity in the Heart of Software. Eric Evans

    Русский перевод: Предметно-ориентированное проектирование. Структуризация сложных программных систем. Эрик Эванс

  • «Совершенный код» (Code Complete). Стив Макконнелл

  • «Рефакторинг. Улучшение существующего кода». Мартин Фаулер
  • «Чистый код. Создание, анализ и рефакторинг» (Clean Code: A Handbook of Agile Software Craftsmanship). Роберт Мартин

Навыки разработчика

  • Эндрю Хант, Дэвид Томас — «Программист-прагматик. Путь от подмастерья к мастеру»

Организация процесса разработки

  • Том ДеМарко — «Deadline. Роман об управлении проектами»
  • Роберт Мартин — «Быстрая разработка программного обеспечения»
  • Джоэл Спольски — «И снова о программировании».
  • Джо Мараско — «IT-проекты. Фронтовые очерки»
  • Стив Макконнелл — «Сколько стоит программный проект»
  • Джин Ким, Кевин Бер, Джордж Спаффорд — «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему».

Синтаксический разбор и компиляция

  • Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman

    Русский перевод: Компиляторы: принципы, технологии и инструментарий, Альфред Ахо, Моника С. Лам, Рави Сети, Джеффри Ульман. Известна как «Книга Дракона».


Книжки и теория это хорошо, а для практики я рекомендую проект Эйлера (задачи на русском). В каждой задаче есть набор данных с готовым ответом, на котором можно обкатать алгоритм. Но задачи устроены так, что за вменяемое время в лоб не решаются, чтоб узнать ответ - часто приходится изобретать более оптимальный алгоритм после того, как с тестовым набором данных у вас все сойдется. Полученный ответ можно проверить, и если он правильный - то откроется ветка форума, где участники оставляют свои варианты решений на разных языках. Рекомендую всем)

licensed under cc by-sa 3.0 with attribution.