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

Предисловие

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

База Computer Science

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

alt text
alt text

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

Видео-курс CS50

9963de6d03b146af0d9865be39331bd9.png

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

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

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

alt text
alt text

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

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

alt text
alt text

Есть две версии этой книги — одна из них с картинками для наглядности. Весьма полезно для расширения кругозора.

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

alt text
alt text

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

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

alt text
alt text

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

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

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

alt text
alt text

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

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

alt text
alt text

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

System Design

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

alt text
alt text

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

High Load

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

alt text
alt text

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

Менеджмент

Делай как в Google

alt text
alt text

Книга даёт общие представления о разработке в технологических гигантах, таких как Google.

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

alt text
alt text

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

Послесловие

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

© Habrahabr.ru