10 лучших книг по программированию по мнению Reddit


Оглавление (нажмите, чтобы открыть):

5 книг для начинающих программистов

Полезная подборка, чтобы разобраться в C++, JAVA, Python и узнать про код Грея.

Часто тем, кто всерьёз занимается олимпиадной информатикой, рекомендуют прочесть трёхтомник Дональда Кнута. Кстати, недавно вышел четвёртый том. Но всё же перед тем как взяться за Кнута, советую обратить внимание на книгу Роберта Седжвика «Фундаментальные алгоритмы C++. Анализ. Структуры данных. Сортировка. Поиск».

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

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

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

Приятным дополнением станут главы о Swing и JavaFX.

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

Эту книгу можно описать так: просто и интересно. Автор рассказывает о программировании на «Пайтоне» понятно даже для младшего школьника. Самоучитель содержит живые примеры и забавные картинки. В конце книги обсуждается разработка двух несложных игр.

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

Автор онлайн-курса программирования на Python в Фоксфорде, волонтёр международных workshop для ACM

Автор онлайн-курса разработки игровых приложений под Android на языке JAVA в Фоксфорде, преподаватель в IT-школе Samsung

Мой ТОП-9 книг для программистов

И ни одного романа.

Уверена, что это не первая статья о книгах для программистов, которые вы читаете и ждете увидеть ниже обложки увесистых томов авторства Дональда Кнута, Стивена Макконелла, Роберта Мартина, Томаса Кормена и культовой «Книги четырех» («Паттерны проектирования»).

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

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

Поэтому, расскажу только о тех книгах которые читала сама и знания из которых применяла на практике. Личный ТОП-9 включает:

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

1. Регулярные выражения. Сборник рецептов. Ян Гойвертс, Стивен Левитан

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

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

  • Удаление двойных пробелов;
  • Валидация номеров кредитных карт, емейлов и URL-адресов;
  • Удаление строк-дублей в тексте;
  • Очистка кода от комментариев;
  • Извлечение значений атрибутов из XML-файлов;
  • Нахождение дат в тексте.

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

2. SQL. Сборник рецептов. Энтони Молинаро

Знаете ли вы как с помощью SQL:

  • Извлечь из таблицы строки, которых нет в другой таблице;
  • Блокировать вставку значений в некоторые столбцы;
  • Извлечь инициалы из имени;
  • Определить количество дней между двумя датами;
  • Делать иерархические запросы.

Если нет, то книга «SQL. Сборник рецептов» подскажет как.

Чуть выше я написала — одно регулярное выражение иногда заменяет десятки строк кода. Тоже с SQL-запросами. Готовые примеры из книги помогут сократить время на разработку, увеличить скорость выполнения программ/скриптов и снизить нагрузку на сервер.

3. Продуктивный программист. Как сделать сложное простым, а невозможное – возможным. Нил Форд

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

Нил Форд писал книгу, чтобы заставить посмотреть читателей на мир под другим углом и отбросить вредные привычки:

  • Не автоматизировать то, что делается руками >10 раз;
  • Использовать мышь там, где нужна только клавиатура;
  • Избегать работы в командной строке;
  • Держать рабочие файлы в беспорядке.

И ему это удается. Тонкими шутками и железными аргументами автор прививает читателю отвращение к ручному труду и убеждает встать на путь исправления.

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

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

Если хотите, чтобы вас перестало тянуть тратить время на рутину, читайте Нила Форда:-)

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

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

Кент Бек написал во вступлении:

Cпасибо неизвестному автору книги, которую я прочитал в 12-лет­нем возрасте. В этой книге было предложено сравнивать две ленты: с реальными результатами и ожидаемыми результатами, и кодировать до тех пор, пока реаль­ные результаты не совпадут с ожидаемыми. Спасибо, спасибо, спасибо.

Этот гениальный своей простотой совет, за много лет вырос в голове Кена в фантастически результативную методику программирования:

  • Сначала пишем тесты;
  • На втором шаге кодируем и добиваемся четкого выполнения тестов;
  • Проводим рефакторинг.

Воплощения этих трех шагов на практике посвящено 200 страниц, которые занимают описание паттернов TDD, советы по проведению рефакторинга, и рассказы о личном опыте применения методики на примере работы над приложением xUnit.

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

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

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

В книге море любопытной технической информации и фактов из истории. Например:

  • Первые семь лет разработка языка APL проходила без использования компьютеров;
  • Создатель языка Eiffel Бертран Мейер еще в 1978 году написал книгу «Методы программирования», которую вскоре перевели на русский язык и издали в СССР. И до конца 2000-ых годов во время визитов в нашу страну ему попадались люди, которые утверждали, что изучали по ней программирование;
  • Создатель Post Script описывает первоклассного программиста следующими словами «Когда он предъявляет код и говорит, что тот готов, это значит, что код абсолютно надежен и отшлифован». Последний раз такой парень встречался им в 1972 году;
  • Когда Ларри пишет на своем Perl он вносит изменение в код и перезапускает программу примерно каждые 30 секунд;
  • Turbo Pascal создан тем же человеком, что и C#;
  • C++ используется чаще чем Objective-C потому, что его раскручивала корпорация AT&T (по мнению создателя Objective-C).

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

Джон Хьюз учит важности смирения для эффективной работы в команде, Дон Чемберден объясняет почему сегодня трудно сделать популярным новый язык программирования, а Гвидо ван Россум делиться приемами, как мгновенно включиться в написание кода, если тебя отвлекли.

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

6. Дискретная математика для программистов. Рей Хаггарти

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

В книге освещаются темы:

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

Радуют пояснительные примеры на псевдокоде (который по сути Pascal).

Ознакомление с этим учебником (в первую очередь с главой 7 и приложением к ней) теоретически и морально готовит к чтению третьего тома книги Дональда Кнута «Искусство программирования». Как настроить себя на чтение остальных томов, мне неизвестно:-(

Но главное, что эта книга развернуто и доступно отвечает на волнующий кодеров-любителей вопрос: «Зачем программисту когда-либо может понадобиться математика?».

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

Биография Линуса Торвальдса с раннего детства до начала 2000-ых годов. Записана журналистом Даймонд Дэвидом под диктовку главного героя книги. Эта удивительная история о судьбе гика. Думаю многие, кого с детства тянет к программированию, найдут в себе нечто схожее с Линусом:

Иногда я вообще не выходил. Мама говорила своим друзьям-журналистам, что я настолько неприхотливый ребенок, что мне для счастья достаточно чулана с компьютером, куда время от времени закидывают пачку макарон. Она была недалека от истины. Никто не боялся, что этого ребенка похитят. (А интересно, кто-нибудь бы это заметил?)

Линус с открытой банкой кока-колы в руках появился из недр Transmeta,
расположившейся в безымянном офисном комплексе Санта-Клары. На нем была
программистская униформа: джинсы, футболка с конференции и неизменный набор
носки плюс сандалии, который он полюбил, по его словам, еще до встречи с
первым программистом. “Должно быть, это просто врожденный программистский
инстинкт”, — объяснил он мне свой выбор.

Когда мы уселись на заднее сиденье, я для разминки спросил, настраивая
диктофон: “Вы из семьи технарей?”
“Нет, большинство моих родственников — журналисты, — ответил он и
добавил: — Поэтому я в курсе, какие вы все козлы”.

Я крутился как белка в колесе: программирование — сон —
программирование — еда (соленые сухарики) — программирование — сон —
программирование — душ (на скорую руку) — программирование. К концу работы
стало ясно, что моя программа превращается в операционную систему.

Помимо биографии Линуса в книге много информации о технических особенностях Linux и философии свободного ПО:

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

Цитировать «Just for Fun» можно бесконечно, настолько она классная. Читается за один вечер, поднимает настроение и помогает отвлечься от мирской суеты.

8. Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию. Монган Д., Гижере Э., Киндлер Н.

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

Задания заставляют задуматься, но не требуют много времени для решения (если под рукой Google/тема знакома).

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

9. Путь в магию. Первые шаги. Fiery

Эта книга представляет собой сборник упражнений для развития умения себя контролировать с развернутыми авторскими комментариями. Выполнение этих упражнений помогает справиться со следующими проблемами:

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

Я делала эти упражнения в 16-17 лет во время подготовки к ЕГЭ, чтобы преодолеть трудности со сосредоточением на учебе. В тот момент они мне ощутимо помогли. Теперь только возвращаюсь к ним пару раз в год по мере необходимости.

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

P.S. Если у вас начнутся выходы из тела по ночам, срочно завязывайте с упражнениями и никому об этом не рассказывайте.

Классных книг для программистов много. И ТОП-10 каждого разработчика индивидуален .

Не знаете какие книги читать? Обратитесь к опытному кодеру, который:

  • Использует те же технологии, что и вы;
  • Решает похожие задачи;
  • Похож на вас характером.

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

(5.00 из 5, оценили: 1)

10 лучших книг по программированию по мнению Reddit

Монография, которая по праву считается основой основ. На настоящий момент есть 4 тома, переведенных на русский язык. Читать всем без исключения.

Книга посвящена конфликтам и управлению конфликтами. В ней программисты и разработчики ПО противопоставлены менеджерам. Теория противопоставляется практике, стабильность — изменениям, разговоры — действиям и обещания — результатам. Предпринята попытка показать все стороны, участвующие в споре, заставить задуматься и сделать собственные выводы.

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

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

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

Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО — с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство.

Книга представляет собой подборку эссе, опубликованных автором на его сайте http://www.joelonsoftware.com. Талант и глубокое проникновение в суть предмета сделали Джоэла мастером своего дела, а остроумие и едкий юмор принесли сайту скандальную известность среди программистов. Затронуты практически все вообразимые аспекты создания ПО от лучших способов устройства рабочего места программиста до лучших способов написания программного кода. Издание адресовано широкому кругу читателей — и тем, кто собирается руководить программистами, и самим программистам — как приверженцам Microsoft, так и сторонникам открытого кода.

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

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

Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.

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

Мастер Йода рекомендует:  11 must-have алгоритмов машинного обучения для Data Scientist

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

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

15 лучших книг по программированию с нуля

Где научиться программированию, если не хочется тратить 4 года на скучные лекции? Запишитесь на курсы программирования, там вас быстро обучат азам. После этого совершенствуйтесь хоть всю жизнь, в чём помогут книги из подборки ��

Роберт Мартин. «Чистый код»

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

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

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

Томас Кормен, Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн. «Алгоритмы: построение и анализ»

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

Хант Эндрю, Томас Дэвид. «Программист-прагматик. Путь от подмастерья к мастеру»

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

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

Монография, которая успела стать классикой в кругу программистов. Изучив все 4 тома серии, вы ознакомитесь со всем, что нужно для освоения профессии.

Юрий Родичев. «Нормативная база и стандарты в области информационной безопасности»

Вы думаете, что программирование — это только код? Как бы не так! Если вы хотите стать настоящим профи, то без изучения стандартов безопасности и чтения профильной литературы не обойтись. Маст-рид для программиста в 2020!

Андрей Бирюков. «Информационная безопасность: защита и нападение»

Книга, которую должен прочесть каждый айтишник и все, кто задействован в вопросах защиты корпоративных ресурсов. Лучшая защита — это нападение. А значит вам нужно «думать, как преступник» и понимать, какими методами можно взломать вашу «неприступную систему».

Том ДеМарко, Тимоти Листер. «Вальсируя с Медведями»

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

Избегать рисков — дело проигрышное.

Игорь Савчук. «Отъявленный программист. Лайфхакинг из первых рук»

Это не классический учебник по программированию — здесь собраны мнения звезд IT-индустрии, где каждый поделился личными методами достижения успеха. И пусть эти люди совершенно разные, но их объединяет одно — любовь к программированию!

Чарльз Петцольд. «Код. Тайный язык информатики»

Если вам интересна история информатики — обязательно ознакомьтесь с этой книгой. Чарльз Петцольд создал настоящую азбуку компьютерных технологий, где раскрыта вся история IT: с самых первых попыток программирования до портативных технологий сегодняшнего дня.

Эрик Фримен, Элизабет Робсон. «Паттерны проектирования»

Решили стать Java-программистом? Без понимания паттернов проектирования вы застрянете на повторении упражнений из учебника. Обязательная книга для Java программиста в 2020 году.

Марейн Хавербек. «Выразительный JavaScript»

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

Брайан Холл. «Beej’s Gu >

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

Бьярне Страуструп. «Программирование: принципы и практика использования C++»

Интересуетесь языком C++, но нет опыта программирования? Здесь вы узнаете всю информацию о C++, так как автор книги и придумал этот язык программирования!

Мажед Маржи. «Scratch для детей»

Это один из самых понятных и интересных языков программирования, которому можно научить даже ребенка. Забудьте про зазубривание форм и алгоритмов: программировать так же просто, как сделать башню из конструктора!

Лучшие книги по программированию

В свое время я работал и продолжаю работать сейчас разработчиком. Начал в качестве веб-программиста в 2004 году, перешел на полный стек в 2009 году, начал разработку для iOS в 2013.

Я начал свой путь программиста с прочтения трех книг: одна была про HTML, другая – про CSS и третья, соответственно, об SQL. Прочие знания я получил из Google, Stack Overflow и блогов. Вообще, Интернет – прекрасная штука. Каждый день я прочитывал по 5 или больше тематических статьей. И, что самое главное, все эти знания были бесплатны.

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

То, что меня также интересует – это чтение различных специализированных книг. Увы, но размеры списков по типу «Обязательных к прочтению для разработчиков» выходят далеко за рамки адекватных. Ситуация со сжатым списком из этого списка также ненамного лучшая…

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

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

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

Полный список содержит 139 книг. Все книги, которые вы увидите в этом списке, находятся на вершине популярности рассмотренных списков.

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

Короче говоря, без лишних слов – я рад представить:

Список лучшей литературы для разработчиков

7 упоминаний:

Паттерны проектирования: Элементы повторного использования программного обеспечения

«Классическая книга, прочтение которой ознакомит читателя с различными паттернами программного проектирования, а также раскроет некоторые секреты наиболее популярных из них.» Джон Сонмец

«Еще одно произведение классики, содержащее в себе огромную коллекцию различных паттернов программирования.» Лик Бун

Код: Скрытый язык аппаратного и программного обеспечения

«Должна быть в закладках у каждого, кто так или иначе связан с программной индустрией, не важно при этом – программист ли он али нет.» Вуди Леонхард

«После прочтения этой книги вы поймете, что на самом деле выполняет ваш код и как на самом деле этот код исполняет процессор. Это одновременно и весело, и полезно.» Джон Сонмерц

8 появлений:

Эффективная работа с правильным кодом

«Я обожаю эту книгу, так как рано или поздно в один прекрасный момент программисту придётся заниматься поддержкой и разработкой уже существующих комплексных систем.» Джейсон Роял

«Если вы принимаете участие над работой с большим объемным кодом более пяти лет, эта книга, вероятно, станет вашей новой Библией. Прочтите это и примите в свои сердца.» Джон Сонмерц

Люди: Продуктивные проекты и команды

«Эта книга оказала на меня наибольшее влияние в свое время. Пожалуй, я могу сравнить ее с эффектом от прочтения Манифеста Анти-Дилберта.» Джоел Сполски

«Если вы желаете носить гордое звание тим лидера на практике, нежели на словах – эта книга определенно для вас.» Джеф Атвуд

9 упоминаний:

Паттерны разработки корпоративных приложений

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

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

11 упоминаний:

Вступление в алгоритмы

«Пожалуй, это лучшая книга для понимания и использования алгоритмов (которые де-факто являются основным инструментом разработчика программного обеспечения).» Вуди Леонхард

12 упоминаний:

Чистый код: Пособник мастера программного обеспечения

«Если вы пожелаете прочитать книгу, связанную с программированием, определенно – вам стоит обратить свое внимание на эту.» Роберт Грайнер

«Это еще одна книга, которой удалось полностью изменить стилистику написания моего кода. Я могу ясно разделить свою жизнь на период до прочтения книги и после.» Джон Сонмерц

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

«Книга, строго рекомендуемая к прочтению для каждого, кто желает улучшить качество кода.» Деепак Карантх

«Обязательна к прочтению каждому, кто так или иначе принимает участие в работе с объектно-ориентированными языками программирования.» Дэниель Рид

14 упоминаний:

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

«Это классика, но недавно исправленная и дополненная. В высшей степени поразительно то, как она тесно связана с разработкой программного обеспечения. Если вы принимаете участие в программировании, определенно эта книга – обязательна к прочтению.» Джейсон Роел

«Бесспорно, единственная классика, посвященная программированию. Позор всякому, кто еще не прочитал ее.» Джеффри Атвуд

15. упоминаний:

Прагматичный программист: От новичка к мастеру

«Насколько революционна эта книга? Пожалуй, достаточно для того, чтобы развернуть целую издательскую кампанию. Если вы все еще не прочитали ее – это, бесспорно, большое упущение с вашей стороны.» Род Хилтон

«Эта книга не только изменит ваш код: она изменит вас как программиста. Наполненная практическими советами по улучшению вас и вашего кода, бесспорно, является отличным приобретением для каждого, кто хочет стать лучшим в сфере разработки программного обеспечения.» Деепак Карант

16 упоминаний:

Идеальный код: Практическое пособие по программной архитектуре

«Сделайте для себя приятное. Пусть это будет первой книгой, которую вы прочитаете – и первой книгой, которую вы посоветуете другим.» Джеффри Атвуд

«Эта книга потрясла меня больше всего. Определенно, после ее прочтения то, как я писал код, и то, что я думал о программировании в целом, претерпело серьезные изменения.» Джон Сонмец

Полный список содержит в себе 139 книг. При желании на языке оригинала его можно рассмотреть здесь.

Автор перевода: Евгений Лукашук

Каждому программисту. Лучшие книги по программированию. Обзор

Бьярне Страуструп. Программирование: Принципы и практика с использованием C++ (2-е издание). М.: Издательский дом «Вильямс», 2020. Пер. с англ. – 1328 стр. Тираж 300 экз.

Bjarne Stroustrup. Programming: Principles and Practice Using C++. Second edition.

Программирование – это искусство выражать решения задач так, чтобы компьютер мог их осуществить. Основные усилия программиста направлены на то, чтобы найти и уточнить решение, причем довольно часто полное понимание задачи приходит лишь в ходе программирования ее решения.
Эта книга предназначена для тех, кто еще никогда не программировал, но готов учиться этому ценой тяжелого и упорного труда. Она поможет овладеть главными принципами и приобрести практический опыт программирования на языке C++. Моя цель заключается в том, чтобы изложить достаточный объем сведений и научить вас решать простые и полезные задачи по программированию с помощью самых лучших и современных методов. Если вы учитесь на первом курсе университета, то можете изучать эту книгу на протяжении семестра (в предположении, что у вас имеется еще четыре курса средней сложности). Если вы изучаете программирование самостоятельно, то не ждите, что сможете освоить этот курс за меньшее время (ну, при условии, что вы будете работать по 15 часов в неделю, возможно, вам хватит 14 недель).
Три месяца могут показаться долгими, но объем курса довольно велик, и первые простые программы вы сможете написать, проработав над книгой около часа. Кроме того, сложность материала постепенно возрастает: в каждой главе вводятся новые полезные понятия, которые иллюстрируются реальными примерами.

* * *
Станете ли вы профессиональным программистом или экспертом по языку C++, прочитав эту книгу? Конечно, нет! Настоящее программирование – это тонкое, глубокое и очень сложное искусство, требующее знаний и технических навыков. Рассчитывать на то, что за четыре месяца вы станете экспертом по программированию, можно с таким же успехом, как и на то, что за полгода или даже год вы полностью изучите биологию, математику или иностранный язык (например, китайский, английский или датский) или научитесь играть на виолончели. Если подходить к изучению книги серьезно, то можно ожидать, что вы сможете писать простые полезные программы, читать более сложные программы и получите хорошие теоретическую и практическую основы для дальнейшей работы.
Прослушав этот курс, лучше всего поработать над реальным проектом.

* * *
Когда – начиная с 1949 года – в мире появились первые электронные компьютеры с хранимыми программами, каждый из них имел собственный язык программирования. Существовало взаимно однозначное соответствие между выражением алгоритма (например, вычисления орбиты планеты) и командами конкретной машины. Очевидно, что ученый (пользователями чаще всего были ученые) писал математические формулы, но программа представляла собой список машинных инструкций. Первые примитивные списки состояли из десятичных или восьмеричных цифр, точно соответствовавших их представлению в машинной памяти. Позднее появились ассемблер и «автокоды»; иначе говоря, люди разработали языки, в которых машинные команды и машинное оборудование (например, регистры) имели символические имена. Так, программист мог написать «LD R0 123», чтобы загрузить содержимое ячейки памяти, расположенной по адресу 123, в нулевой регистр. Однако каждая машина по-прежнему имела собственный набор команд и собственный язык программирования. (С. 893)

Стив Макконнелл. Совершенный код. Мастер-класс (Практическое руководство по разработке программного обеспечения). М.: Русская редакция, Спб: Питер, 2005. Пер. с англ. – 896 стр.

© Steven C. McConnell, 2004

Аннотация. Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО – с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.
Книга состоит из 35 глав, предметного указателя и библиографии.

«Великолепное руководство по стилю программирования и конструированию ПО».
Мартин Фаулер, автор книги «Refactoring»


«Книга Стива Макконнелла… это быстрый путь к мудрому программированию… Его книги увлекательны, и вы никогда не забудете то, что он рассказывает, опираясь на свой с трудом полученный опыт».
Джон Бентли, автор книги «Programming Pearls, 2d ed»

«Современное ПО должно быть надежным и гибким, а создание защищенного кода начинается с дисциплинированного конструирования программы. За десять лет так и не появилось лучшего руководства по этой теме, чем эта книга».
Майкл Ховард, специалист по защите ПО, корпорация Microsoft; один из авторов книги «Writing Secure Code»

Если вы не имеете специального образования, вы не одиноки. Ежегодно программистами становятся около 50 000 человек (BLS, 2004, Heскеr, 2004), однако число дипломов, вручаемых ежегодно в нашей отрасли, составляет лишь около 35 000 (NCES, 2002). Легко прийти к выводу, что многие программисты изучают разработку ПО самостоятельно. Программисты-самоучки встречаются среди инженеров, бухгалтеров, ученых, преподавателей, владельцев малого бизнеса и представителей других профессий, которые занимаются программированием в рамках своей работы, но не всегда считают себя программистами. Каким бы ни было ваше программистское образование, в этом руководстве вы найдете информацию об эффективных методиках программирования.

* * *
Методики, описанные в этой книге, заполняют пустоту, остающуюся в знаниях программистов после прочтения вводных и более серьезных учебников по программированию. Что читать человеку, изучившему книги типа «Introduction to Java», «Advanced Java» и «Advanced Advanced Java» и желающему узнать о программировании больше? Вы можете читать книги о процессорах Intel или Motorola, функциях ОС Microsoft Windows или Linux или о другом языке программирования – невозможно эффективно программировать, не имея хорошего представления о таких деталях. Но эта книга относится к числу тех немногих, в которых обсуждается программирование как таковое. Наибольшую пользу приносят те методики, которые можно использовать независимо от среды или языка. В других источниках такие методики обычно игнорируются, и именно поэтому я сосредоточился на них.
Как показано ниже, информация, представленная в этой книге, выжата из многих источников. Единственным другим способом получения этой информации является изучение горы книг и нескольких сотен технических журналов, дополненное значительным реальным опытом. Если вы уже проделали всё это, данная книга всё равно окажется вам полезной как удобный справочник.

* * *
За доказательствами влияния, оказываемого языками программирования на мышление программистов, далеко ходить не надо. Типичная история такова: «Мы писали новую систему на C++, но большинство наших программистов не имели особого опыта работы на C++. Раньше они использовали Fortran. Они писали код, который компилировался на C++, но на самом деле это был замаскированный Fortran. В итоге они заставили C++ эмулировать недостатки языка Fortran (такие как операторы goto и глобальные данные) и проигнорировали богатый набор объектно-ориентированных возможностей C++». Данный феномен наблюдается в отрасли уже много лет (Hanson, 1984; Yourdon, 1986a). (С. 60)

Питер Гудлиф. Ремесло программиста. Практика написания хорошего кода. Спб.: Символ-Плюс, 2009. Пер. с англ. – 704 стр.

Pete Goodliffe. Code Craft: The Practice of Writing Excellent Code.

Аннотация. Ничто не сравнится по ценности с советами настоящего программиста-профессионала. Книга Питера Гудлифа «Ремесло программиста» написана ясно, практично и занимательно. Она поможет вам перейти на более высокий уровень мастерства программирования и покажет, как писать код, который больше чем «просто работает». Да, вы умеете писать работающий код, но как написать понятный код? Как добиться его надежности и отсутствия ошибок? Смогут ли другие программисты выяснить логику и цель вашего кода? Выдающиеся программисты не просто обладают техническими знаниями – у них есть правильный подход и отношение к программированию.
Перед вами руководство по выживанию в условиях промышленного производства ПО. Эта книга посвящена тому, чему вас никто не учил: как правильно программировать в реальной жизни. Здесь вы найдете не связанные с конкретными языками рекомендации, полезные всем разработчикам и касающиеся таких проблем, как стиль представления, выбор имен переменных, обработка ошибок, безопасность, эффективность групповой работы, технологии разработки и составление документации.
Читатель должен обладать опытом программирования, ибо книга не учит программированию – она учит правильно программировать. Издание будет полезно и студентам старших курсов, знакомым с принципами программирования.

«Легко читается, занимательно, даже забавно… Книга полна мудрости, накопленной за годы реальной работы, мучений и побед в сфере программных разработок… Жаль, что у меня не было такой книги, когда я начинал работать программистом».
Стив Лав (Steve Love), старший разработчик

Мастер Йода рекомендует:  6 полезных привычек, которые научат программировать

«Именно та книга, которая нужна необстрелянным новобранцам. Рассказывает всю правду, легко читается и охватывает широкий круг тем, которые должен знать новичок».
Джон Джеггер (Jon Jagger), преподаватель, программист

Программирование – ваша страсть. Печально, но это так. И как закоренелый технарь вы программируете чуть ли не во время ночного сна. И вот вы попали в центр реального мира, в саму эту отрасль, и занимаетесь тем, о чем и не мечтали: забавляетесь с компьютером, а вам за это еще и деньги платят. Ведь вы сами готовы были заплатить за то, чтобы иметь такую возможность!
Но всё не так просто и не похоже на то, чего вы ожидали. Огорошенные назначением вам нереальных сроков выполнения задач и неумелым руководством (если его можно назвать этим словом), непрерывным изменением технического задания и необходимостью разбираться в дрянном коде, доставшемся вам от предшественников, вы начинаете сомневаться в том, что выбрали для себя правильный путь. Всё вокруг мешает вам писать тот код, о котором вы мечтали. Что ж, таковы условия существования в организациях, где пишут программы. Вы попали на передний край упорной битвы за создание шедевров художественного мастерства и научного гения. Удачи вам!

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

Сбой при компиляции
Крайне досадно, когда код, на который вы потратили столько времени, отказывается компилироваться. Это значит, что вам придется вернуться и исправить противную маленькую опечатку или несоответствие типов параметров, а затем снова компилировать и только потом приниматься по-настоящему тестировать свой труд. Как ни странно, это лучший тип ошибок, с которым вы можете столкнуться. Почему? Просто потому, что их проще всего обнаружить и исправить. Они проявляются сразу и наиболее очевидны.
Чем дольше поиск ошибок, тем дороже их исправление; это проиллюстрировано в разделе «Экономика ошибок» на стр. 216. Чем раньше вы сможете найти и исправить каждую ошибку, тем скорее вы сможете продолжить работу и тем меньшим объемом неприятностей и затрат обойдетесь. Ошибки компиляции очень легко заметить (на них просто трудно не обратить внимания) и обычно легко исправить. Вы не сможете запустить программу, пока не устраните их.
Чаще всего сбой при компиляции бывает вызван глупой синтаксической ошибкой или обычной невнимательностью, например при вызове функции с параметром неверного типа. Сбой может быть вызван ошибкой в make-файле, ошибкой этапа сборки (например, отсутствием реализации функции) или даже нехваткой дискового пространства на машине, где осуществляется сборка. (С. 214)

Роберт Мартин. Чистый код: Создание, анализ и рефакторинг. (Библиотека программиста). Спб.: Питер, 2010. – 464 стр.

Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship.

Аннотация. Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение».
Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги – концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

* * *
…И предоставлю всю необходимую для этого информацию. Но когда вы впервые заберетесь на велосипед, вы всё равно неизбежно упадете.
С программированием дело обстоит точно так же. Конечно, мы могли бы записать все «хорошие» принципы чистого кода, а потом доверить вам всю практическую работу (другими словами, позволить вам упасть, забравшись на велосипед), но какие бы из нас тогда были учителя?
Нет. В этой книге мы пойдем по другому пути.
Умение писать чистый код – тяжелая работа. Она не ограничивается знанием паттернов и принципов. Над кодом необходимо попотеть. Необходимо пытаться и терпеть неудачи. Необходимо наблюдать за тем, как другие пытаются и терпят неудачи. Необходимо видеть, как они спотыкаются и возвращаются к началу; как мучительно принимаются решения и какую цену приходится платить за неверный выбор.
Приготовьтесь основательно потрудиться во время чтения книги. Перед вами не «легкое чтиво», которое можно проглотить в самолете и перевернуть последнюю страницу перед посадкой. Книга заставит вас потрудиться, и потрудиться усердно. Какая работа вам предстоит? Вы будете читать код – много кода. И нам придется как следует подумать, что в этом коде правильно, а что нет. Вы будете наблюдать за тем, как мы разбираем эти модули, а потом собираем заново. Это потребует немало времени и усилий; но мы считаем, что результат того стоит.
Книга разделена на три части. В первых нескольких главах излагаются принципы, паттерны и приемы написания чистого кода. В них приводится довольно солидный объем кода, и читать их будет непросто. Весь этот материал подготовит вас ко второй части. Если вы отложите книгу после первой части – всего хорошего!
Во второй части книги трудиться придется еще больше. Она состоит из нескольких практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода – или преобразовании проблемного кода в код с меньшим количеством проблем. Чтобы усвоить материал этой части,

* * *
Правило № 1: выполнение всех тестов
Прежде всего система должна делать то, что задумано ее проектировщиком. Система может быть отлично спланирована «на бумаге», но если не существует простого способа убедиться в том, что она действительно решает свои задачи, то результат выглядит сомнительно.
Система, тщательно протестированная и прошедшая все тесты, контролируема. На первый взгляд утверждение кажется очевидным, но это весьма важно. Невозможно проверить работу системы, которая не является контролируемой, а непроверенные системы не должны запускаться в эксплуатацию.
К счастью, стремление к контролируемости системы ведет к архитектуре с компактными узкоспециализированными классами. Всё просто: классы, соответствующие принципу SRP, проще тестировать. Чем больше тестов мы напишем, тем дальше продвинемся к простоте тестирования. Таким образом, обеспечение полной контролируемости системы помогает повысить качество проектирования.
Жесткая привязка усложняет написание тестов. Таким образом, чем больше тестов мы пишем, тем интенсивнее используем такие принципы, как DIP, и такие инструменты, как внедрение зависимостей, интерфейсы и абстракции, для минимизации привязок.
Как ни удивительно, выполнение простого и очевидного правила, гласящего, что для системы необходимо написать тесты и постоянно выполнять их, влияет на соответствие системы важнейшим критериям объектно-ориентированного программирования: устранению жестких привязок и повышению связности. Написание тестов улучшает архитектуру системы. (С. 201)

Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений (3-е издание). Издательский дом «Вильямс», 2008. Пер. с англ. – 720 стр.

Grady Booch and oth. Object-oriented Analysis and Design with Application. Third edition.

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

Гради Буч получил всемирное признание за его новаторскую работу в области архитектуры, проектирования и моделирования программных систем. С момента создания компании IBM Rational в 1981 году, он работал ее ведущим научным сотрудником. В марте 2003 года Гради получил звание почетного сотрудника IBM (IBM Fellow).
Гради – один из основоположников языка Unified Modeling Language (UML), а также автор нескольких оригинальных разработок компании Rational. Работая над многочисленными проектами, связанными с интенсивным программированием, Гради был не только архитектором программных систем, но и учил сотрудников принципам проектирования.

«Чем сложнее система, тем она уязвимее». Трудно себе представить строителя, размышляющего, а не вырыть ли еще один подвальный этаж под уже построенным стоэтажным зданием. Такое мероприятие было бы слишком дорогим и опасным. Как ни странно, пользователи программного обеспечения, не задумываясь, просят делать аналогичные изменения в программах. Более того, они считают, что для программиста эта задача не представляет никаких трудностей.
Наша неспособность справиться со сложностью, характерной для программного обеспечения, приводит к задержкам, дополнительным расходам и нарушениям технического задания. Такую ситуацию часто называют кризисом программного обеспечения, но, откровенно говоря, болезнь, длящуюся столь долго, следует называть нормальным состоянием. К сожалению, этот кризис уже привел в расточительному расходованию трудовых ресурсов – самого дорогого товара, – и многие возможности оказались упущенными. Для того чтобы создать новое программное обеспечение, необходимое пользователям, совершенно не достаточно просто собрать команду хороших программистов. Кроме того, во многих организациях большое количество персонала вынуждено отвлекаться на поддержку морально устаревших программ. Учитывая прямой и косвенный вклад, который вносит программное обеспечение в экономику наиболее развитых стран, а также огромные возможности, появляющиеся благодаря информатизации, следует признать, что мириться с такой ситуацией больше нельзя.
Как изменить эту мрачную картину? Поскольку источником всех проблем является сложность, присущая программному обеспечению, следует начать с изучения сложных систем, существующих в других научных дисциплинах. Действительно, если оглянуться вокруг, то можно обнаружить весьма успешно функционирующие системы, обладающие значительной сложностью. Некоторые из этих систем созданы человеком, например, космический корабль «Space Shuttle», туннель, соединяющий Англию и Францию, а также крупные корпорации. В природе существуют еще более сложные системы, такие как система циркуляции крови у человека (С. 34)

* * *
Дилетанты постоянно ищут некий волшебный метод или инструмент, который мог бы сделать процесс разработки программ тривиальным. В отличие от них, профессионалы знают, что такой панацеи не существует. Дилетанты хотят иметь готовые рецепты; профессионалы знают, что такой подход ведет к негодным проектным решениям и нагромождению лжи, за которой разработчики скрываются от ответственности за ранее принятые неверные решения. Дилетанты либо игнорируют документацию вообще, либо делают из нее фетиш, заботясь больше о том, как их бумажный продукт выглядит в глазах заказчика, чем о его сути. Профессионал признает важность документации, но всегда отдает предпочтение разумным архитектурными новшествам.
Процесс объектно-ориентированного анализа и проектирования невозможно описать с помощью рецептов, однако он определен достаточно хорошо, чтобы стать основой прогнозируемого и воспроизводимого процесса разработки программного обеспечения. В главе изучаются процессы анализа и проектирования (его цели, результаты, этапы и критерии успеха), а также приведен обзор процесса разработки программного обеспечения в целом. (С. 281)

5 книг для начинающих программистов

Полезная подборка, чтобы разобраться в C++, JAVA, Python и узнать про код Грея.

Часто тем, кто всерьёз занимается олимпиадной информатикой, рекомендуют прочесть трёхтомник Дональда Кнута. Кстати, недавно вышел четвёртый том. Но всё же перед тем как взяться за Кнута, советую обратить внимание на книгу Роберта Седжвика «Фундаментальные алгоритмы C++. Анализ. Структуры данных. Сортировка. Поиск».

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

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

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

Приятным дополнением станут главы о Swing и JavaFX.

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

Эту книгу можно описать так: просто и интересно. Автор рассказывает о программировании на «Пайтоне» понятно даже для младшего школьника. Самоучитель содержит живые примеры и забавные картинки. В конце книги обсуждается разработка двух несложных игр.

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

Автор онлайн-курса программирования на Python в Фоксфорде, волонтёр международных workshop для ACM

Автор онлайн-курса разработки игровых приложений под Android на языке JAVA в Фоксфорде, преподаватель в IT-школе Samsung

Лучшие книги для начинающих программистов

У меня есть книга, которую я уже пытаюсь раза с третьего осилить, но всё никак не дойду до последней страницы. Называется она «Человеческий фактор. Успешные проекты и компании«, в простонародье «Peopleware» и является хрестоматией по разработке программного обеспечения наряду с классическим трудом под названием «Мифический человеко-месяц» от Фредерика Брукса. Так вот, там есть интересное выражение, которое гласит следующее:

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

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

Софтостроение специфическая отрасль, где специалисту необходимо обладать рядом навыков и знаний. Возьмём самый простой пример: веб-разработка. Современному веб-разработчику нужно иметь представление о множестве тем: веб-программирование, веб-дизайн, основы безопасности веб-приложений, навыки системного администрирования (чаще всего unix-подобных систем), навыки работы с СУБД, паттерны проектирования веб-приложений, хотя бы поверхностно понимать методологии разработки ПО, их плюсы и минусы, не говоря уже о множестве инструментов, используемых ежедневно (VCS, IDE, ОС, пакетные менеджеры и так далее). Веб-разработчик, не знающий основ безопасности веб-приложений, может ненамеренно оставить серьёзную брешь в системе, которая в будущем обернётся серьёзными финансовыми потерями, а может и вовсе иметь катастрофические последствия. Порой «гугля» очередное решение проблемы, мы не задумываясь копируем код или используем сомнительную библиотеку, даже не заглянув внутрь. Главное работает 🙂 А ведь за всем этим могут скрываться серьёзные проблемы.

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

  • Программист-прагматик. Путь от подмастерья к мастеру
  • Чистый код
  • Джоэл о программировании (Joel on Software)
  • Джоэл. И снова о программировании (More Joel on Software)
  • Программист-фанатик (Passionate Programmer)
  • Человеческий фактор. Успешные проекты и команды (Peopleware)
  • Язык программирования C
  • Код. Тайный язык информатики

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

Программист-прагматик

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

Чистый код

Книга «Чистый код» это своего рода облегченная версия книги «Совершенный код». Последнюю читать куда тяжелее. Одна из основных проблем начинающих программистов это их код. Его невозможно читать 🙂 Он плохо структурирован, перегружен, а переменные и функции чаще всего имеют непонятные названия. Как придать человеческий вид вашему коду и повествует эта книга. Автором является известный «дядюшка Боб», личность категоричная, поэтому читать книгу советую со здравой долей скептицизма и не принимать каждое слово на веру. Но категоричность автора нисколько не уменьшает пользу от книги.

Джоэл о программировании

Если вы ни разу не слышали о Джоэле Спольски, то стоит задуматься, а тем ли делом вы занимаетесь 🙂 Мистер Спольски автор популярного блога «Joel on Software», а также. один из создателей StackOverflow 🙂 Книга является сборником эссе, опубликованных на личном блоге автора. В ней собраны самые популярные темы о программировании. Вот лишь малая часть из них:

  • Какой язык программирования стоит изучать первым
  • Что необходимо знать про UTF-8
  • Зачем программисту понимать алгоритмы и структуры данных
  • Как проводить собеседование с кандидатами на работу

Продолжением «Джоэл о программировании» является «Джоэл. И снова о программировании». Однозначный must read!

P.S. Перевод его блога (к сожалению, не все статьи) на русский язык можно посмотреть тут.

Программист-фанатик

Эта книга была переведена на русский язык совсем недавно, но существует по технологичным меркам давно (

2009 год). Написана программистом для программистов и затрагивает щепетильные для разработчиков темы:

  • Кто такой настоящий программист
  • Что необходимо знать программисту, чтобы всегда быть «на плаву»
  • Почему не стоит бояться конкуренции со стороны программистов-индусов 🙂
  • Как «не перегореть» на работе

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

Человеческий фактор

Эту книгу я рекомендовал на прошедшем Python митапе в Алматы в прошлом году. Она из тех книг, которые перечитывая — узнаёшь новое. С опытом начинаешь по-другому смотреть на, может быть, привычные для себя вещи. «Человеческий фактор» основан на эмпирических исследованиях, проводимых авторами. Цель заключалась в том, чтобы понять почему одни проекты (как и люди) успешны, а другие нет, само собой в нашем с вами общем деле. Читать в первую очередь рекомендую руководителям и менеджерам в сфере IT, разработчикам она тоже будет очень полезна.

Язык программирования C

Свой путь в мир программирования я, можно сказать, начинал с этого легендарного языка. Си является родителем для многих современных высокоуровневых языков, например того же Python. На нём написано множество софта, начиная от встроенного (привет прошивкам микроконтроллеров) заканчивая сложными вычислительными системами, работающими на Земле и в Космосе (ядро Linux, современный Интернет, ПО в медицине и военной промышленности и многое-многое другое). В рейтинге самых популярных языков он до сих пор занимает лидирующие позиции. Книга «Язык программирования C» является бессмертной классикой, а среди её авторов есть создатель Unix (Dennis Ritchie). Прелесть Си в том, что программист полностью контролирует ход выполнения программы: ручной доступ к памяти и работа с указателями, строгая типизация, контроль за размером входных данных и многое другое. За счёт низкого уровня при работе с «железом» компьютера, а следовательно отсутствия дополнительных абстракций (в простонародье «свистелок и перделок»), код выполняется очень быстро. Но за скорость нужно платить. В неумелых руках системы, написанные на Си, подвержены известным уязвимостям: переполнение стэка, переполнение кучи, ошибки форматирования строки и многие другие. Изучив Си, вы начнёте лучше понимать как работает компьютер, а следовательно станете лучшим программистом.

Мастер Йода рекомендует:  Абсолютный и относительный путь к файлам

Код. Тайный язык информатики

Почему люди используют десятичную систему исчисления? Как работают триггеры и почему транзистор совершил революцию? В конце концов, как работает современный компьютер? Ответы на все эти вопросы вы найдёте в книге Чарльза Петцгольда «Код. Тайный язык информатики». Текст книги написан в увлекательной манере, с юмором и точно не заставит своего читателя скучать. Но материал по мере чтения становится всё сложнее и сложнее 🙂

Это не весь список книг, которые нужно прочитать. В первую очередь я постарался собрать книги именно для начинающих программистов, чтобы им легче было ориентироваться в столь хаотичной профессии, где постоянное обучение — залог будущего успеха, а застой — прямая дорогая к посредственности. Будьте жадными до знаний, читайте книги!

Если у вас есть идеи или замечания по моему списку книг, добро пожаловать в комментарии 🙂

Мой ТОП-9 книг для программистов

И ни одного романа.

Уверена, что это не первая статья о книгах для программистов, которые вы читаете и ждете увидеть ниже обложки увесистых томов авторства Дональда Кнута, Стивена Макконелла, Роберта Мартина, Томаса Кормена и культовой «Книги четырех» («Паттерны проектирования»).

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

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

Поэтому, расскажу только о тех книгах которые читала сама и знания из которых применяла на практике. Личный ТОП-9 включает:

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

1. Регулярные выражения. Сборник рецептов. Ян Гойвертс, Стивен Левитан

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

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

  • Удаление двойных пробелов;
  • Валидация номеров кредитных карт, емейлов и URL-адресов;
  • Удаление строк-дублей в тексте;
  • Очистка кода от комментариев;
  • Извлечение значений атрибутов из XML-файлов;
  • Нахождение дат в тексте.

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

2. SQL. Сборник рецептов. Энтони Молинаро

Знаете ли вы как с помощью SQL:

  • Извлечь из таблицы строки, которых нет в другой таблице;
  • Блокировать вставку значений в некоторые столбцы;
  • Извлечь инициалы из имени;
  • Определить количество дней между двумя датами;
  • Делать иерархические запросы.

Если нет, то книга «SQL. Сборник рецептов» подскажет как.

Чуть выше я написала — одно регулярное выражение иногда заменяет десятки строк кода. Тоже с SQL-запросами. Готовые примеры из книги помогут сократить время на разработку, увеличить скорость выполнения программ/скриптов и снизить нагрузку на сервер.

3. Продуктивный программист. Как сделать сложное простым, а невозможное – возможным. Нил Форд

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

Нил Форд писал книгу, чтобы заставить посмотреть читателей на мир под другим углом и отбросить вредные привычки:

  • Не автоматизировать то, что делается руками >10 раз;
  • Использовать мышь там, где нужна только клавиатура;
  • Избегать работы в командной строке;
  • Держать рабочие файлы в беспорядке.

И ему это удается. Тонкими шутками и железными аргументами автор прививает читателю отвращение к ручному труду и убеждает встать на путь исправления.

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

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

Если хотите, чтобы вас перестало тянуть тратить время на рутину, читайте Нила Форда:-)

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

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

Кент Бек написал во вступлении:

Cпасибо неизвестному автору книги, которую я прочитал в 12-лет­нем возрасте. В этой книге было предложено сравнивать две ленты: с реальными результатами и ожидаемыми результатами, и кодировать до тех пор, пока реаль­ные результаты не совпадут с ожидаемыми. Спасибо, спасибо, спасибо.

Этот гениальный своей простотой совет, за много лет вырос в голове Кена в фантастически результативную методику программирования:

  • Сначала пишем тесты;
  • На втором шаге кодируем и добиваемся четкого выполнения тестов;
  • Проводим рефакторинг.

Воплощения этих трех шагов на практике посвящено 200 страниц, которые занимают описание паттернов TDD, советы по проведению рефакторинга, и рассказы о личном опыте применения методики на примере работы над приложением xUnit.

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

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

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

В книге море любопытной технической информации и фактов из истории. Например:

  • Первые семь лет разработка языка APL проходила без использования компьютеров;
  • Создатель языка Eiffel Бертран Мейер еще в 1978 году написал книгу «Методы программирования», которую вскоре перевели на русский язык и издали в СССР. И до конца 2000-ых годов во время визитов в нашу страну ему попадались люди, которые утверждали, что изучали по ней программирование;
  • Создатель Post Script описывает первоклассного программиста следующими словами «Когда он предъявляет код и говорит, что тот готов, это значит, что код абсолютно надежен и отшлифован». Последний раз такой парень встречался им в 1972 году;
  • Когда Ларри пишет на своем Perl он вносит изменение в код и перезапускает программу примерно каждые 30 секунд;
  • Turbo Pascal создан тем же человеком, что и C#;
  • C++ используется чаще чем Objective-C потому, что его раскручивала корпорация AT&T (по мнению создателя Objective-C).

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

Джон Хьюз учит важности смирения для эффективной работы в команде, Дон Чемберден объясняет почему сегодня трудно сделать популярным новый язык программирования, а Гвидо ван Россум делиться приемами, как мгновенно включиться в написание кода, если тебя отвлекли.

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

6. Дискретная математика для программистов. Рей Хаггарти

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

В книге освещаются темы:

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

Радуют пояснительные примеры на псевдокоде (который по сути Pascal).

Ознакомление с этим учебником (в первую очередь с главой 7 и приложением к ней) теоретически и морально готовит к чтению третьего тома книги Дональда Кнута «Искусство программирования». Как настроить себя на чтение остальных томов, мне неизвестно:-(

Но главное, что эта книга развернуто и доступно отвечает на волнующий кодеров-любителей вопрос: «Зачем программисту когда-либо может понадобиться математика?».

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

Биография Линуса Торвальдса с раннего детства до начала 2000-ых годов. Записана журналистом Даймонд Дэвидом под диктовку главного героя книги. Эта удивительная история о судьбе гика. Думаю многие, кого с детства тянет к программированию, найдут в себе нечто схожее с Линусом:

Иногда я вообще не выходил. Мама говорила своим друзьям-журналистам, что я настолько неприхотливый ребенок, что мне для счастья достаточно чулана с компьютером, куда время от времени закидывают пачку макарон. Она была недалека от истины. Никто не боялся, что этого ребенка похитят. (А интересно, кто-нибудь бы это заметил?)

Линус с открытой банкой кока-колы в руках появился из недр Transmeta,
расположившейся в безымянном офисном комплексе Санта-Клары. На нем была
программистская униформа: джинсы, футболка с конференции и неизменный набор
носки плюс сандалии, который он полюбил, по его словам, еще до встречи с
первым программистом. “Должно быть, это просто врожденный программистский
инстинкт”, — объяснил он мне свой выбор.

Когда мы уселись на заднее сиденье, я для разминки спросил, настраивая
диктофон: “Вы из семьи технарей?”
“Нет, большинство моих родственников — журналисты, — ответил он и
добавил: — Поэтому я в курсе, какие вы все козлы”.

Я крутился как белка в колесе: программирование — сон —
программирование — еда (соленые сухарики) — программирование — сон —
программирование — душ (на скорую руку) — программирование. К концу работы
стало ясно, что моя программа превращается в операционную систему.

Помимо биографии Линуса в книге много информации о технических особенностях Linux и философии свободного ПО:

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

Цитировать «Just for Fun» можно бесконечно, настолько она классная. Читается за один вечер, поднимает настроение и помогает отвлечься от мирской суеты.

8. Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию. Монган Д., Гижере Э., Киндлер Н.

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

Задания заставляют задуматься, но не требуют много времени для решения (если под рукой Google/тема знакома).

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

9. Путь в магию. Первые шаги. Fiery

Эта книга представляет собой сборник упражнений для развития умения себя контролировать с развернутыми авторскими комментариями. Выполнение этих упражнений помогает справиться со следующими проблемами:

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

Я делала эти упражнения в 16-17 лет во время подготовки к ЕГЭ, чтобы преодолеть трудности со сосредоточением на учебе. В тот момент они мне ощутимо помогли. Теперь только возвращаюсь к ним пару раз в год по мере необходимости.

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

P.S. Если у вас начнутся выходы из тела по ночам, срочно завязывайте с упражнениями и никому об этом не рассказывайте.

Классных книг для программистов много. И ТОП-10 каждого разработчика индивидуален .

Не знаете какие книги читать? Обратитесь к опытному кодеру, который:

  • Использует те же технологии, что и вы;
  • Решает похожие задачи;
  • Похож на вас характером.

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

(5.00 из 5, оценили: 1)

Лучшие книги по программированию

В свое время я работал и продолжаю работать сейчас разработчиком. Начал в качестве веб-программиста в 2004 году, перешел на полный стек в 2009 году, начал разработку для iOS в 2013.

Я начал свой путь программиста с прочтения трех книг: одна была про HTML, другая – про CSS и третья, соответственно, об SQL. Прочие знания я получил из Google, Stack Overflow и блогов. Вообще, Интернет – прекрасная штука. Каждый день я прочитывал по 5 или больше тематических статьей. И, что самое главное, все эти знания были бесплатны.

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

То, что меня также интересует – это чтение различных специализированных книг. Увы, но размеры списков по типу «Обязательных к прочтению для разработчиков» выходят далеко за рамки адекватных. Ситуация со сжатым списком из этого списка также ненамного лучшая…

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

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

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

Полный список содержит 139 книг. Все книги, которые вы увидите в этом списке, находятся на вершине популярности рассмотренных списков.

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

Короче говоря, без лишних слов – я рад представить:

Список лучшей литературы для разработчиков

7 упоминаний:

Паттерны проектирования: Элементы повторного использования программного обеспечения

«Классическая книга, прочтение которой ознакомит читателя с различными паттернами программного проектирования, а также раскроет некоторые секреты наиболее популярных из них.» Джон Сонмец

«Еще одно произведение классики, содержащее в себе огромную коллекцию различных паттернов программирования.» Лик Бун

Код: Скрытый язык аппаратного и программного обеспечения

«Должна быть в закладках у каждого, кто так или иначе связан с программной индустрией, не важно при этом – программист ли он али нет.» Вуди Леонхард

«После прочтения этой книги вы поймете, что на самом деле выполняет ваш код и как на самом деле этот код исполняет процессор. Это одновременно и весело, и полезно.» Джон Сонмерц

8 появлений:

Эффективная работа с правильным кодом

«Я обожаю эту книгу, так как рано или поздно в один прекрасный момент программисту придётся заниматься поддержкой и разработкой уже существующих комплексных систем.» Джейсон Роял

«Если вы принимаете участие над работой с большим объемным кодом более пяти лет, эта книга, вероятно, станет вашей новой Библией. Прочтите это и примите в свои сердца.» Джон Сонмерц

Люди: Продуктивные проекты и команды

«Эта книга оказала на меня наибольшее влияние в свое время. Пожалуй, я могу сравнить ее с эффектом от прочтения Манифеста Анти-Дилберта.» Джоел Сполски

«Если вы желаете носить гордое звание тим лидера на практике, нежели на словах – эта книга определенно для вас.» Джеф Атвуд

9 упоминаний:

Паттерны разработки корпоративных приложений

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

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

11 упоминаний:

Вступление в алгоритмы

«Пожалуй, это лучшая книга для понимания и использования алгоритмов (которые де-факто являются основным инструментом разработчика программного обеспечения).» Вуди Леонхард

12 упоминаний:

Чистый код: Пособник мастера программного обеспечения

«Если вы пожелаете прочитать книгу, связанную с программированием, определенно – вам стоит обратить свое внимание на эту.» Роберт Грайнер

«Это еще одна книга, которой удалось полностью изменить стилистику написания моего кода. Я могу ясно разделить свою жизнь на период до прочтения книги и после.» Джон Сонмерц

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

«Книга, строго рекомендуемая к прочтению для каждого, кто желает улучшить качество кода.» Деепак Карантх

«Обязательна к прочтению каждому, кто так или иначе принимает участие в работе с объектно-ориентированными языками программирования.» Дэниель Рид

14 упоминаний:

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

«Это классика, но недавно исправленная и дополненная. В высшей степени поразительно то, как она тесно связана с разработкой программного обеспечения. Если вы принимаете участие в программировании, определенно эта книга – обязательна к прочтению.» Джейсон Роел

«Бесспорно, единственная классика, посвященная программированию. Позор всякому, кто еще не прочитал ее.» Джеффри Атвуд

15. упоминаний:

Прагматичный программист: От новичка к мастеру

«Насколько революционна эта книга? Пожалуй, достаточно для того, чтобы развернуть целую издательскую кампанию. Если вы все еще не прочитали ее – это, бесспорно, большое упущение с вашей стороны.» Род Хилтон

«Эта книга не только изменит ваш код: она изменит вас как программиста. Наполненная практическими советами по улучшению вас и вашего кода, бесспорно, является отличным приобретением для каждого, кто хочет стать лучшим в сфере разработки программного обеспечения.» Деепак Карант

16 упоминаний:

Идеальный код: Практическое пособие по программной архитектуре

«Сделайте для себя приятное. Пусть это будет первой книгой, которую вы прочитаете – и первой книгой, которую вы посоветуете другим.» Джеффри Атвуд

«Эта книга потрясла меня больше всего. Определенно, после ее прочтения то, как я писал код, и то, что я думал о программировании в целом, претерпело серьезные изменения.» Джон Сонмец

Полный список содержит в себе 139 книг. При желании на языке оригинала его можно рассмотреть здесь.

Автор перевода: Евгений Лукашук

Добавить комментарий