Список книг
За свою карьеру я прочитал много книг — это основополагающие: названия, которые сформировали мое представление о компьютерах, коде и системах, лежащих в их основе.
- Computer Systems: A Programmer's Perspective
Как программы на самом деле работают на оборудовании — битовое и числовое представление, машинный код, иерархия памяти, связывание, виртуальная память и параллелизм. Книга, которая превратила для меня «волшебство» в механику.
- The Elements of Computing Systems: Building a Modern Computer from First Principles
Собирает работающий компьютер из вентилей NAND: логика, АЛУ, ЦП, ассемблер, виртуальная машина, компилятор, ОС. Практический помощник CS:APP — вы не просто читаете о стеке, вы его создаете.
- Code: The Hidden Language of Computer Hardware and Software
Петцольд проходит путь от азбуки Морзе и сигналов фонарика, через реле и логические элементы вплоть до работающего процессора — каждый шаг мотивирован еще до его появления. Самый мягкий путь к тому, как на самом деле работают компьютеры.
- The Information: A History, a Theory, a Flood
Глейк рассказывает историю самой информации — африканские говорящие барабаны, телеграф, Бэббидж и Лавлейс, а затем Шеннон, который превратил «информацию» в измеримую величину в битах. Предыстория всего в этом списке: энтропия, сжатие и исправление ошибок как идеи до того, как они были разработаны.
- Code Complete
Тысячи страниц конкретных советов по искусству написания кода: именование, подпрограммы, поток управления, защитное программирование, отладка, рефакторинг. Плотная, но читабельная — книга, к которой вы тянетесь долгие годы спустя.
- Designing Data-Intensive Applications
Клеппманн отображает ландшафт современных систем данных: механизмы хранения, репликацию, секционирование, транзакции, консенсус, пакетную и потоковую обработку. Объясняет компромиссы, лежащие в основе каждого решения по базе данных и очереди сообщений, которое вы когда-либо принимали.
- A Brief History of Intelligence: Evolution, AI, and the Five Breakthroughs That Made Our Brains
Беннетт описывает 600 миллионов лет эволюции мозга как пять прорывов — управление, подкрепление, моделирование, ментализацию, речь — и каждый из них задается вопросом, какой эквивалентный шаг был в ИИ. Самый ясный отчет, который я знаю, о том, почему обучение с подкреплением, модели мира и язык оказались трудными проблемами.
- Why Machines Learn: The Elegant Math Behind Modern AI
Анантасвами прослеживает математические идеи — от перцептрона до градиентного спуска, ядер и обратного распространения ошибки — которые незаметно лежат в основе современного машинного обучения. Читабельный мост между научно-популярной историей и настоящим учебником.
- An Introduction to Statistical Learning: with Applications in Python
Джеймс, Виттен, Хасти, Тибширани и Тейлор описывают классический набор инструментов машинного обучения — линейную и логистическую регрессию, перекрестную проверку и бутстреп, гребень и лассо, сплайны и GAM, деревья и ансамбли, SVM, PCA и кластеризацию — с математикой, необходимой вам, и лабораторной работой по Python после каждой главы. Настоящий учебник, на который продолжают указывать представители научно-популярной литературы.
- Deep Learning with Python, Third Edition
Практический тур Шолле по современному глубокому обучению в Керасе — от плотных сетей и коннетов до преобразователей и генеративных моделей. Практично, самоуверенно и написано человеком, создавшим структуру.
- High Performance Browser Networking
Григорик распаковывает сетевой стек, который фактически использует браузер: TCP, TLS, HTTP/1.1, HTTP/2, WebSocket, WebRTC и уровень мобильной радиосвязи под всем этим. Если вы отправляете что-либо по сети, это объясняет, почему ваша страница работает медленно.
- Fluent Python: Clear, Concise, and Effective Programming
Рамальо переходит от синтаксиса к модели данных Python: как на самом деле сочетаются друг с другом методы dunder, дескрипторы, итераторы, сопрограммы и асинхронные механизмы. Книга, которая превращает пользователя Python в программиста Python.
- JavaScript: The Definitive Guide
Энциклопедический справочник Фланагана по языку: типы, объекты, замыкания, классы, модули, асинхронность и полная стандартная библиотека. Толстая, точная и единственная книга, если вы хотите, чтобы весь язык был в одном месте.
- Pro Git
Бесплатная официальная книга Чакона и Штрауба по Git: от ежедневного рабочего процесса через ветвления, слияния и перебазирования, вплоть до объектной модели и команд сантехники. Самое четкое объяснение того, что на самом деле делает Git, когда вы вводите `git`.
- Seven Concurrency Models in Seven Weeks
Мясник рассказывает о потоках и блокировках, функциональном программировании, разделении личности и состояния Clojure, актерах, CSP, параллелизме данных на графическом процессоре и лямбда-архитектуре — одна парадигма в неделю. Книга, которая делает «выбор правильной модели параллелизма» реальным выбором, а не лозунгом.