12 книг, которые должен прочитать каждый программист

Книги, которые должен прочитать каждый программист
Photo by Van Tay Media on Unsplash

Программирование – та сфера, в которой практика значит куда больше, чем теория, но знания лишними не бывают. Сайт KV.BY опубликовал подборку из 12 книг, которые должен прочитать каждый программист. Список составлен в произвольном порядке, не по значимости или простоте\сложности книг.

1. «Computer Science: A Very Short Introduction», Subrata Dasgupta

Computer Science: A Very Short Introduction

Серия книг «A Very Short Introduction» издаётся Оксфордским университетом с 1995 года, и в 2016 году вышла книга по информатике. Не стоит презрительно махать рукой, исходя из «общего» названия – именно в этом и заключается цель книги. Она написана экспертом для общей аудитории. Автор делает общий экскурс в тему, своеобразное «введение» (каково название, таково и содержание).

2. «Искусство программирования», Дональд Кнут

Искусство программирования

По соседству с достаточно «лёгкой» книгой гордо красуется монументальный труд математика и учёного в области информатики Дональда Кнута. Несмотря на достаточный возраст (а первая книга вышла в 1968 году), она по праву считается одним из главных must-read-ов в сфере программирования и должна стать настольной книгой каждого уважающего себя профессионального программиста.

За что же её так ценят? «Искусство программирования» отличает крайне глубокий подход к теме и академическое изложение. Книга обеспечивает прочную базу в программировании. Однако за всё это придется «платить» – книга не так уж легка в прочтении. Не столько из-за языка (хотя и он не прост), сколько из-за необходимости иметь определённый набор знаний в математике, ведь школьного уровня тут явно не хватит. Книга изобилует примерами и задачами, сложность которых варьируется от решаемых за 1 минуту до до сих пор нерешённых вопросов.

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

3. «Introduction to Algorithms»,  Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Алгоритмы: построение и анализ

Книга проще и немного моложе, чем предыдущая – первое издание вышло в 1990-ом. Но от этого она не стала ни на толику хуже. Её советуют уже студентам, причём тем, кто также хорошо подкован математически. Язык несколько проще, чем в «Искусстве программирования», а примеры современнее. Книга не сколько учит программировать, сколько мыслить общо и понимать структуру алгоритмов. 

Книга доступна в русском и английском вариантах. Она  успела пережить три переиздания, каждый раз вносились исправления и дополнения.

4, 5 и 6. Герберт Шилдт и серия книг по С++ («С++ для начинающих. Шаг за шагом», «C++. Базовый курс», «Полный справочник по C++»)

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

С++ для начинающих. Шаг за шагом

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

C++. Базовый курс

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

7. «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

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

Кто-то её хвалит, а кто-то обвиняет в старости – так или иначе, книга так называемой Банды четырёх привлекла в своё время большое внимание, и, что говорить, привлекает его до сих пор. Да, 1995 год издания для книги о паттернах (которые окончательно систематизировали в 2001—2002 гг.) – не лучший вариант, тем не менее в ней приведены шаблоны, существующие и успешно действующие и поныне. Она скорее яркий пример уже «классической» литературы, методы которой, увы, уже не применить, но для понимания знать стоит. Непростая по своей сути и языку она все же называется «ситом», которое отделяет любителей от профессионалов. Однако сильно подпортить мнение о книге может перевод – многие читатели предпочитают оригинал неудачным синонимам и откровенным ляпам русскоязычного издания.

8. «Совершенный код», Стив МакКоннел

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

Ещё одна книга must-have и must-read. Всё-таки больше ориентирована на начинающих программистов и разработчиков ПО, но и более опытным «заходит». Изобилует примерами, написана скорее в стиле теории с отсылками на собственный опыт и жизнь, отчего читается достаточно легко. Даст знания не только общие, но и о мелочах процесса разработки, так как здесь показан весь путь от начала до конца.

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

9. «Дизайн и эволюция языка C++», Бьёрн Страуструп

Дизайн и эволюция C++

Книга, которая по праву заслуживает овации читателей. Она была издана в 1994 году и как практическое пособие устарела, но как книга-история, книга-пояснение, как появился С++ и как он строился, из каких частей и почему – просто незаменима. Читатели отмечают, что её стоит изучать тем, кто заинтересован в программировании не только как в работе, но и как в процессе, приносящем определённое удовлетворение. Язык, стиль, манера – всё это приятно, легко и захватывающе. И лишь одно может испортить впечатление: на этот раз не перевод, а само издание. Речь, конечно же, о русском варианте.

10. «Just for Fun. Рассказ нечаянного революционера», Линус Торвальдс, Дэвид Даймонд

Just for Fun. Рассказ нечаянного революционера

Одно из самых лёгких чтив списка, которое по достоинству оценят любители «пингвина». Написанная в соавторстве с самим создателем системы Linux Линусом Торвальдсом, она в отчасти даже забавной форме повествует о его жизни, о забитом мальчишке, истории появления Linux и забавных случаях из жизни. Всё это приправлено техническими описаниями и размышлениями о бытии. Для обывателя, не посвящённого в тонкости технической стороны, книга может показаться скучноватой, но для опытного программиста, особенно того, который «отдался» Linux-y, чтиво будет крайне занимательным.

11. «Рефакторинг. Улучшение существующего кода», Мартин Фаулер

Рефакторинг. Улучшение существующего кода

Очередная книга «в возрасте» (1999 год), но при этом ни в коем случае не ставшая от времени хуже. Автор не только талантливо подаёт информацию, но и делает большой акцент на практику. Многое из книги применяется на практике и сейчас, хотя что-то, безусловно, устарело.

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

12. «Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования», Федерико Бьянкуцци, Шейн Уорден

Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования

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

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

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

2 комментария к “12 книг, которые должен прочитать каждый программист”

  1. Список так себе, Кнут для рядового программиста не актуален. Зачем читать каждую книгу Г. Ш. тоже не знаю, достаточно выбрать 1 и любую по основам, а дальше только штудировать офф. справочники по API. Пионеры программирования можно почитать, если есть время и то только про парочку языков…

  2. Аноним

    Что в этом списке делают книги по С++?
    Стив МакКонелл стоит на 6 месте? Банда четырёх ещё ниже? Ребята, не смешите меня.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх