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

О книге:

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