Любопытные книги

1. [Gamma, Helm, Johnson, Vlissides. Design Patterns. Addison-Wesley, 1994]. Вот эти ребята (Gang of Four, потому книгу ещё называют «GOF book»), которых можете благодарить за вопросы на собеседованиях. Накрыло всё ООП, джавистам особенно повезло.

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

К 90-м все устали писать по наитию, цунами микровелосипедов снесло миллиарды бюджетов, нужны были скрижали. Ну а форма любима разработкой — простые понятные инструкции для самых маленьких, слепо следуй, станешь CTO.

И если вам нужна книга по программированию суммарными тиражами в миллионы, а количеством [пере]изданий за 40 только лишь на английском языке, GoF book радостно машет опостылевшими страничками.


2. [Aho, Lam, Sethi, Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986]. Она же «Книга дракона» (Dragon Book) по понятной причине — на обложке милый зверёк. Всего два издания (второе в 2006-м году), зато ..

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

Например, в юности эту книгу вовсю использовал Guido van Rossum (чувак, который этот ваш Пайтон), что языку не очень помогло (может, не дочитал? кто его знает), но использовал же.

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


3. [Fowler, Beck, Brant, Opdyke, Roberts. Refactoring. Addison-Wesley, 1999]. Ну, рецепт ясен, да? Снова справочник. Снова простой и понятный. Снова в удобный момент. 99% знаний о рефакторинге, что у 99% из вас есть, корнями в эту книгу.

Любопытно, что Фаулер и Ко не изобрели термин, но лишь ввели его в широкий оборот. Так-то практика осмысления и чистки кода бытовала вовсю, а слово [re]factoring так или иначе, но мелькало в кругах Forth и Smalltalk.

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

Слава котятам, во всех IDE появились модули «нажми на кнопку, кровь и кишки автоматика заметёт в угол», а спрашивать такую фигню перестали. Кажется. Нет, наверняка где-то да, но в целом вряд ли.


4. [Linus Torvalds, David Diamond. Just for Fun. HarperBusiness, 2002]. Диктовал Линус, писал журналист. В заметной мере книга является манифестом DIY-гиковости формата «Давид против Голиафа». Сама по себе прикольна, но…

Во-первых, книгоразмерных автобиографий программистов просто нет. По пальцам пересчитать. Хорошо физикам, Фейнмана на столетия хватит, а у нас вот Линус. Какой есть. Зато это наш пчёлкин сын. Но Фейнман в стотыщ раз круче, конечно.

Во-вторых, там взгляд стороны L. на милейший эпический срач студентоты (Линус) с профессоротой (Таненбаум). Спустя N лет их спор нередко приводят примером того, как независимый Давид попрал поросшую мхом академическую разработку.

В-третьих, есть субъективное мнение, что с момента издания сочетание «just for fun» превратилось отводочком в специальный термин разработки для «нафига ты троллейбус из мякиша делал? по приколу! чё? ну just for fun! аааа…»


5. [Kim, Behr, Spafford. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win. IT Revolution Press, 2013]. Помните момент, в который в офисах появились чуваки, идентификация которых представля(ла|ет) собою загадку?

Ну т.е. собираетесь вы сегодня бить программистов. Вася выходит, он не программист. Окей, бьём админов. Вася выходит, он не админ. Кто ты, блин, в какой день недели тебя бить?! Вася ДЕВОПС. Мутный тип, очень модный, внезапно очень нужный.

Так вот, «The Phoenix Project» (художественная книга, кстати) и ввела в моду. Сначала описан бардак в конторе. Потом методы разруливания. Один из основных методов — плотная коммуникация между командами Dev и Ops. Коммуникация!

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


6. [А. Зарецкий, А. Труханов, М. Зарецкая. Энциклопедия профессора Фортрана. Просвещение, 1991]. Если ваш папа программист, он читал эту книгу. Совсем детская, совсем для малышей, но скольким же будущим CTO, CEO и фронтендерам она придала ускорение, а.

Формально более верным первой указать «А я был в Компьютерном Городе» тех же авторов (минус Зарецкая) 1990 года, но она не выстрелила. Издатели быстро оценили продолжение и выпускали отдельно огромными тиражами.

Что занятно, Зарецкий и Труханов ничего такого не предполагали. Два нищих физика почти just for fun написали сказку про компьютеры, получили денег «по Жигулю на брата», написали вторую, проснулись знаменитыми.

Почему не было продолжений? Потому, что перестройка, 90-е, Зарецкий ушёл в бизнес (и неплохо в нём преуспел).


7. [Кёршан, Новембер, Стоун. Основы компьютерной грамотности. Мир, 1989]. А вот эта книга для средних и старших классов. И написана достаточно серьёзно, т.к. издавалась в США в 1986 году учебным пособием по информатике. Наша обложка веселее, кстати.

Чем она крута? Тем, что другой сравнимой по программированию для школоты вне школы не было. Про кибернетику были. Про роботов. Были странные попытки вроде «Пяти уроков Великого Магистра» 1988 года, но и только.

«Основы» помнят меньше «Профессора Фортрана», ибо «Мир» выпустил, если не ошибаюсь, всего один тираж без допечаток и переизданий — 200К экземпляров. Тираж смешной, уверен, библиотеки его ещё и уполовинили, потому условная редкость.

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


8. [Тэтчелл, Беннетт, Фрейзер, Смит. Осваиваем микрокомпьютер-1. Мир, 1989]. Загадочной судьбы два томика (есть и «микрокомпьютер-2»). Видите ли… скорее всего, вы впервые слышите об этой книге, хоть тираж и был в 125К экземпляров.

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

Так вот, это сведение в одно издание британской серии Usborne Computers & Electronics. Каких именно книг — не понять, оригинальная серия тоже очень редко упоминается. В общем, редкость редкостью погоняет, однако ..

.. это действительно офигительные учебники для детей. Толковый текст. Чудесная рисовка. Объясняется множество понятий. Одна фигня: книги в СССР пропали как в чёрной дыре, а могли бы встать на полку наравне с бестселлерами.


9. [Steve McConnell. Code Complete. Microsoft Press, 1993]. Она же «Совершенный код». Книга, которую намекающе клали на стол джуниорам с самого 1993 года. Толстенный талмуд, вобравший в себя весь опыт практики автора.

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

Книга много лет входит в must read top 10, классика. Но… если вы её прочли, ура. Если нет, то и ладно. Несколько академична, устарела, многословна, написана больше для тяжёлого энтерпрайза без этой вот рыночной гонки.

Ну и мало кто помнит, что Стив написал ещё и «Software Estimation: Demystifying the Black Art» (2006), которую неплохо бы осилить лидам и менеджерам, благо есть русское издание: «Сколько стоит программный проект».


10. [Frederick Brooks. The Mythical Man-Month. Addison-Wesley, 1975]. Тоже вот из мастридов всея разработки. Тексту 40+ лет, блин, а всё никак не устареет. Если кому нужна всего одна книга об управлении и оценке проектов, вот это она.

Брукс (который жив, между прочим, в свои 87 лет) крут уже тем, что управлял разработкой легендарной IBM OS/360, пожравшей весь мир, включая СССР (привет сериии ЕС). И десятью наградами, включая премию Тьюринга.

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

Вишенка на тортик: в том же 1975 году оперативно был выпущен перевод книги в СССР.


11. [Фигурнов В.Э. IBM PC для пользователя. Финансы и статистика, 1990]. Представьте, что вы в СССР. Интернета нет. Компьютер откуда-то есть (да хоть Поиск в школе). Как там что-либо делать-то? Тадам, с небес спустился Фигурнов Виктор Эвальдович.

Этот человек спас миллионы жизней. Нет, правда. Сами можете представить, каким спросом пользовались его книги и какого качества они были, если за 90-е суммарный тираж семи (по факту их больше) изданий превысил 3.5М.

Фамилия чуть нарицательной не стала. С Фигурновым ходили на уроки и в кружки. Ходили «чинить компьютеры». Ходили репетиторствовать. Ходили студенты и преподаватели. Зачастую он был единственным источником информации вообще.


12. [Китов А.И. Электронные цифровые машины. Советское радио, 1956]. Первое открытое издание про ЭВМ в Советском Союзе. Так-то Китов был интереснейшим дядькой, но военным. Скажем, создал и возглавил первый ВЦ МО в 1954 году.

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

И вдруг Китов выпустил чудо чудесное. Достаточно сказать, что именно эта книга открыла мир ЭВМ будущим легендам вроде Глушкова. Справедливости ради, она хоть и была хороша, но если у поколения инженеров выбора нет, все её первой помнят.

Дальше больше, конечно. Были и «Элементы программирования» (1956), и ставшая учебником «Электронные цифровые машины и программирование» (1959), но первая у многих навсегда. Оценили и в мире, вовсю хвалили.


13. [Полунов Ю.Л., Гутер Р.С. От абака до компьютера. Знание, 1975]. Даже в наше время литературы по истории вычтеха крайне мало, а ТОГДА почти и не было. Там статья, сям статья, тут в кибернетическом сборнике крошечка, да и всё.

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

.. на 20 с лишним лет. Каково же было моё удивление, когда узнал, что «Русская редакция» выпустила значительно расширенное издание (Полунов все годы трудился!) в 2004 году, да ещё и в двух томах. Отличный труд, отличный подарок.


14. [Donald E. Knuth. The Art of Computer Programming. Addison-Wesley, 1968]. Монументальный труд Кнута, начатый в 1962 году — энциклопедия алгоритмов. Без этого на данный момент 4-томника не обходится ни одно обсуждение литературы об алгоритмах.

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

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

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


15. [Henry S. Warren. Hacker’s Delight. Addison Wesley, 2002]. Книга, за использование знаний которой вас либо с радостью уволят, либо с радостью наймут. Зависит от бизнеса головного мозга вашего лида. Есть прям крестоносцы супротив.

Дело в том, что Генри свыше 40 лет работал в IBM над разными системами и знатно упоролся по оптимизации арифметики. Ну а какая оптимизация на олдовом (aka правильном) уровне? Битовые операции. Ах, эстетика однострочников, об которые убьётся читатель.

Эпическая книга. В 2013 году вышла вторая редакция, её и стоит освоить. На русском издали как «Алгоритмические трюки для программистов», что, мне кажется, дальше от идеи: «Hacker’s Delight» разработчик может читать просто ради удовольствия.

Ну и да, на практике, пожалуй, господа из мира Javascript, Ruby, Python и Java применят лишь вводные главы, потому не увлекайтесь, за остальное не погладят. Это нормально.


16. [Charles Petzold. Code: The Hidden Language of Computer Hardware and Software. Microsoft Press, 1999]. Школьный учебник по информатике, который мы все на самом деле заслужили. Будь у меня такой в школе, сейчас поглощал бы Яндекс на завтрак.

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

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

А так-то Петцольд матёрый виндузятник как был, так и остался. В начале 2000-х больше был известен у нас наравне с Рихтером как автор хороших книг по Win32 API (вспомнить, вздрогнуть).


17. [Abelson, Sussman. Structure and Interpretation of Computer Programs. The MIT Press, 1984]. Наиматьеголегендарнейший курс computer science за всю историю человечества. В любой IT-казарме ночью рявкни «SICP!», будет битва подушками.

Суть в чём. A&S устроили в MIT курс лекций для первокурсников. Детей не жалели. Языком Scheme, парадигм сразу три, мозг сразу форматируется под абстракции, хардкор, «ты программист, а не маляр!» и всё такое. На фоне остальных курсов было свежо, даже морозно.

Получилось толково, курс вышел на бумаге. Вторая редакция (1996) классика и превратилась в шляпу Гриффиндора. Нравится курс? Молодца, программист! Нет, не осилил? Ну… тоже кому-нибудь сгодишься, иди шаблоны зазубривай, банки ждут.

А теперь всё. Курс переделали на Python (прикольные шитштормы были). A&S устали и ушли, развитие SICP заглохло. Сассман и вовсе сказал, что время не программистов делать, но тех, кто без понимания процесса ставит кирпич на кирпич, c’est la vie.


18. [Cormen, Leiserson, Rivest(, Stein). Introduction to Algorithms. MIT Press, 1990]. Она же CLR[S]. Она же The Big White Book. Она же томина в тыщу с лишним страниц, которыми можно принудить к миру без особых усилий. Она же курс 6.046 в своей основе.

Можно провокационно сказать, что CLRS рекомендуется тем, кто не хочет тратить жизнь на Кнута. Ну а чего? Страниц меньше. Постоянно обновляется (третье издание в 2009 году). На русском тоже есть. Курсу MIT отвечает. Да и стоит заметно дешевле.

На обложке каждого издания скульптура-мобиль Big Red Александра Колдера, меняется только цвет обложки. А если вам кажется, что такую толстую книгу никто не читает… Ну, может, не читает, но покупают: уже в 2011 году было продано 500К+ экземпляров.

Также в контексте стоит отметить другую книгу Кормена: «Algorithms Unlocked» (2013). Что-то вроде более популярного изложения CLRS. У нас издана как «Алгоритмы. Вводный курс», книга норм, читать можно.


19. [Charles Wetherell. Etudes for Programmers. Prentice Hall, 1978]. Любопытная книга редкой категории: задачник для программиста. Масштаб задач от автономной алгоритмической до небольшого проекта. Всего 30 [всё ещё актуальных] этюдов, как называет их Уэзерелл.

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

Других книг не написал. На русском издана «Миром» в 1982 году, такой знаете и любите. И если наше порою на развалах 100 рублей стоит, оригинал на Амазоне от $1K. 🙂 Права официально куплены «Миром» за $1.2K, что мало даже для 80-х, сам автор получил от этой продажи только $600.

Наконец, издателям «97 Things Every Programmer Should Know» в России привет за попытку нажиться на ностальгии, издана как «97 этюдов для программистов». Теперь вы знаете, на какую кнопочку ОНИ решили нажать!


20. [Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Питер, 2018]. Классикой ещё не стала, но обязательно станет. Первая книга о глубоком обучении и нейросетях, написанная на русском языке. И первая книга по ML, которую мне захотелось прочитать. 🙂

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

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


21. [Federico Biancuzzi, Shane Warden. Masterminds of Programming. O’Reilly Media, 2009]. Такого рода книги уместны сайтами, однако, выпускаются и в бумаге: сборник интервью с создателями топовых языков программирования. На русском тоже есть: «Пионеры программирования» (2010).

Не самая хорошая книга, прямо скажем — очень неровного качества интервью как по объёму, так и по содержанию. Например, UML отдано 70 страниц, что равно сумме APL (20), Forth (24) и BASIC (26). Вот точно разработчикам интереснее UML, а?

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

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


22. [Jason Schreier. Blood, Sweat, and Pixels. Harper Paperbacks, 2017]. Книга про геймдев. Слабовато. Книга про ГЕЙМДЕВ!!11 Нет. Книга о том, как КРОВЬ КОШКИ ГУСЕЙ НЕЛЬЗЯ ЛЮДЕЙ МОЖНО ГЕЙМДЕВ КРАНЧ УМРЁМ ЖИВЫ УРА!!! Как-то так.

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

По содержанию: Pillars of Eternity, Uncharted 4, Stardew Valley, Diablo III, Halo Wars, Dragon Age, Shovel Knight, Destiny, The Witcher 3, Star Wars 1313. Ну вы поняли.

На русском языке вышло норм, но не сразу. Вам надо (ну или не надо, если оригинал читаете) брать «Кровь, пот и пиксели» (2018), которая новый перевод. Переводила чудесная twitter@alphyna, всем бы так со знанием темы переводить.


23. [Brian Kernighan, Dennis Ritchie. The C Programming Language. Prentice-Hall, 1978]. Книга-реликвия. Много лет она и была стандартом языка C, она же и была локомотивом языка первые лет десять, получив имя K&R, дав имя и тому олдовому стилю: K&R C.

Последние лет 20 часто возникают споры о том, стоит ли её читать. Язык очень изменился, гайды другие, литературы хорошей тоже полно. Студент открывает K&R, послушно осваивает пару сотен страниц, закрывает и спрашивает «нафига я это читал».

Ответ простой: для образования. Оно не всегда явно и прямо практично. K&R представляет собою образец эталонной технической литературы, эта книга задала не только язык, но и структуру учебников по программированию на годы вперёд.

В конце концов, однажды вы напишете строчку кода и вас торкнет: блин, вот теми же словами ту же строчку написали K&R 50 лет назад. Связь поколений вот же перед глазами. Мы буквально стоим на плечах титанов, а не просто так.


24. [Tim Jackson. Inside Intel. HarperCollins, 1998]. Литература про стартапы, быстрый успех, единорогов и прочую чепуху, надуваемую падким на щуку с золотой рыбкой обществом, заслонила собою литературу о многолетнем технологическом бизнесе.

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

Читать тем интереснее, что Intel 70-х внедрила в индустрию привычное сейчас: акции вместо зарплаты, ревью и система оценок персонала, публичное обсуждение факапов, перекрёстное участие менеджеров разных подразделений в проблемах других подразделений и т.д.

Оперативно была выпущена на русском языке и вполне доступна сейчас для чтения: «Intel: взгляд изнутри» (1999).


25. [Gordon Haff. How Open Source Ate Software. Apress, 2018]. Open source стал явлением, повлиявшим на разработку буквально всего на свете. Сейчас вы можете построить сложный продукт, заплатив только за сервера, разработчиков и тётю Глашу (клининг менеджер).

Ещё в 90-х это было гораздо сложнее. Было мало бесплатного, качества оно было стрёмного, лицензии порою были дикими, да и распространение не способствовало активной совместной работе (часть культуры OS) — сети-то нет, всё фельдъегерями на голубях передавали.

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

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


26. [Ким, Перекатов, Ермаков. Микропроцессоры и вычислительные комплексы семейства «Эльбрус». Питер, 2013]. Единственная доступная публике книга про отечественные «Эльбрусы» (микропроцессоры такие интересные). Она же, я бы сказал, единственное доступное вообще.

Почему книга в списке? Потому, что «Эльбрусы» никуда не денутся. Их всё больше (пусть и не у вас на столе). Потому, что они уникальны и любопытны. Потому, что в сети дофигаллиард споров людей, которые в упор не понимают, о чём вообще речь.

Глупым быть плохо. Человек, спорящий (или выносящий категорические суждения) о том, в чём не разбирается даже на уровне поверхностной эрудиции, даже на уровне фактической точности утверждений… несомненно глуп. Узнал больше — автоматически поумнел. Круто же.


27. [Steven C. Seow. Designing and Engineering Time. Addison-Wesley, 2008]. И снова не самая известная, не самая лучшая, но снова другой такой вроде и нет. Книга о том, как важно вписать свой софт в субъективную картину времени пользователя.

Почему книга не получила лавровый венок? Потому, что нам пофиг. Тыщу раз видел, как разработчик одной рукой закрывает вкладку (5 секунд грузится! плохой сайт!), а другой рукой ваяет код, приводящий к тому, что страница продукта грузится минуту.

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

Русское издание есть и доступно: «Проектируем время. Психология восприятия времени в программном обеспечении» (2009).


28. [Ревич, Малиновский. Информационные технологии в СССР. BHV, 2014]. Книга тем, кто таки хочет докопаться до причин IT / CS в СССР. На этой теме даже рубля не заработать, потому доступных изданий с гулькин нос. А тут у нас сборник очерков про тех, кто делал и решал.

Ревич взял «Историю вычислительной техники в лицах» (1995) Малиновского и значительно дополнил (ну, спустя почти 20 лет материала вскрылось больше исторического). Получилось годно. Во всяком случае, я запоем прочёл за два вечера и долго думал, выцепляя по другим местам детальки.

Зачем? Ну… Понимаете, поколение за поколением поливается разными волнами всякого. То мы огого, то мы фу-фу, то снова огого, то чёрные стали белыми, белые вдруг красными. Если не хочется покорно глотать из чужих рук, надо идти к истокам, листать документы.

А горячим дискуссиям о том, были ли в СССР компьютеры, были ли программисты, взяли ли мы всё у Запада, украл ли Гейтс идею окошек со стен Кремля… да ещё лет сто будем об этом спорить, уверен. Будьте информированными участниками таких драк.


29. [Robert C. Martin. Clean Architecture. Prentice Hall, 2017]. Дядя Боб начал писать код ещё при Брежневе, так с тех пор и кодит. Как понимаете, опыт набрал неимоверный. По нему создаёт книги, которые очень интересно читать, но ..

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

Ну и да, ещё «Clean Code» (2008) и «The Clean Coder» (2011), но мне «Clean Architecture» больше интересна, да и архитектура первичнее, потому тред с неё. Автор известный, пишет толково, практик похлеще этажа в Apple, странно его не читать.

Как водится для таких монстров, русское издание есть на всё. «Архитектуру» вон недавно выпустили, даже обложка милотная.


30. [Морозов А.П. Программист. Молодая гвардия, 1979]. Насколько знаю, первый в СССР роман с программистом в главной роли. Современники зачитывались, даже в мемуарах мелькнуло, мол, из рук в руки передавали. Больше не издавался. Стоил 90 копеек, между прочим.

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

Дополню, а то мало ли, вдруг кто памятливый: нет, «Понедельник начинается в субботу» (1965) не в этом смысле. Вот в «Программисте» главные роли именно у программиста, программы, программирования. Потому и первый.


31. [Robert W. Sebesta. Concepts of Programming Languages. Benjamin-Cummings, 1989]. Не смотрите на год, это первое издание. Последнее уже 11-е (2015), у меня Global Edition 2016 года. Тексты потихоньку обновляются. Например, уже выпилили почти всё про Ada.

На книгу очень полярные отзывы. Одним прям заходит, другим совсем поперёк шерсти. Точно скажу одно: это монументальный сухой академический труд, написанный так, что им можно малярию лечить. Тем не менее, классика, через которую прошли поколения студентов в США.

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


32. [Chris Clearfield, András Tilcsik. Meltdown. Penguin Press, 2018]. Книга о том, как и почему ломаются сложные системы, очень много реальных примеров разобрано, невероятно много ссылок, любую тему можно докрутить до источников.

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

Рекомендую. Книга заслуженно набирает на Амазоне обороты не по дням, но по часам. Также недавно вышло русское издание: «Неуязвимость. Отчего системы дают сбой и как с этим бороться» (2018). Забавно, как отличаются цвета обложек у них и у нас.


33. [J. Hank Rainwater. Herding Cats. Apress, 2002]. Быстро ставшая иконой книга о том, как управлять программистами. Входит в short list литературы для начинающих лидов, часто упоминается, переиздаётся, всё такое.

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

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

В России исправно переиздаёт издательство «Питер» под названием «Как пасти котов», есть во всех видах. Ну и да, «herding cats» — популярная в английском идиома — заниматься чем-то невозможным.


34. [Taiichi Ohno. Toyota Production System. Productivity Press, 1988]. Есть не так много слов в разработке, на которые у меня аллергия, но слово «канбан» в первой десятке. Из каждой щели лезет. У малышей в садике цветные бумажки на стене — КАНБАН, детвора!

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

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

В Японии книга вышла в 1978 году, в США в 1988 году, в России в 2005 году («Производственная система Тойоты»), затем переиздавалась вплоть до 2012 года. Особо популярной у нас не стала, ибо бумажки на доску клеить прикольнее, чем разбираться с корнями каргокультизма в голове.


35. [Andrew S. Tanenbaum. Modern Operating Systems. Prentice Hall, 1992]. Не пугаемся, 4-е издание (2014) актуальнее. Вооот… Классика, монумент. И да, это тот дядька, с которым Линус так эпично ругался, что дискуссия вошла в историю (ищите «Tanenbaum Torvalds debate»).

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

С оценкой книги в сообществе как всегда. С потолка: 70% осиливших и хвалящих, 15% осиливших и ругающих, 15% неосиляторов, которым картинок и няню не завезли. Ещё есть про сети, архитектуру компьютеров и разработку операционных систем. Плодовитый дядька.

В России переводится вовсю, но с нюансом. Как минимум, на Озоне помечено «Новинка», год издания 2018, сопроводиловка с «новое издание». Ни фига. Это несколько лет печатают всё то же издание 2014 года с мелкими правками, не более. Новее Андрей Т. не выпускал пока.


36. [Brian W. Kernighan, Rob Pike. The Practice of Programming. Addison–Wesley, 1999]. Эх… Настолько любил эту книгу и держал настольной, что даже не знаю, как вам её продать. Если кратко, это гайд кода для программиста от очень крутых программистов.

Да, ему двадцать лет в обед. Да, от него шибает в нос олдовостью так, что прадедушкина махорка парфюмом покажется. Но блин, 2/3 гайдов и гайдовых глав где-либо написаны чуть ли не под копирку с TPoP. Переведено на 12 языков мира, стопицоттысячные тиражи.

Зачем читать… Не для практической пользы, это точно. Я бы посоветовал читать для удовольствия и эрудиции. Хотя вот проводил fact checking, обнаружил, что до сих пор включают в списки литературы для олимпиадников, например, или для low level juniors. Книга живёт.

Ну и да, если у вас непереносимость C и C++, как-то… ну не читайте. Ибо возрыдал над отзывом «Experienced developers may think that this book is useless for them, because of .. a lot of C code» (sic!). O tempora! O mores!


37. [Jon Louis Bentley. Programming Pearls. ACM Press, 1986]. Тоже из списка классики библиотечки программиста. Если кратко, это сборник эссе, которые Бентли публиковал в Communications of the ACM на разные темы программирования.

Получилось что-то вроде блога 80-х. 🙂 Как ставить задачи. Как использовать алгоритмы. Как оценивать свой код. Как думать над задачами. Словно доброжелательный (Twitter’а ещё не было) чувак за чашкой чая рассказывает насыщенные кодом истории. Уютненько.

С переводами история чуть сложнее. Сначала издательство «Радио» выпустило перевод первой редакции: «Жемчужины творчества программистов» (1990). Затем издательство «Питер» выпустило вторую редакцию: «Жемчужины программирования» (2002). Оно, кажется, всем и знакомо.

Фигня в том, что в природе существует продолжение «жемчужин»: «More Programming Pearls: Confessions of a Coder» (1988). И вот его-то на русском языке, похоже, нет. Во всяком случае, не видел никогда, нагуглить не могу. Такие дела.


38. [Joel Spolsky. Joel on Software. Apress, 2004]. Любопытный чувак начала 2000-х. Сейчас вы его можете знать как сооснователя StackOverflow, а тогда он был очень известен как автор блога, лучшие эссе из которого потихоньку издавались: joelonsoftware.com

Я не уверен в мере влияния Джоэла на разработку в мире. Намекающе уже и то, что сейчас ссылку на него поди встреть, хоть чувак и написал 1114 статей. Однако… гремел он в своё время знатно. В 2001..2003 годах ни один часовой спор без ссылки на его эссе не обходился.

Нафига его читать? Развлечения ради. Нет, правда. Он не пишет гениально, не учит вас computer science. Просто зажигательно мечет напалм во все темы, что под него попадали. Доставалось всем. Как по мне, самое то для чтения в метро, на пляже, в лифте или в очереди.

На русском его публиковали «Символ-Плюс», «Питер», «Вильямс». Кто права успел, тот и, видимо. Но английский у него разговорный простой, лучше потыкайте в темы на главной («Reading lists»), там самый сок собран.


39. [Peter Seibel. Coders at Work. Apress, 2009]. 15 интервью с программистами мирового уровня, о половине из которых вы узнаете впервые. 🙂 Не, на самом деле интересная книга, мне она зашла тем, что интервью по одной схеме и можно сравнить ответы в поисках общего, например.

В общем, как-то больше и нечего сказать (ну, кроме того, что Сейбел сам программист, ещё и лиспер). Хорошая книга для чтения, толковые вопросы, толковые ответы, толковые чуваки. В России выпускалась как «Кодеры за работой» (2011).


40. [Martin Kleppmann. Designing Data-Intensive Applications. O’Reilly Media, 2017]. Современный объясняющий на реальных примерах учебник того, как построить систему, перемалывающую очень большой объём данных. Тема специфическая, но DDA дивно поднимается в рейтингах.

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

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


41. [Watts, Wharton, Reed, Round. Machine Code for Beginners. Usborne Publishing, 1983]. Книга из той же оригинальной серии, что и составляющие «Осваиваем микрокомпьютер», но я её выделяю потому, что ..

.. эта [превосходно олдовая] книга отлично служит примером «давным-давно норм было учить детей по хардкору», ибо MCB научит малявку писать программы в машинных кодах для Z80. ^_^

И вообще интересно бывает после таких книжечек раздумывать о том, почему приходит мысль, что это хардкор, или не рассматривать ли Raspberry Pi как возвращение 80-х в школоту. В общем, прикольный артефакт.


42. [Белоус, Солодуха, Шведов. Программные и аппаратные трояны. Техносфера, 2018]. Цитирую: «Впервые .. в объеме одного комплексного издания .. детально исследован феномен программных и аппаратных троянов».

Энциклопедия из 2-х томов, 1300+ страниц. Темы… эклектика полная, как по мне. От климатического и сейсмического оружия до законодательства России в области «обеспечения безопасности каналов поставки микросхем».

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

Сразу скажу: книгу не читал. Вот едва заказал, заметив в каталогах. Вам о ней рассказываю потому, что уникальна до упора. По этой горячей теме нет НИЧЕГО. Уверен, хоть на сто страниц, а любопытного в ней наберётся. Как минимум, теперь знаете, что такая книга есть.


43. [Bruce Middleton. A History of Cyber Security Attacks. Auerbach, 2017]. Дядька 45 лет (со времён войны во Вьетнаме) связан с безопасностью систем связи, сетей, ну и компьютеров в целом. Работал консультантом в интересных конторах типа NSA и NASA.

И вот этот дядька написал небольшой справочник из 46 «веховых» атак и взломов с 1980 года по 2016 год. Всего 250 страниц, каждая глава кратко описывает кейс и даёт несколько ссылок. Книга вышла незаметно, незаметно и живёт.

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


44. [Alan M. Davis. 201 Principles of Software Development. McGraw-Hill, 1995]. Пока не встречал книгу по разработке, что переплюнула бы эту в категории «сборник коротких правил». Их тут 201! И причин читать этих текст две.

Во-первых, она клёвая. На Западе классика, всем известна, входит в списки (да та же «классика от ACM»), постоянно в библиографиях и т.п. По абзацу на правило — самое то для ленивых студентов.

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

И пусть вас не смущает год издания. Я сейчас полистал, чтобы освежить в памяти — всё актуально. Особенно раздел о качестве, блин.


45. [Steven Skiena. The Algorithm Design Manual. Springer, 1997]. Если Кнут для академиков, Кормен для инженеров, то Скиена для работяг. Достаточно легко и просто написанный текст про алгоритмы.

У меня были сомнения, упоминать ли (Кнута и Кормена мало?), но перелистал сейчас… он хороший. После вот этих двух в скобках читается как художественная литература.

Если у вас нет времени на глубокое погружение, ну или вы давно забыли матан и дискретку, Скиена поможет осилить фундамент без мучительных попыток вспомнить, что это за символ в формуле и почему он вам знаком. Читайте вторую редакцию (2011), первую смысла нет.


46. [Митио Сибуя. Центральный процессор. ДМК Пресс, 2017]. Оригинал не указываю, ибо «читал» именно это издание по понятным причинам. Итак… Манга. Про центральный процессор. Ну такое…

Не поклонник манги, очень специфическая штука, хоть японцам вон норм заходит. Эту вот до половины настрадал, дальше сдался. Книга ценна как артефакт. Манга про CPU, блин. Уже достойно для ознакомления. Оказывается, можно и так инъекции знания делать.

Материал в целом адекватный и без косяков, но подан так, что… Ну блин. Мангофилы, простите, конечно, пусть цветут все цветы на клумбе у сельпо, но как вы с этим в голове живёте — не понять.


47. [Brown, Malveau, McCormick III, Mowbray. AntiPatterns. John Wiley & Sons, 1998]. Кажется, первая ласточка из плеяды книг, появившихся после того, как в свет вышла книга банды четырёх: каталоги плохих шаблонов в разработке.

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

У нас, кажется, не издавалось, что странно. Возможно, у меня просто не получилось удачно нагуглить.


48. [Simon Haykin. Neural Networks: A Comprehensive Foundation. Macmillan, 1994]. Могучий труд про нейросети. Входил в списки «одна большая книга про тему, её хватит», также годами кошмарит студентов в США и Канаде, ибо представляет собою курс для вышки.

Но… Есть нюансы. К сожалению, текст давно не обновлялся. Третья редакция (уже «Neural Networks and Learning Machines») вышла в 2008 году. Её издательство «Pearson» из года в год и издаёт, но за 10 лет ML так прыгнул, что сами понимаете.

Стоит ли читать? Зависит от. Если вам надо быстро наваять приблуду и в резюме указать «мошиное абучение», не стоит. Если хотите академический курс по ряду неизменных тем (те же нейросети), вероятно, вам понравится.

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


49. [Виктор Олифер, Наталия Олифер. Компьютерные сети. Принципы, технологии, протоколы. Питер, 1999]. Один из редких учебников, известных не только в России. Третья редакция так и вообще издавалась одновременно и в США.

Также это тот редкий случай, когда рекомендация Минобра РФ совпадает с народным уважением, курс действительно хороший и вполне подходит для самообразования. Пятая редакция вышла недавно (2017), текст актуален. Я купил и не пожалел.


50. [SWEBOK. IEEE Computer Society, 2014]. Очень, очень удобная книга. В мире есть две организации, влияние которых на IT / CS можно сравнить с влиянием США и СССР на историю XX века, но без антагонизма: ACM и IEEE.

И вот IEEE сотворил уже третью версию SWEBOK — Software Engineering Body of Knowledge, перечисление того, что разработчик программного обеспечения должен знать, чтобы называться разработчиком.

Книга прикольная. Она как способствует чувству неполноценности, так и служит аргументом против всяких «кто сказал, что я должен это знать?!» — нннанафиг, IEEE сказал! Полистайте. Вдруг вы и не разработчик вовсе, но вялая прокладка между стулом и клавиатурой.


51. [David Harris, Sarah Harris. Digital Design and Computer Architecture. Morgan Kaufmann, 2007]. Если вы однажды дойдёте до точки унылости в своих формах и CRUD’ах, книга про создание процессоров и вообще FPGA вам пригодится.

А если по шагам пройдёте вместе с авторами все 700 страниц, так и сделаете MIPS’ик своими руками. Ну, почти своими. В общем, развесёлая книга для отдыха от поточных будней у станка.

Примечательна ещё и историей русского перевода второго издания. Как по мне, команда большие молодцы (больше 40 человек!): Habr


52. [Steve Krug. Don’t Make Me Think! New Riders, 2000]. Книга, совершившая революцию в сайтостроении. Автор на понятных примерах показывает, как [не] делать неудобные сайты. Как итог, вышла уже третья редакция (2014), а на Amazon 1100+ отзывов (это много).

Зачем это читать? Чтобы не создавать интерфейсы типа тех, что Oracle делает. У любой программы есть интерфейс. Иногда за него отвечает программист, а не кто-либо адекватно видящий пользователя. Лучше, если этот вредитель сначала прочтёт Круга.

И революционной считаю её вот именно в таком ключе: Круг написал книгу для тех, кто обычно не занимается дизайном, не думает про интерфейсы, вообще мимо проходил. В России издаётся как «Не заставляйте меня думать».