Привет, меня зовут Игорь, веду канал в Телеграме kamyshev.code, делаю фронтенды в Aviasales и ещё много разных штук. Ниже список книг, которые, на мой взгляд, стоит прочесть каждому разработчику. Порядок имеет значение.

Чистый код. Создание, анализ и рефакторинг

Роберт Мартин, Clean Code: A Handbook of Agile Software Craftsmanship

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

В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится много примеров. Вторая часть состоит из практических сценариев. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — перечнень эвристических правил и «запахов кода».

Путь программиста

Джон Сонмез, Soft Skills: The Software Developer’s Life Manual

Исчерпывающая инструкция о жизни программиста: что требуется для выстраивания успешной карьеры программиста, помогает лучше понять профессию и коллег, оставаться востребованным на рынке труда, целенаправленно и результативно развиваться, получать от любимой работы подлинное удовольствие.

Теоретический минимум по Computer Science. Все что нужно программисту и разработчику

Владстон Феррейра Фило, Computer Science Distilled: Learn the Art of Solving Computational Problems

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

Идеальный программист. Как стать профессионалом разработки ПО

Роберт Мартин, The Clean Coder: A Code of Conduct for Professional Programmers

Дядюшка Боб, рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы разработки «идеального ПО». Книга насыщена практическими советами в отношении разных аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга – больше, чем описание методов, она о профессиональном подходе к процессу разработки.

Программист-фанатик

Чад Фаулер, Passionate Programmer

Книга представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми сталкиваются разработчики: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами.

Чистая архитектура. Искусство разработки программного обеспечения

Роберт Мартин, Clean Architecture. A Craftsman’s Guide to Software Structure and Design

Дядюшка Боб дает прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. В этой книге нет нескольких вариантов в стиле «решай сам», она объясняет, что делать, по какой причине и почему именно такое решение станет принципиально важным для спокойной разработки приложения.

Семь языков за семь недель. Практическое руководство по изучению языков программирования

Брюс Тейт, Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages

Вместе с семью языками программирования вы исследуете важные современные модели программирования. Познакомитесь с динамической типизацией, которая делает языки Ruby, Python и Perl такими гибкими. Постигнете систему прототипов, лежащую в основе языка JavaScript. Увидите, как сопоставление с образцом в языке Prolog сказалось на формировании языков Scala и Erlang. Узнаете, чем функциональное программирование на языке Haskell отличается от программирования на языках семейства Lisp, включая Clojure.

Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему

Джордж Спаффорд, Кевин Бер, The Phoenix Project: A Novel about It, Devops, and Helping Your Business Win

Это книга о том, почему DevOps-практики критически важны для бизнеса. Она показывает, насколько важна интеграция разработки и эксплуатации, в чем настоящая ценность программного обеспечения и как эту ценность извлекать.

Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем

Эрик Эванс, Domain-Driven Design: Tackling Complexity in the Heart of Software

Книга рассказывает о систематическом предметно-ориентированном подходе. В ней представлен широкий набор приемов и методик, фундаментальных принципов, помогающих в реализации программных проектов из сложных предметных областей.

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

Ставьте звездочки и присылайте пулл-реквесты на GitHub