Минимум книг, которые нужно прочитать начинающему или продолжающему свою кривую обучения программисту

в 14:30, , рубрики: книги, книги по программированию

Предисловие

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

База Computer Science

Теоретический минимум по Computer Science (Владстон Феррейра Фило)

alt text

Теоретический минимум по Computer Science

Это супер-базированная книга, которая подойдёт как стартовая особенно тем, кто не получил профильного образования.

Видео-курс CS50

Видео-курс CS50

Видео-курс CS50

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

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

Программирование

Объектно-ориентированное мышление (Мэтт Вайсфельд)

alt text

Объектно-ориентированное мышление

Я бы охарактеризовал эту книгу как начальную для тех, кто хочет использовать ООП в своей работе. Эта книга не очень популярна, но мне лично она помогла в своё время "устаканить" некоторые концепции в голове.

Паттерны проектирования (Эрик Фримен, Элизабет Робсон и другие)

alt text
Паттерны проектирования

Есть две версии этой книги - одна из них с картинками для большей наглядности. Понимание паттернов позволит вам структурировать в голове различные подходы и общаться на одном языке с другими программистами, выбирая решения для тех или иных задач.

Чистый код (Роберт Мартин)

alt text

Чистый код

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

Экстремальное программирование. Разработка через тестирование (Кент Бек)

alt text

Экстремальное программирование

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

Алгоритмы и структуры данных

Грокаем алгоритмы (Адитья Бхаргава)

alt text
Грокаем алгоритмы

Даёт базовые представления об алгоритмах и структурах данных. Книга любима многими за свою простоту, с которой автор объясняет ключевые принципы. Если вы прочитаете, поймёте и реализуете всё, что в этой книге есть, то у вас не должно возникнуть проблем со следующей книгой. Рекомендуется читать обновлённую (исправленную) версию книги.

Карьера программиста (Г. Лакман Макдауэлл)

alt text

Карьера программиста

В основном эта книга предназначена для тех, кто проходит собеседования в крупные технологические компании. Много материала посвящено основной секции - алгоритмической.

System Design

System Design (Алекс Сюй)

alt text

System Design

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

High Load

Высоко-нагруженные приложения (Мартин Клеппман)

alt text

Высоко-нагруженные приложения

Знаменитая "книга с кабанчиком", одна из фундаментальных книг для программиста, желающего гордо именовать себя Software Engineer.

Менеджмент

Делай как в Google (Титус Винтерс, Том Маншрек, Хайрам Райт)

alt text

Делай как в Google

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

Agile. Оценка и планирование проектов (Майк Кон)

alt text

Agile. Оценка и планирование проектов

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

Послесловие

Было бы интересно увидеть ваш минимум книг в комментариях. Если есть какие-то замечания, постараюсь улучшить статью или позже опубликовать обновлённую версию.

Автор: tertiumnon

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js