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

Топ 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.

Еще одна книга Мартина, которая представляет собой сборник рекомендаций и практик по повышению качества работы и выстраиванию рабочего процесса. Хотя книга вышла четыре года назад, многие советы в ней либо устаревшие, либо сомнительные. Например, в одной из глав автор рекомендует в любой непонятной ситуации практиковать парное программирование.