10 книг о работе программистов


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

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

У меня есть книга, которую я уже пытаюсь раза с третьего осилить, но всё никак не дойду до последней страницы. Называется она «Человеческий фактор. Успешные проекты и компании«, в простонародье «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» можно бесконечно, настолько она классная. Читается за один вечер, поднимает настроение и помогает отвлечься от мирской суеты.

Мастер Йода рекомендует:  7 простых способов писать по-настоящему ужасный CSS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10 книг о работе программистов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10 книг для программистов, которые хотят стать эффективнее

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

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

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

«Эффективная работа с унаследованным кодом» – Майкл К. Физерс

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

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

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

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

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

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

Легендарная книга, которую стоит прочитать всем, кто связан с программированием и управлением проектами в ИТ. Здесь описаны наиболее интересные случаи и главные проблемы в разработке, с которыми сталкивались авторы. Быть прагматиком в сфере IT – значит работать эффективно, и данная книга поможет этого добиться.

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

«Как привести дела в порядок. Искусство продуктивности без стресса» – Дэвид Аллен

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

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

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

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

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


«На пике. Как поддерживать максимальную эффективность без выгорания» – Брэд Сталберг, Стив Магнесс

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

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

«Программист-фанатик» – Чед Фаулер

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

«Путь программиста» – Джон Сонмез

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

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

«В работу с головой. Паттерны успеха от IT-специалиста» – Кэл Ньюпорт

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

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

«Программирование без дураков» – Катрин Пассиг, Йоханнес Яндер

Хотите совершать меньше ошибок при написании кода? У более или менее опытных программистов уже есть свой стиль написания, тестирования, принятия, поиска ошибок в коде, и эти стили обычно формируются, когда нет чётких правил.

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

Художественная литература о программистах — 32 книги

Книги, в которых среди действующих лиц — программисты, сисадмины, ДБА и прочие люди из мира высоких технологий. Хотелось бы понять, как описан мир ИТ в художественной литературе.

Не справочники, не учебники, не воспоминания мэтров ИТ — чистая художественная литература

ISBN: 978-5-17-089082-8
Год издания: 2015
Издательство: АСТ, ИД Мещерякова
Серия: Уникальное издание
Язык: Русский

«Вам действительно так нужен программист?» — спросил я. «Нам позарез нужен программист». — «Я поговорю с ребятами, — пообещал я. — Я знаю недовольных». — «Нам нужен не всякий программист, — сказал горбоносый.— Программисты — народ дефицитный, избаловались, а нам нужен небалованный». — «Да, это сложнее», — сказал я. Горбоносый стал загибать пальцы: «Нам нужен программист: а — небалованный, бэ —доброволец, цэ — чтобы согласился жить в общежитии. » — «Дэ, —подхватил бородатый, — на сто двадцать рублей».

Penelopa2 16 мая 2015 г., 22:31

ISBN: 978-5-17-057183-3, 978-5-271-27887-7, 978-5-4215-0825-0
Год издания: 2010
Издательство: АСТ, Астрель, Полиграфиздат
Серия: Сны разума
Язык: Русский

Добавлено по совету Krysty-Krysty

Penelopa2 18 мая 2015 г., 20:33

ISBN: 978-5-699-38371-9
Год издания: 2009
Издательство: Эксмо
Серия: Millennium
Язык: Русский

Лисбет Саландер, этим все сказано

Penelopa2 16 мая 2015 г., 22:34

ISBN: 978-5-00057-372-3
Год издания: 2014
Издательство: Манн, Иванов и Фербер
Язык: Русский

Это подлинная история Леннона и Маккартни в мире компьютерных игр – Джона Кармака и Джона Ромеро. Вместе они управляли большим бизнесом. Вместе меняли поп-культуру. Они породили много споров. Они жили большой американской мечтой и создали самые культовые и успешные игровые сериалы в истории: Doomи Quake, которые их же и разлучили. Это история дружбы и предательства, бизнеса и творчества, история творческих молодых людей, которые получали удовольствие от своего дела.

Это подлинная история Леннона и Маккартни в мире компьютерных игр – Джона Кармака и Джона Ромеро. Вместе они управляли большим бизнесом. Вместе меняли поп-культуру. Они породили…

Язык: Русский
ISBN: 0385191952
Год издания: 1984
Издательство: O’Reilly Media

Как-то незаметно получилось, что за последние годы достаточно большое количество значений слова «хакер»: «компьютерный гений – озорник – любитель – специалист – исследователь» постепенно сжалось до «компьютерного хулигана – преступника». Mожно только «порадоваться» за труды журналистов околокомпьютерных и не очень изданий во всем мире, а также голливудских режиссеров, прививших умам неискушенных сограждан именно такое видение мира.
Но, к счастью, так было не всегда. Эта книга позволяет вернуться к тем дням, когда все это еще только начиналось. К тем чистым и немного наивным ощущениям первоткрывателей, которым в руки попали удивительные игрушки, гигантские по размерам и стоимости.
Как начинал Билл Гейтс? Как зарождался Apple? Замечательная коллекция персонажей шумно исследующих киберпространство, в котором до них еще никто не бывал, будет интересна не только специалистам но и простому читателю.

Как-то незаметно получилось, что за последние годы достаточно большое количество значений слова «хакер»: «компьютерный гений – озорник – любитель – специалист – исследователь»…

ISBN: 5-98697-023-3
Год издания: 2006
Издательство: Книжный клуб 36.6
Серия: Интернет-триллер
Язык: Русский

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

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

В китайском Интернете есть интересный сайт — «Блуждающие души древних могил». Вроде бы он посвящен китайской истории, но странное дело: многие посетители сайта кончают жизнь…

Мастер Йода рекомендует:  STL стандартная библиотека шаблонов С++
ISBN: 5-17-017528-0
Год издания: 2003
Издательство: АСТ
Серия: New Wave
Язык: Русский

Нил Стивенсон. Автор, которого сам Уильям Гибсон называл не иначе как `самым крутым фантастом Америки`.
Постмодернист, антиутопист и киберпанк `в одном флаконе`. Попросту — талант!
Перед вами — `Лавина`.
Жутковатая и отчаянная история двух миров — `внешнего`, расколотого на сотни мелких государств, и `виртуального` — объединенного в компьютерную Метавселенную.
Там — лучше. Но необходимо соблюдать жесткие `правила игры`.
Здесь — проще. Вот только убить могут вполне по-настоящему.
Но ни здесь, ни там не прекращается война за `Лавину` — наркотик счастья в мире `внешнем` и старейший из вирусов, какой угрожал когда-нибудь миру `виртуальному`!

Нил Стивенсон. Автор, которого сам Уильям Гибсон называл не иначе как `самым крутым фантастом Америки`.
Постмодернист, антиутопист и киберпанк `в одном флаконе`. Попросту -…

ISBN: 5-17-030847-7, 5-88283-250-0
Год издания: 2005
Издательство: АСТ, Профиздат
Язык: Русский

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

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

ISBN: 5-17-026552-2, 5-9660-0457-9
Год издания: 2005
Издательство: АСТ, Люкс
Серия: Алекс Экслер
Язык: Русский

«Записки невесты программиста».
Легенда и культ отечественной Сети.
Интернет-бестселлер, в нашей стране играючи побивший по популярности «Wasp Factory» Йэна Бэнкса.
Как укротить странное создание по имени «компьютерщик», за уши дотащить его до алтаря — и при этом не свихнуться?
Девушки!
Не пытайтесь повторить это дома!

«Записки невесты программиста».
Легенда и культ отечественной Сети.
Интернет-бестселлер, в нашей стране играючи побивший по популярности «Wasp Factory» Йэна Бэнкса.
Как…

ISBN: 978-5-9922-0470-4
Год издания: 2009
Издательство: Альфа-книга, Армада
Серия: Фантастический боевик
Язык: Русский

Магия — это не так уж сложно. Тем более если вы обладаете системным мышлением и умеете программировать.
Обыкновенный «компьютерщик» попадает в мир, в котором ему удается применить свои способности в области, доселе такому «кощунству» не подвергавшейся. Логика и знания нашего с вами современника находят применение в ином, магическом мире. И не просто помогают ему выжить, но делают его одним из самых могущественных магов, «первым среди равных». Чистая логика плюс компьютер и «никакого мошенства»! Если не считать Умника — надежного друга, помощника и советчика на случай самых непредвиденных ситуаций. Ну в самом деле, кто мы без друзей? И кого волнует, что он не из живой плоти, а инопланетный компьютер?

Магия — это не так уж сложно. Тем более если вы обладаете системным мышлением и умеете программировать.
Обыкновенный «компьютерщик» попадает в мир, в котором ему удается…

ISBN: 978-5-389-01590-6
Год издания: 2011
Издательство: Азбука-Аттикус
Язык: Русский

В Интернете часто происходят необычные вещи: появляются и исчезают сайты, привычные ссылки заводят в самые неожиданные уголки сетевого пространства, виртуальные собеседники меняют голоса и лица. Что за призраки блуждают в Сети? И каково это — в один прекрасный день превратиться в такого призрака? Движимый местью, редактор популярного журнала просит знакомого хакера уничтожить книжный сетевой ресурс «Вордвуд». Но когда «Вордвуд» обрушивается, таинственным образом исчезают все интернет-пользователи, находившиеся в тот момент на сайте, и в их числе невеста известного писателя. Несчастных людей словно засасывает в виртуальное пространство прямо из кресел перед мониторами. Служба спасения бросает все силы на поиски пропавших, в то время как ведущие программисты пытаются восстановить загадочный сайт и раскрыть его тайну. Но только писателю, стремящемуся во что бы то ни стало вернуть свою возлюбленную, удается найти по-настоящему действенное средство борьбы с призраками в Сети…

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

Программисты не читают книги, должны ли вы?

Заходите на https://viebook.ru, читайте анализ книг от людей с опытом, которые объяснят практическую пользу книги и выбирайте только то, что совпадает с Вашим карьерным путем!

Одной из основных тем на stackoverflow.com является “Почему программисты больше не изучают программирование по книгам”, как высказывался Джоел Спольски:

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

Джоель выражал подобное отношение еще в 2004:

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

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

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

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

2. Книги по программированию продаются по весу, а не по ценности. Существует, видимо, обратная связь между размером книги и ее качеством. Чем больше книга, так или иначе, тем меньше в ней полезной информации. В чем смысл существования подобных книг? Быть справочными гигантами? Как вы находите что-нибудь в них? Быстрое создание книг, ориентированных на новичков. Не имею ничего против того, чтобы в сферу программирование приходили новые люди. Но я продолжаю верить, что разнообразие книг типа “Изучаем [вставить ЯП] за 24 часа!” вредит нашей профессии. Маниакальный фокус на “прямо сейчас”, быстром, самом простом способе делать вещи ведет начинающих путем, полным иллюзий.

3. Порнография книги о программировании. Идея того, что наличие кучи толстых, важных книг, пылящихся на полке, в значительной степени непрочитанных, каким-то образом сделает вас лучшим программистом. Как мне писал знакомый со стажем, прочитав несколько книг о теории программирования “Я никогда не делал этого в реальной жизни и не стал бы”, походит на обсуждение извращенных способов из сферы программирования. По этой причине я обдумал и отказался от покупки книги Кнута “Искусство программирования”. Старайтесь покупать практические книги, которые вы на самом деле прочитаете, и что более важно, примените знания на практике. Во времена, когда книги по программированию выпускают в большом количестве, очень важно быстро и правильно определить на что стоит тратить свое время и деньги.

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

Сейчас выбор книги кажется разумным исходя из рекомендаций опытных программистов, но даже эти рекомендации/рецензии сводятся к неинформативной хвальбе. Посмотрите на одну из топовых рецензий на Амазоне, написанный к книге Стива Макконнелла “Совершенный код”:

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

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

Просто. Хвалебная. Рекомендация.

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

Меня немного пугает чтение комментариев на reddit, где люди интерпретируют философию stackoverflow не в пользу книг. Говорят о том, что с приходом этого сайта, книги стали попросту бесполезны. Я люблю книги, так как они являются четко структурированной базой знаний. Но, к сожалению, это не всегда так. Именно поэтому сейчас нужно очень осторожно подходить к выбору книг.

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

Если у Вас возникает желание отдать/продать/обменять/выкинуть купленные вами книги, поверьте, вы купили не те книги.

Я бы низачто не обменял мои книги. Я возвращаюсь к чтению время от времени.

Когда я только начинал программировать, я и понятия не имел что же конкретно мне нужно делать. Постоянно тратил время на чтение статей в стиле “Как научится программировать”, “10 must-read книг программиста”, “План по освоению [вставьте ЯП]”, но пользы от этого было не много. Лишь со временем в моей голове вырисовывался примерный план действий. Но это больше похоже на брождение по пустыне, ни в коем случае не на конкретный план действий для достижения ясного результата.

11 умных книг, чтобы «мыслить как программист»

Вместе с «Мобильной библиотекой МТС» мы составляем «списки книг от профессионалов». Сегодня программист и аналитик данных, который читает более ста книг в год, рассказывает о тех из них, что помогут лучше думать и понимать мир.

Юрий Разумов


Разработчик, аналитик данных в Targetprocess («Таргетпроусес»). Читает более ста книг в год и «ничего необычного» в этом не видит. Если помните, мы писали о нем здесь.

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

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

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

«Рациональность: от ИИ до зомби», Элиезер Юдковски

Rationality: From AI to Zombies, by Eliezer Yudkowsky

Самая базовая, хоть и огромная, книга из подборки. Это отредактированные Sequences (цепочки постов) сообщества LessWrong («ЛессРон»).

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

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

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

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

Читайте Rationality: From AI to Zombies в Мобильной библиотеке МТС. Первые 3 дня – бесплатно.

«Экономист под прикрытием», Тим Харфорд

The Undercover Economist, by Tim Harford

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

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

Читайте «Экономист под прикрытием» в Мобильной библиотеке МТС. Стоимость – 1,5 рубля, если прочесть за 6 дней.

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

Thinking in Bets: Making Smarter Decisions When You Don’t Have All the Facts, by Annie Duke

Эта книга пока не переведена, зато у нас есть спойлер.

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

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

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

«Как измерить все что угодно. Оценка стоимости нематериального в бизнесе», Дуглас Хаббард

How to Measure Anything: Finding the Value of Intangibles in Business, by Douglas W. Hubbard

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

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

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

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

Читайте «Как измерить все что угодно» в Мобильной библиотеке МТС. Стоимость – 2 рубля, если прочесть за 8 дней.

«Алгоритмы для жизни. Простые способы принимать верные решения», Брайан Кристиан, Том Гриффитс

Algorithms to Live By: The Computer Science of Human Decisions, by Brian Christian , Tom Griffiths

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

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

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

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

Читайте «Алгоритмы для жизни» в Мобильной библиотеке МТС. Стоимость – 2 рубля, если прочесть за 8 дней.

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

«Обман в науке», Бен Голдакр

Bad Science, by Ben Goldacre

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

«Блэкуел (1972) провел серию экспериментов, участниками которых стали 57 студентов колледжа, чтобы установить влияние цвета и количества таблеток на оказываемый эффект. Испытуемые сидели на длинной и скучной лекции и получали одну или две пилюли, которые были либо голубыми, либо розовыми. Им сказали, что они получают либо возбуждающее, либо успокоительное средство. Студенты были психологами, и вы могли говорить им все что угодно, даже лгать – все лечение состояло из сахарных пилюль, которые отличались только цветом. Затем, когда измерялась степень концентрации внимания студентов – так же, как любой другой субъективный эффект, – исследователи обнаружили, что две пилюли были более действенными, чем одна, как и можно было предположить (две пилюли также давали больше побочных эффектов). Кроме того, они обнаружили, что цвет пилюли влиял на результат: розовые лучше помогали поддерживать концентрацию, чем голубые. Поскольку сам по себе цвет не имеет никаких фармакологических свойств, разница в результате может объясняться только сложившимися культурными представлениями о голубом и розовом цвете: розовый является возбуждающим, голубой охлаждающим.

Фармацевтические компании лучше, чем большинство из нас, осведомлены о преимуществах правильного оформления своей продукции: они тратят на грамотный пиар больше, чем на исследования и научные разработки. Как и следует ожидать от практичных людей, живущих в больших загородных домах, они воплощают свои теоретические идеи в практику: так, “Прозак”, например, бывает белым и голубым; и если вам кажется, что я преувеличиваю, то исследование, касающееся цвета пилюль, обнаружило, что стимулирующие препараты чаще имеют красный, оранжевый или желтый цвет, в то время как антидепрессанты и транквилизаторы в основном голубые, зеленые или фиолетовые».

Читайте Bad Science в Мобильной библиотеке МТС. Первые 3 дня –бесплатно.

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

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

Мастер Йода рекомендует:  10 новых jQuery-плагинов для форм Javascript

The Elephant in the Brain, by Kevin Simler, Robin Hanson

Эта книга пока не переведена, но у нас снова есть спойлер!

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

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

Если человек водит Toyota Prius, возможно, ему нравится Prius, возможно, он думает, что это полезно для экологии, но кроме того он хочет сказать всем окружающим людям: «Смотрите, я человек, который думает об экологии». И люди вокруг оценивают его уже по-другому.

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

«Хорошее самочувствие: Новая терапия настроений», Дэвид Бернc

Feeling Good: The New Mood Therapy, by David D. Burns

Вместо этой книги мог быть совет «сходите к психотерапевту», потому что это стоит делать всем. Но, если у вас пока не хватает на это моральных сил, почитайте что-нибудь про когнитивную терапию: например, эту книгу.

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

Обзор книги «Хорошее самочувствие» читайте в Мобильной библиотеке МТС. Первые 3 дня – бесплатно.

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

«Ум во благо. От добрых намерений – к эффективному альтруизму», Уильям Макаскилл

Doing Good Better: How Effective Altruism Can Help You Make a Difference, by William MacAskill

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

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

Читайте «Ум во благо. От добрых намерений – к эффективному альтруизму» в Мобильной библиотеке МТС. Стоимость – 1,25 рубля, если прочесть за 5 дней.

Against Empathy: The Case for Rational Compassion, by Paul Bloom

Эта книга пока не переведена.

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

Stubborn Attachments: A Vision for a Society of Free, Prosperous, and Responsible Indiv > Эта книга пока не переведена.

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

8 появлений:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Книга издаётся только на английском языке. Купить её можно на Amazon.

2. «Искусство программирования», Дональд Кнут\ «The Art of Computer Programming», Donald Knuth

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

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

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

3. «Алгоритмы: построение и анализ», Томас Кормен, Чарльз Лейзерсон, Рональд Ривест и Клиффордом Штайн\ «Introduction to Algorithms», Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

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

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

4, 5 и 6. Герберт Шилдт и серия книг по С++ («С++ для начинающих. Шаг за шагом», «C++. Базовый курс», «Полный справочник по C++»)\ «C++ A Beginner’s Guide: Step by Step», «C++ from the Ground Up», «C++: The Complete Reference», Herbert Schildt

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

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

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

7. «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес\ «Design Patterns: Elements of Reusable Object-Oriented Software», Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides.

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

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

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

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

9. «Дизайн и эволюция C++», Бьёрн Страуструп\ «The Design and Evolution of C++», Bjarne Stroustrup

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

10. «Just for Fun. Рассказ нечаянного революционера», Линус Торвальдс, Дэвид Даймонд\«Just for Fun: The Story of an Accidental Revolutionary», Linus Torvalds, David Diamond

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

11. «Рефакторинг. Улучшение существующего кода», Мартин Фаулер\ «Refactoring. Improving the Design of Existing Code», Martin Fowler

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

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

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

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

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

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