Код
#статьи

11 хороших книг для начинающих и middle-разработчиков: от простого к сложному

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

Иллюстрация: Катя Павловская для Skillbox Media

Никита Сироткин


Исполнительный директор IT-компании VVDEV. Языки программирования: JavaScript, Java, Objective-C, C и C++.


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

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

Владстон Феррейра Фило

Перевод с английского: А. Логунов.

Издательство: «Питер». 2018 год, 224 с.

Оригинальное название: Computer Science Distilled. Learn the Art of Solving Computational Problems.

Зачем читать. В книге сжато и интересно подаются основы алгоритмов, структур данных, устройства компьютера и другие темы, относящиеся к Computer Science.

До программирования автор доберётся только в восьмой главе: в ней будут изложены базовые вещи — например, переменные и парадигмы. Примеры алгоритмов с функциями, циклами, условиями и операторами присваивания записаны псевдокодом, который всем понятен.

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

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

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

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Адитья Бхаргава

Перевод с английского: Е. Матвеев.

Издательство: «Питер». 2019 год, 288 с.

Оригинальное название: Grokking Algorithms. An Illustrated Guide For Programmers And Other Curiours People.

Зачем читать. Это ещё одна книга, которая помогает подготовиться к профессии программиста. В первой части даются довольно примитивные алгоритмы, зато к последним главам автор начинает решать действительно интересные задачи.

Цель книги — познакомить с разными типами алгоритмов. Автор не разбирает очень сложные задачи, но предлагает материалы для глубокого изучения каждой темы.

Книга подойдёт школьникам старших классов или студентам, знакомящимся с алгоритмами. Сильный фундамент на материалах из этой книги построить не получится, но она может дать хороший старт в разработке.

Что особенно полезно:

  • описание динамического программирования;
  • алгоритмы поиска, хеширования и машинного обучения — расширяют кругозор, в какой бы нише вы ни планировали работать.

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

Роберт Мартин

Перевод с английского: Е. Матвеев.

Издательство: «Питер». 2022 год, 224 с.

Оригинальное название: The Clean Coder. A Code of Conduct for Professional Programmers.

Зачем читать. Это книга не про код. В ней идёт речь о полезных софт-скиллах, которые нужны в самом начале пути разработчика: о процессе написания кода, отношении к задачам, TDD (разработке через тестирование). Читается легко — это не техническая литература. Книга будет полезна разработчикам, проджект-менеджерам и даже дизайнерам.

Несколько полезных советов из книги:

  • Учите других. Пользу от преподавания получает и сам преподаватель — это лучший способ отшлифовать свои навыки.
  • Не отправляйте сырой код на тестирование. Проверяя работу подрядчиков, я иногда наблюдаю, как на тестирование отправляется дефектный код. При этом сам разработчик прекрасно знает, что не выполнил задачу. Такой подход приводит к срыву дедлайнов. Вы должны быть уверены в своём коде. Если вы не успеваете сделать задачу в срок, лучше предупредить коллег, чем впустую тратить время команды тестировщиков.
  • Учитесь писать гибкий код. Для этого изучите паттерны проектирования и стройте на их основе программную архитектуру.
  • Не останавливайтесь в обучении. Программирование не стоит на месте — постоянно появляются новые инструменты, новые паттерны. Если не следить за новостями, можно вернуться в каменный век за год.
  • Не пишите код ночью. Почему программисты любят работать ночью? Первое — ничто не отвлекает. Но никто не мешает организовать комфортную работу в дневное время. Переводите телефон в режим полёта, работайте там, где не шумно. Второе — работая ночью, вы выглядите героем: «Я просидел всю ночь и написал много кода». Учтите — ночной код будет часто возвращаться на доработку: днём, когда вы планируете поспать, вам придётся отвечать коллегам в мессенджерах, а вечером вы уже не можете задавать коллегам вопросы по задачам.

Чистый код

Роберт Мартин

Перевод с английского: Е. Матвеев.

Издательство: «Питер». 2018 год, 464 с.

Оригинальное название: Clean Code. A Handbook of Agile Software Craftsmanship.

Зачем читать. Автор рассказывает о простых, но важных вещах, повторяя их так часто, что вы наверняка их запомните. Я бы отнёс эту книгу к уровню «начинающий-продолжающий разработчик». Возможно, стоит прочитать её на старте, а потом снова пролистать через год. Правила, описываемые в книге, я бы отнёс скорее к советам: местами их важность преувеличена. Но их цель — обратить внимание на проблему.

Программист-прагматик. Путь от подмастерья к мастеру

Эндрю Хант и Дэвид Томас

Перевод с английского: И. Берштейн.

Издательство: «Диалектика»,.2020 год, 368 с.

Оригинальное название: The Pragmatic Programmer.

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

Приёмы объектно-ориентированного проектирования

Эрих Гамма, Ричард Хелм, Джон Влиссидес, Ральф Джонсон

Перевод с английского: А. Слинкин.

Издательство: «Питер». 2019 год, 368 с.

Оригинальное название: Design Patterns. Elements of Reusable Object-Oriented Software.

Зачем читать. Я бы назвал эту книгу справочником — её не нужно читать от начала до конца. Информация здесь сухая и техническая, примеры кода — на C++ и SmallTalk. Вам достаточно ознакомиться с содержанием, чтобы при необходимости найти нужный материал. Потом, в процессе разработки, вы сможете возвращаться к книге и уже на практике проверять паттерны, которые решают ваши проблемы.

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

Погружение в паттерны проектирования

Александр Швец

Интернет-издание. 2018 год, 406 с.

Зачем читать. Это ещё одна книга по паттернам проектирования. В ней разбираются 22 классических паттерна. Можно читать последовательно, от края до края, а можно выборочно — только нужные главы. В конце каждой главы описываются отношения текущего паттерна с остальными представленными в книге. Примеры паттернов приводятся на псевдокоде, без привязки к языку программирования, а значит, будут понятны разработчикам с разными стеками.

Чистая архитектура

Роберт Мартин

Перевод с английского: А. Киселёв.

Издательство: «Питер». 2022 год, 352 с.

Оригинальное название: Clean Architecture. A Craftsman’s Guide to Software Structure and Design.

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

Совершенный код

Стив Макконнелл

Перевод с английского: В. Вшивцев.

Издательство: «Русская редакция». 2019 год, 896 с.

Оригинальное название: Code Complete.

Зачем читать. Я читал эту книгу семь лет назад и прочитал снова, прежде чем писать рецензию. Книгу дополнили: добавили новые инструменты и сотни новых примеров.

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

Мифический человеко-месяц, или Как создаются программные системы

Фредерик Брукс

Перевод с английского: А. Логунов.

Издательство: «Питер». 2021 год, 368 с.

Оригинальное название: The Mythical Man-Month. Essays on Software Engineering.

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

Я бы выделил несколько важных моментов из книги, о которых все забывают:

  • Нельзя добавлять новых людей в проект на поздней стадии разработки. Это сильно замедлит процесс.
  • Проекты чаще всего проваливаются из-за неправильного распределения времени и задач между сотрудниками. В книге приводится формула расчёта минимального времени выполнения и даются советы, как оптимизировать процесс разработки без срыва сроков.
  • Обычно код не готовят к повторному использованию сразу — и это может сильно усложнить работу в будущем.

Мама, я тимлид

Марина Перескокова

Издательство: «Альпина Паблишер». 2021 год, 228 с.

Зачем читать. Это книга не про разработку, а скорее про менеджмент и управление командой. Даже если вы не метите в тимлиды, эта книга будет полезна, чтобы понять, с какими проблемами сталкивается ваш руководитель ежедневно и как помогать ему по мере возможностей.

Книга расскажет:

  • как быть руководителем проекта;
  • как общаться с начальством;
  • как вести команду к результату.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована