В этой статье я вам покажу и расскажу о книгах, которые должен прочитать каждый программист.Книги, которые помогут в будущем.
1. «Эффективная работа с унаследованным кодом», Майкл К. Физерс
Автор объясняет, как быстро разбираться в унаследованном коде, как тестировать его, как правильно вносить изменения. Книга содержит множество эффективных приёмов, предназначенных специально для этих задач.
2. «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма и другие
Классика для программиста. Первая книга, посвящённая именно шаблонам.
Леонид Выговский, системный архитектор IT-компании LiveTex
Издание уже 20 лет переиздаётся в изначальном виде. В этом, конечно, главный недостаток книги: некоторые шаблоны уже неактуальны. Думаю, её полезно читать уже после других, более современных, книг по паттернам проектирования. Тем более что она написана сухим академическим языком. Для понимания паттернов эта книга не must read, но её прочтение добавляет крутости в глазах коллег-программистов. :) Начинать я советую с «Паттернов проектирования» (Head First Design Patterns).
3. «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
Интересная, но во многом спорная книга о том, как писать понятный и поддерживаемый код.
Леонид Выговский, системный архитектор IT-компании LiveTex
— Почему спорная? Книг про написание кода уже огромное количество, и часть приёмов являются общепризнанными. Но каждый автор добавляет что-то своё. Лично для меня мнение Боба Мартина кажется иногда странным и противоречащим другим источникам. Не must read, но прочитать всё же стоит. Качество кода после прочтения становится лучше.
4. «Предметно-ориентированное проектирование», Эрик Эванс
Очень сильная книга, которая мотивирует к саморазвитию. После прочтения кажется, что без ПОП качественный код не написать.
Леонид Выговский, системный архитектор IT-компании LiveTex
— Из этой книги выросли концепции СQRS, BDD, onion-architecture и много других интересных идей. Единственный недостаток: книга насквозь теоретическая. Практическую пользу она приобрела только с выходом книги Вона Вернона «Реализация методов предметно-ориентированного проектирования» (Implementing Domain Driven Design). Поэтому читать их надо последовательно, сразу друг за другом.
5. «JavaScript: сильные стороны», Дуглас Крокфорд
Обязательная книга для веб-разработчиков. В ней Дуглас Крокфорд рассказывает о преимуществах языка JavaScript и учит грамотно их применять для создания эффективного кода.
6. «Шаблоны корпоративных приложений», Мартин Фаулер и другие
Книга описывает базовые принципы проектирования ПО для корпоративных платформ.
7. «Совершенный код. Мастер-класс», Стив Макконнелл
Классическая книга о том, как писать код лучше.
Михаил Осотов, директор по производству «Центра высоких технологий»
— Принципы, о которых рассказывается в книге, актуальны в любые времена, несмотря на то, что первое издание было выпущено аж в 1993 году. Волшебство этой книги заключается в том, что можно перечитывать её каждый год и каждый раз узнавать что-то новое.
8. «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
Из серии книг по написанию понятного и качественного кода, «Рефакторинг» — лучшая.
Леонид Выговский, системный архитектор IT-компании LiveTex
Выговский: «Она не только показывает хороший код, но и на примере плохого объясняет, чем именно он плох. Эта книга — must read для всех. Причём чем раньше вы её прочтёте, тем лучше. Качество кода после прочтения сильно вырастет».
Если книгу Фаулера вы уже прочли, обратите внимание на «Рефакторинг с использованием шаблонов» (Refactoring to Patterns) Джошуа Кериевски, которую рекомендует Михаил Осотов.
9. «Паттерны проектирования», Эрик Фримен, Элизабет Фримен и другие
Серия Head First, на мой взгляд, идеально подходит для новичков в области разработки ПО.Михаил Осотов, директор по производству «Центра высоких технологий»
— Все книги написаны разными авторами, но в каждой виден общий подход, который выражается в простой подаче материала, интересных и простых примерах.
10. «Язык программирования C», Брайан У. Керниган, Деннис М. Ритчи
Классическое учебное пособие по языку C, написанное его же создателями. Однако начинающим эта книга может показаться сложной, поскольку требует от читателя знания основ программирования.
11. «Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ», Скотт Майерс
Книга содержит советы по проектированию программ, работе с шаблонами и управлению ресурсами, а также другие рекомендации по созданию качественного ПО на языке С++.
12. «Экстремальное программирование: разработка через тестирование», Кент Бек
Автор на примерах описывает методику разработки ПО, которая предполагает тестирование программ ещё до написания их кода.
13. «Алгоритмы. Построение и анализ», Томас Х. Кормен и другие
Эту книгу называют библией алгоритмов. Она зарекомендовала себя как отличное научное пособие для студентов технических вузов и всех, кто интересуется информатикой. Книга доступным языком знакомит с алгоритмами разных типов и описывает их особенности.
14. «Регулярные выражения», Джеффри Фридл
Издание об эффективной работе с текстом в Perl, PHP, Java, Python, Ruby и других языках программирования.
15. "CLR via C# Программирование на платформе Microsoft.NET Framework 4.5 на языке C# ", Джеффри Рихтер
Классический учебник по разработке приложений для платформы Microsoft, в том числе с помощью Silverlight, Windows Presentation Foundation, ASP.NET и прочих технологий компании.
16. «Современное проектирование на C++», Андрей Александреску
Книга для опытных программистов на C++. Автор предлагает новый подход к разработке, сочетающий метапрограммирование шаблонов, обобщённое программирование и объектно-ориентированное программирование на этом языке.
17. «Microsoft ASP.NET 2.0. Базовый курс», Дино Эспозито
Детальное руководство для опытных специалистов по ASP.NET 2.0. Книга учит создавать мощные, надёжные и масштабируемые сайты на этой платформе.
18. «Шаблоны тестирования xUnit. Рефакторинг кода тестов», Джерард Месарош
Автор книги показывает, как применять шаблоны проектирования, исключение повторений, инкапсуляцию и другие принципы разработки ПО к написанию кода тестов.
19. «Компиляторы. Принципы, технологии и инструментарий», Альфред В. Ахо и другие
Книга описывает базовые принципы разработки компиляторов и делает особый акцент на оптимизации кода. В помощь читателю — большое количество примеров из практики.
20. «Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET», Кржиштоф Цвалина, Брэд Абрамс
Издание содержит лучшие приёмы разработки библиотек для платформы Microsoft .NET Framework. Книга должна упростить работу любого .NET-специалиста, который пишет код для других разработчиков.
Полный рейтинг англоязычных книг доступен на сайте Dev-Books. Там же можно просмотреть списки самых популярных книг на определённые темы, будь то Java, Database Design или C