Лучшие книги вокруг компьютера
// текст 2022.01
А вот список важной литературы вокруг компьютеров, программирования, вычтеха и т.п. Возможно, подошло бы слово «классика», но список мне кажется несколько шире: я [не] выбирал книги и статьи по нескольким параметрам.
Во-первых, из года в год книга рекомендуется на форумах, в переписках, на StackOverflow и в прочих местах в ответ на вопрос «что мне читать по теме X». Иногда, впрочем, рекомендуют не потому, что книга прям хороша, но потому, что лучше пока не написали, но чё уж.
Во-вторых, статья оказала большое влияние на «индустрию» и для повышения культурного уровня полезно если не прочитать внимательно, так хоть знать про существование.
В выборку не попали книги и статьи, несущие сиюминутную ценность (очевидно, учебник по технологии какой-то версии нафиг не нужен уже через пару лет в большинстве случаев, если технология активно развивается) или вроде бы известные и шумные, но за этим шумом больше хайп-волны, чем ценности (сюда я записываю всякие «Чистые архитектуры»).
Список не полный. У меня и нет цели делать его полным. Если в списке нет вашей любимой книги, вы всегда можете создать свой список и внести в него вашу любимую книгу.
Общечеловеческие книги
-
Дональд Кнут, «Искусство программирования» («The Art of Computer Programming») — опус магна по алгоритмам. В начале 1960-х Кнут решил создать что-то вроде справочника и учебника, так по сию пору и создаёт, выпуская сначала тома, а потом уже отдельные выпуски с запчастями томов. В 1990-х он даже вышел на пенсию, чтобы таки дописать свой труд, на что прикидывал лет двадцать, но нет, работа всё ещё идёт. В зависимости от подготовки читателя текст либо читается как увлекательная литература, либо как снотворное на ночь. Но более известной работы по CS я не знаю.
-
Харольд Абельсон, Джеральд Сассман, «Структура и интерпретация компьютерных программ» («Structure and Interpretation of Computer Programs») — в 1985 году на бумаге вышел курс MIT, которым много лет радовали студентов в рамках 6.001. Языком был выбран Scheme (один из Lisp), что позволило авторам сконцентрировать курс на более фундаментальных основах программирования, а не на работе с указателями или на разнице между интерфейсами и классами. Курс всё ещё хорош, но полезно сначала прочитать современное мнение авторов о нём: Хабр
-
Кристофер Дейт, «Введение в системы баз данных» («An Introduction to Database Systems») — первое издание талмуда про теорию RDBMS вышло в 1975 году, последнее (восьмое) в 2004 году. Сложно сказать, насколько она устарела, особенно с учётом всё большей практики не ходить дальше ORM, но кажется, что редкий серьёзный DBA прошёл в юности мимо этой книги.
-
Фредерик Брукс, «Мифический человеко-месяц» («The Mythical Man-Month: Essays on Software Engineering») — ещё один привет из 1970-х. Брукс управлял разработкой OS/360, после чего издал в 1975 году вечную книгу о разработке программного обеспечения с точки зрения менеджера. В глубине души я склонен считать, что менеджер, не читавший эту книгу, должен плакать и каяться, но после учителей античной истории, не читавших Гомера, моя глубина души может считать что угодно — на мир это не влияет.
-
Г., Х., Д., В., «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» («Design Patterns: Elements of Reusable Object-Oriented Software») — в 1994 году вышла книга, обеспечившая на пару десятков лет собеседуемых джавистов и плюсистов вопросами о том, какие шаблоны проектирования собеседуемые знают и чем Mediator отличается от круглого люка. Сейчас с этим здорово прикрутились, наелись.
-
Мартин Фаулер, «Рефакторинг: улучшение существующего кода» («Refactoring: Improving the Design of Existing Code») — книга, запустившая волны вокруг рефакторинга. До 1999 года люди просто улучшали код, а после 1999 года оказалось, что это рефакторинг и давайте рефакторить вообще всё вокруг. Ирония иронией, но вот благодаря запущенному книгой движу у вас в трекерах бывают задачи рефакторинга, а в IDE плагины с автоматическим улучшением кода.
-
Генри С. Уоррен мл., «Алгоритмические трюки для программистов» («Hacker’s Delight») — книга, поставившая битовую арифметику на постамент искусства. Вышла в 2002 году и завоевала сердца и умы байтофилов (от компляторщиков до встроенных разработчиков). Второе издание вышло в 2012 году и мне думается, раз в десять лет так выходить и будет. Ну просто потому, что хорошо и по делу написано, книга заслужила наклейку классической.
-
Эндрю Таненбаум, «Современные операционные системы» («Modern Operating Systems») — первое издание в 1992 году, последнее четвёртое в 2014 году. Одним автор известен как противник Линуса Торвальдса, другим как автор толстого учебника о том, из чего состоят операционные системы и как они работают. Хоть и с каждым годом несколько устаревающая классика (ну, после слова «Modern» восемь лет прошло), большая часть глав как была, так и осталась актуальной.
-
Стив Макконнелл, «Совершенный код» («Code Complete: A Practical Handbook of Software Construction») — сборник практических советов о том, как писать код. Первое издание 1993 года, второе издание 2004 года (к слову, его постоянно и переиздают). Под 900 страниц, книгой можно драться. В целом хорошая книга (пусть и местами излишне многословна), особенно новичкам. В своё время была очень популярной. Насколько актуальна сейчас… наверное, всё ещё актуальна в какой-то мере, если вспомнить, что в начале 2000-х популярны были другие языки и немножко другие практики, а про бум функционального программирования тихо мечтали в подушку.
Таки книги про языки
..
Статьи
..