🔖
Топ IT книг из прошлого века, актуальных до сих пор
🔹
Строки деревья и последовательности в алгоритмах.
Дэн Гасфилд.
Рано или поздно в любом состоявшемся проекте появляется свой класс строки. Это нормально. Не стесняйтесь этого делать.
Если мне надо что-то вспомнить про строковые алгоритмы, я всегда сначала обращаюсь к этой книге. Если вам потребовался свой класс строки, вы теперь знаете, куда идти.
🔹
Теория графов.
Фрэнк Харари.
Ещё один классический труд, который никогда не устареет. Можно, конечно, сказать, что это книга по чистой математике, и в ней не обсуждаются алгоритмы поиска пути в графе, но математика и теоретическая информатика настолько переплетены, что сложно сказать, где кончается одно и начинается другое. Хотя, на мой взгляд, теоретическая информатика является разделом математики, но это уже философский вопрос. Тем не менее, графы являются важной частью информатики и (программирования в целом), и, порой, в разработке ПО появляются задачи, для решения которых не хватает знаний из книги Кормена.
🔹
Основы математического анализа.
Григорий Михайлович Фихтенгольц.
🔹
Сборник задач и упражнений по математическому анализу.
Борис Павлович Демидович.
Я сейчас очень рад тому, что, когда я учился в университете, у меня не было Wolfram Mathematica (не знаю, умела она тогда аналитически брать интегралы или нет; кажется, не умела, но это не точно) и я все положенные 70 интегралов взял сам.
🔹
Мифический человеко-месяц.
Фредерик Брукс.
Несмотря на то, что IT мир со времени написания этой книги сильно изменился, очень многие мысли из неё актуальны до сих пор. Например, глава "Системный программный продукт": понятно, что сейчас команды разработчиков пишут существенно больше 1000 операторов в год, однако подход к оценке трудозатрат не изменился: программный продукт стоит раза в три дороже просто работающей программы. А также глава, давшая название всей книге и сформулированный в ней закон Брукса: Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
🔹
Паттерны объектно-ориентированного проектирования
Эрих Гамма, Джон Влисидис, Ральф Джонсон, Ричард Хелм.
🔹
Рефакторинг. Улучшение существующего кода.
Мартин Фаулер.
Книга описывает, что таке рефакторинг, принципы проведения рефакторинга и содержит большой каталог рефакторингов. Помимо этого описаны best practices в разработке ПО (см., например, главу "Рефакторинг и производительность").
🔹
Язык программирования С.
Брайан Керниган, Деннис Ритчи.
Учебник языка С от его автора. Написан настолько хорошо, что, несмотря на то, что у С несколько раз обновился стандарт, до сих пор является одной из лучших книг для его изучения.
🔹
Практика программирования.
Брайан У. Керниган, Роб Пайк.
Книга о том, что такое хорошо и что такое плохо в программировании для новичков. Написана простым языком и понятным языком. Она затрагивает практически все аспекты программирования, начиная от именования переменных и заканчивая написанием производительных, надёжных и переносимых систем. Все советы из неё обоснованы и подкреплены примерами из практики. Когда я передавал её племяннику, я поймал себя на мысли, что не могу воспроизвести ни строчки из неё. Но, полистав её, я пришёл к выводу, что уже автоматически следую практически всем советам из неё во время работы. Особенно ценно в ней то, что в каждой главе есть раздел "Дополнительная литература", для того, чтобы углубиться в тему. А также из этого раздела я нашёл следующую книгу из данного топа.
🔹
Совершенный код. Практическое руководство по разработке программного обеспечения.
Стив Макконнелл.
А это моя любимая книга из данного раздела. Она долго была моей настольной книгой. О ней даже здесь была статья. Невероятно полезная книга, которую просто обязан прочитать каждый новичок. При этом, она будет полезна и для людей с опытом.
#подборка@programmist_of
👉
@programmist_of