Книги для программистов

Список книг, которые советую прочитать программистам:

  1. Чарльз Петцольд. Код. Тайный язык информатики
    Книга про информатику. Основы работы кодирования и обработки данных.
  2. Дональн Кнут. Искусство программирования
    Книга про то, как работают базовые алгоритмы. Обязательно нужно читать тем, кто пишет на Java и C++. Желательно остальным. Либо прочитать Кнута, либо прочитать ее выжимку. В основном нужно понимать как работают алгоритмы сортировки, поиска, что такое алгоритмическая сложность. Что такое кэш, стэк, очередь. Обычно этому должны учить в универе. Если не научили читайте книжку.
  3. Морис Херлихи и Нир Шавит. The Art of Multiprocessor Programming
    Про то как разрабатывать мультипоточные приложения
  4. Андре Ламот. Программирование трехмерных игр для Windows
    Книга про то, как работают 3D движки. Про математику, которая заложена в работу движков. Если вы собираетесь делать игры, то эту книгу прочитать нужно обязательно
  5. Д. Креншоу. Пишем компилятор
    Книга про то как создать свой язык програмирования
  6. В Кораблев. Самоучитель Турбо Паскаль 7.0
    Классная книга. Жаль что для паскаля.
  7. Шаблоны проектирования или паттерные проектирования.
    https://refactoring.guru/ru/design-patterns
    О них нужно знать, но использовать их не обязательно, а иногда даже вредно. Т.к. код тогда превращается в слишком сложный. Необходимо для програмистов Java и C++. Потому что по другому там не сделать. В PHP и JavaScript делается проще и без патернов.
  8. Функциональное программирование
    Книг не знаю, просто поишите в интенерет. Нужно знать что такое чистая функция, неизменяемые структуры данных, функции высших порядков, масштабирование, отсутствие состояния, асинхронные функции, кооперативная многозадачность (async/await). Функциональное программирование не панацея, иногда усложняет код, а иногда делает его проще. Нужно уметь знать где и как правильно применять.
    В посте есть раздел про ФП https://habr.com/ru/post/491280

А также советую поиграть в игры Factorio и Oxygen Not Included. Они развивают инженерное мышление.