Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Лучшие книги по computer science для программистов ? Особенности каждой из них ?

ПрограммированиеКниги+3
Темирлан Алчаков
  ·   · 3,5 K
Лучший
Веб-разработчик, геймер, специалист по этике  · 6 апр 2022
Книги чтобы прямо конкретно по Computer Science - вот это для меня как для software engineer интересный вопрос, на самом деле.
Я знаю два ресурса в Сети, где авторы собрали в одном месте полноценный план изучения CS: вот этот репозитарий в GitHub и вот эта веб-страница. Вот там люди прямо серьёзно заморочились ответом на ваш вопрос.
Лично из моей библиотеки я могу порекомендовать вот эти классические книги по разным областям Computer Science:
  1. Artificial Intelligence: A Modern Approach (Stuart Russell, Peter Norvig) 3 редакция. Книга по искусственному интеллекту, претендует на всеобъемлющесть. Вообще всё, что написал Питер Норвиг, рекомендуется к прочтению.
  2. Concrete Mathematics: A Foundation for Computer Science (Ronald Graham, Donald Knuth), 2 редакция. Книга по фундаментальной математике, которая используется в компьютерных науках. Один из соавторов - Дональд Кнут, автор "The Art of Computer Programming", другой классической книги в компьютерных науках.
  3. The Annotated Turing (Charles Petzold), вообще всё, что написал Чарльз Петцольд, рекомендуется к прочтению, но эта книга особенная. Это та самая первая монография Тьюринга, в которой он описывает машину, названную его именем, но только с построчным комментарием самого Петцольда. Книга очень помогает понять, что такое самый низкий уровень в компьютерных науках, а также даёт кое-какие представления о понятии вычислимости.
  4. The Elements of Computer Systems (Noam Nisan, Shimon Schocken). Очень подробное, основанное на практических занятиях введение в структуру компьютерных систем, начиная с фундаментальных основ - логических цепей.
  5. Concepts, Techniques, and Models of Computer Programming (Peter Van Roy, Seif Haridi). Уже довольно старая книга (2004 года), но с тех пор ничего подобного не выходило. Это обзор всех (на тот год) концепций, используемых в языках программирования - фактически, подробный разбор всех так называемых "парадигм программирования" по своей сути. На мой взгляд, она больше инженерная чем научная, но не порекомендовать её я не могу.
  6. Я её сам не читал, но очень много людей рекомендуют драконью книгу: Compilers: Principles, Techniques and Tools (Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey Ullman). Тоже достаточно старая книга, но тем не менее перечисляющая всю необходимую теорию построения компиляторов языков программирования.
  7. Естественно, если мы говорим про CS, нужно упомянуть алгоритмизацию, и, наверное, самой важной книгой в этой области является Introduction to Algorithms (Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein). Даже мой университетский препод по дискретке в 2008 году рекомендовал именно эту книгу по алгоритмам.
  8. Несмотря на то, что Кнут назвал свою книгу The Art of Programming, и до сих пор её пишет, его книга является в первую очередь книгой по алгоритмизации. Его вклад собственно в программную инженерию в виде концепции literate programming нарушает достаточно принципов архитектуры, чтобы сохраниться только в виде Jupyter Notebooks и Wolfram Mathematica.
Я уверен, что более знающие CS люди подскажут больше классических книг в этой области, но вышеперечисленные восемь это то, до чего лично у меня дошли руки, и в чьих качествах я не сомневаюсь.
Нет, я не упоминаю общеизвестный SICP, потому что это книга в первую очередь по программной инженерии, а не по компьютерным наукам. Конечно же, я рекомендую Structure and Interpretation of Computer Programs всё равно, и сам её читал.