Loading...

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

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

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

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

 

 

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

 

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

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

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

 

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

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

 

 

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

 

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

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

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

 

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

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

 

 

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

 

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

 

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

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

 

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

 

  • Учитесь писать гибкий код. Для этого изучите паттерны проектирования и стройте на их основе программную архитектуру.

 

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

 

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

 

 

Чистый код

 

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

 

 

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

 

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

 

 

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

 

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

 

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

 

 

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

 

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

 

 

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

 

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

 

 

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

 

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

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

 

 

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

 

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

 

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

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

 

 

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

 

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

 

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

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

 

Поделиться