Топ 25 самых популярных книг для программиста

Собрали список самых популярных книг для программистов, большинство их которых стоит прочитать и новичкам, и профессиональным разработчикам. Книги разделены на две категории: в первую попали работы, которые актуальны до сих пор, а во вторую — книги, информация в которых устарела или вызывает бурные споры в сообществе.
Актуальные
Структура и интерпретация компьютерных программ
Автор: Харольд Абельсон и Джеральд Джей Сассман
Издательство: Добросвет; 2020
Перевод с английского: Бронников Ю.К.
Оригинальное название: Structure and Interpretation of Computer Programs, SICP
О книге:
Одна из самых известных книг о программировании, написанная профессорами Массачусетского технологического университета (MIT). В профессиональной среде она часто рассматривается как введение в Computer Science, однако начинать с нее едва ли стоит — она построена на фундаментальных концепциях и рассказывает об абстракциях кода и данных, рекурсии и состояниях.

Программист-прагматик. Путь от подмастерья к мастеру
Автор: Энди Хант, Дейв Томас
Издательство: Диалектика, 2020 год, 270 с.
Перевод с английского: Алексашин А.
Оригинальное название: The Pragmatic Programmer: From Journeyman to Master
О книге:
Хотя эта книга впервые была издана больше 20 лет назад и описывает практические подходы к построению приложений, она остается актуальной до сих пор актуальна. Некоторые технологии, которые авторы приводят в качестве примеров, действительно устарели, однако их применение построено на фундаментальных правилах построения рабочих процессов, подходов к разработке и взаимодействию внутри команды с тех пор не изменились.
Совершенный код: практическое руководство по разработке программного обеспечения
Автор: Стив Макконнелл
Перевод с английского: В. Г. Вшивцев
Издательство: «БХВ», 2017 год, 896 с.
Оригинальное название: Code Complete by Steve McConnell
О книге:
Книга, которая будет понятна новичкам и интересна программистам с опытом. Хотя это руководство вышло больше 10 лет назад, но в последнем издании многие устаревшие технологии заменены современными, поэтому она по-прежнему остается актуальной для промышленной разработки.
Head First. Паттерны проектирования. Обновленное издание
Автор: Эрик Фримен, Элизабет Робсон, Кэти Сьерра, Берт Бейтс
Перевод с английского: Е. А. Матвеев
Издательство: «Питер», 2021 год, 656 с.
Оригинальное название: Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman & Elisabeth Robson / Bert Bates / Kathy Sierra
О книге:
Практическое руководство по использованию паттернов программирования и принципах их работы. В этом контексте паттерны — подходы к решению типовых задач в программировании. Книга написана сравнительно простым языком, понятным новичкам.
Шаблоны корпоративных приложений
Автор: Мартин Фаулер
Перевод с английского: Издательский дом «Вильямс»
Издательство: «Вильямс», 2020 год, 544 с.
Оригинальное название: Patterns of Enterprise Application Architecture by Martin Fowler with contributions from David Rice et al. (Addison-Wesley Signature Series)
О книге:
Книга Фаулера посвящена разработке крупных корпоративных приложений, которая имеют свою специфику и трудности. В ней выделены 40 типовых подходов, основанных на базовых принципах программирования и решения шаблонных задач.
Психбольница в руках пациентов
Автор: Анан Купер
Издательство: «Питер», 2018 год, 384 с.
Перевод с английского: Е. Самородских
Оригинальное название: The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper
О книге:
За качеством кода, архитектурой приложения и другими техническими деталями разработчики часто забывают об удобстве конечного пользователя. Хорошо, когда в компании есть UX/UI-дизайнер, который отвечает за пользовательский интерфейс, но иногда заниматься его разработкой приходится самим программистам.
В своей книге Купер на реальных примерах показывает, как неудобные программы становились причиной банкротства компаний (продуктом просто никто не хотел пользоваться) и дает рекомендации, как избежать таких ситуаций.
Серия книг «Искусство программирования»
Автор: Дональд Кнут
Издательство: «Вильямс», 2020 год, 720 + 160 + 832 + 960 с.
Перевод с английского: И. В. Красиков, С. Г. Тригуб, Ю. Г. Гордиенко
Оригинальное название: The Art of Computer Programming by Donald Knuth
О книге:
Самый фундаментальный и, как следствие, сложный труд в этой подборке. В книге больше математических конструкций, на которых строится программирование, чем разработки как таковой. По мнению автора, каждый программист должен разбираться в азах прежде, чем начать использовать шаблонные решения.
Грокаем алгоритмы
Автор: Адитья Бхаргава
Издательство: «Питер», 2021 год, 288 с.
Перевод с английского: Е. А. Матвеев
Оригинальное название: Grokking Algorithms: An illustrated guide for programmers and other curious people by Aditya Y. Bhargava
О книге:
Книга посвящена устройству алгоритмов и написана простым языком. Она написана почти как нон-фикшн и подходит разработчикам всех уровней.
Адитья Бхаргава иллюстрирует теорию работы алгоритмов на реальных примерах: например, объясняет, как работает поисковый алгоритм Netflix или поисковый алгоритм Google.
Алгоритмы. Построение и анализ
Автор: Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
Издательство: «Вильямс», 2020 год, 1328 с.
Перевод с английского: И. В. Красиков
Оригинальное название: Introduction to Algorithms by Thomas Cormen / Charles Leiserson / Ronald Rivest / Clifford Stein.
О книге:
Если предыдущая книга написана как увлекательный рассказ, то работа Кормена, Ривеста и их коллег представляет собой скорее справочник по основным структурам данных и алгоритмам.
В каждом следующем издании авторы дополняют сведения об алгоритмах и разбирают популярные на момент публикации решения. Поэтому читать книгу стоит в самом свежем издании.
Мифический человеко-месяц, или Как создаются программные системы
Автор: Фредерик Брукс
Издательство: «Питер», 2020 год, 368 с.
Перевод с английского: А. В. Логунов
Оригинальное название: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition) by Frederick Brooks
О книге:
Работа, посвященная не программированию в прямом смысле, а выстраиванию процессов производства программного обеспечения. Брукс предлагает несколько методов для точного планирования сдачи отдельных задач и проектов и подойдет как разработчику, так и продакт-менеджеру.
Рефакторинг. Улучшение существующего кода
Автор: Мартин Фаулер
Издательство: «Вильямс», 2019 год, 448с.
Перевод с английского: И. В. Красиков
Оригинальное название: Refactoring. Improving the Design of Existing Code by Martin Fowler
О книге:
Книга, которая пригодится программистам, часто имеющим дело с унаследованным и устаревшим кодом. В ней описаны 70 методов рефакторинга, которые помогут модифицировать код, внося небольшие изменения и ничего не нарушая.
Эффективная работа с унаследованным кодом
Автор: Майкл Физерс
Издательство: «Вильямс», 2016 год, 400 с
Перевод с английского: И. В. Берштейн
Оригинальное название: Working Effectively with Legacy Code by Michael C. Feathers
О книге:
Понятие legacy-кода знакомо каждому разработчику и вряд ли кто-то любит с ним работать. Книга Физерса — пособие по работе с legacy: разработчик делится опытом, как разбираться в чужом коде эффективнее и с меньшими страданиями.
Думай как программист
Автор: Антон Спрол
Перевод с английского — Е. А. Матвеев
Издательство «Бомбора», 2018 год, 272 с.
Оригинальное название: Think Like a Programmer: An Introduction to Creative Problem Solving by V. Anton Spraul
О книге:
Сборник задач и упражнений для развития алгоритмического мышления — базы, необходимой для того, чтобы лучше понимать программирование. В книге приведены как классические задачи про волка и переправу, так и упражнения на рекурсию и обработку массивов.
Карьера программиста
Автор: Гейл Лакман Макдауэлл
Издательство: «Питер», 2021 год, 688 с.
Перевод с английского: Е. А. Матвеев
Оригинальное название: Cracking the Coding Interview by Gayle Laakmann McDowell
О книге:
Одна из самых практичных книг о программировании: в ней собраны ответы на почти 200 вопросов с технических собеседований, которые рекрутеры Google, Amazon, Netflix и других компаний задавали кандидатам. Макдауэлл также дает рекомендации по оформлению резюме и разбирает самые популярные ошибки на интервью.
Непрерывное развертывание ПО
Автор: Хамбл Джез, Фарли Дейвид
Издательство: Вильямс, 2017 г., 472 с.
Перевод с английского: Сысонюк А. Г.
Оригинальное название: Continuous Delivery by Jez Humble & David Farley.
О книге:
Работа посвящена процессу создания приложений, способных работать под большой нагрузкой: их сборке, тестированию и развертыванию. Отдельная часть посвящена работе с системами контроля версий (к ним, в частности, относится Git).
Книга подходит программистам, которые уже успели получить опыт в коммерческой разработке.
Путь программиста
Автор: Джон Сонмез
Издательство: Питер, 2016 г., 488 с.
Перевод с английского: Райтман М. А.
Оригинальное название: Soft Skills by John Sonmez
О книге:
Автор блога Simple Programming рассказывает о важных аспектах, которые помогают программисту построить успешную карьеру. Сонмез обращает внимание на то, что взаимодействие с клиентами, коллегами и и менеджерами часто играют большую роль, чем качество кода, который пишет разработчик.
Не заставляйте меня думать. Веб-юзабилити и здравый смысл
Автор: Стив Круг
Издательство: Эксмо, 2021, 256 с.
Перевод с английского: Райтман М. А.
Оригинальное название: Don’t Make Me Think by Steve Krug
О книге:
Еще одна книга, посвященная разработке пользовательского интерфейса сайтов и веб-приложений. Автор приводит ряд шагов, которые позволяют сделать продукт удобным для всех пользователей.
Код: тайный язык информатики
Автор: Чарльз Петцольд
Оригинальное название: Code by Charles Petzold
Издательство: МИФ, 2021, 448 с.
Перевод с английского: Сивченко Олег
О книге:
Работа посвящена не программированию как таковому, а истории развития вычислительных систем, систем счисления и элементов компьютера на уровне простой физики. Книга написана простым языком и будет понятна новичкам.
Человеческий фактор. Успешные проекты и команды
Авторы: ДеМарко Том, Листер Тимоти
Издательство: Символ Плюс
Перевод: Зислис М., Маккавеев С.
Оригинальное название: Peopleware by Tom DeMarco & Tim Lister.
О книге:
Консультанты Листер и ДеМарко на примерах показывают, что большинство сложностей, которые возникают при разработке, имеют человеческую, а не техническую природу. Книга предназначена в первую очередь для тимлидов, но будет полезна и простым разработчикам.
Жемчужины программирования
Автор: Мартин Фаулер
Издательство: Питер, 2020 г., 544 с.
Перевод с английского: Д. Солнышкин
Оригинальное название: Patterns of Enterprise Application Architecture by Martin Fowler.
О книге:
Классическая книга по программированию, которая пригодится тем, кто хочет разобраться в функциональной парадигме.
Устаревшие
Паттерны объектно-ориентированного проектирования
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
Перевод с английского: А. Слинкин
Издательство: «Питер», 2021 год, 448 с.
Оригинальное название: Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm
О книге:
Справочник, в основе которого — 23 основных принципа проектирования приложений на языках, построенных на парадигме объектно-ориентированного программирования.
По степени сложности она сравнится с СИКП и написана скорее для опытных программистов, чем для новичков: все примеры в книге приведены на языках C++ и Smalltalk. Стоит учесть, что в профессиональном сообществе она считается устаревшей — за 25 с момента первой публикации «Паттернов» вышло достаточно более актуальных книг, посвященных шаблонам. Например, упомянутая выше Head First.
Приемы объектно-ориентированного проектирования. Паттерны проектирования
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
О книге:
Более ранняя версия «Паттернов», написанная той же «большой четверкой» авторов. Книга также посвящена принципам шаблонизации кода, но написана более простым языком.
Чистый код
Автор: Роберт Мартин
Издательство: «Питер», 2021 год, 464 с.
Перевод с английского: Е. А. Матвеев
Оригинальное название: Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
О книге:
Консультант по разработке программного обеспечения Роберт Мартин в своей книге дает рекомендации, как превратить плохой, но рабочий код в «чистый» — то есть в тот, который работает эффективно, не содержит ошибок и его удобно читать.
Это одна из самых популярных в мире книг о программировании, она входит в пятерку самых продаваемых на Amazon. Однако читать ее начинающим программистам, на которых она рассчитана, мы не рекомендуем: в книге содержится большое количество спорных суждений, а некоторые примеры «чистого» кода, которые приводит автор, в реальности не прошли бы проверку ни одного тимлида. Относиться к книге стоит очень критически и читать ее следует в случае, если у вас уже есть хорошая база и вы прочитали еще несколько работ по рефакторингу и работе над качеством кода.
Идеальный программист. Как стать профессионалом разработки ПО
Автор: Роберт Мартин
Издательство: «Питер», 2019 год, 224 с.
Перевод с английского: Е. А. Матвеев
Оригинальное название: The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
О книге:
Еще одна книга Мартина, которая представляет собой сборник рекомендаций и практик по повышению качества работы и выстраиванию рабочего процесса. Хотя книга вышла четыре года назад, многие советы в ней либо устаревшие, либо сомнительные. Например, в одной из глав автор рекомендует в любой непонятной ситуации практиковать парное программирование.