Що почитати
За роки роботи я прочитав багато книжок. Тут зібрані найважливіші — ті, що сформували моє розуміння комп’ютерів, коду та систем, на яких усе це працює.
- Computer Systems: A Programmer's Perspective
Як програми насправді працюють на апаратному забезпеченні — біти та числове представлення, машинний код, ієрархія пам’яті, зв’язування, віртуальна пам’ять і паралелізм. Книга, яка перетворила для мене «магію» на механіку.
- The Elements of Computing Systems: Building a Modern Computer from First Principles
Створює робочий комп’ютер із NAND gates up: логіка, ALU, ЦП, асемблер, віртуальна машина, компілятор, ОС. Практичний компаньйон із CS:APP — ви не просто читаєте про стек, а створюєте його.
- Code: The Hidden Language of Computer Hardware and Software
Petzold проходить шлях від азбуки Морзе та сигналів ліхтарика, через реле та логічні ворота, аж до робочого процесора — кожен крок мотивований, перш ніж він з’явиться. Найм’якший крок до того, як насправді працюють комп’ютери.
- The Information: A History, a Theory, a Flood
Ґлейк розповідає історію самої інформації — африканських розмовних барабанів, телеграфу, Беббіджа та Лавлейса, а потім Шеннона, який зробив «інформацію» величиною, яку можна виміряти в бітах. Передісторія всього в цьому списку: ентропія, стиснення та виправлення помилок як ідеї до їх розробки.
- Code Complete
Тисяча сторінок конкретних порад щодо майстерності написання коду: іменування, підпрограми, контрольний потік, захисне програмування, налагодження, рефакторинг. Щільний, але читабельний — той тип книжки, до якої ви продовжуєте тягнутися через роки.
- Designing Data-Intensive Applications
Kleppmann відображає ландшафт сучасних систем даних: механізми зберігання, реплікація, розділення, транзакції, консенсус, пакетна та потокова обробка. Пояснює компроміси, що стоять за кожним рішенням щодо бази даних і черги повідомлень, яке ви коли-небудь приймете.
- 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
Безкоштовна офіційна книга Chacon і Straub про Git: від щоденного робочого процесу через розгалуження, об’єднання та перебазування, аж до об’єктної моделі та команд водопостачання. Найчіткіше пояснення того, що насправді робить Git, коли ви вводите `git`.
- Seven Concurrency Models in Seven Weeks
Батчер вивчає потоки та блокування, функціональне програмування, розбиття ідентичності/стану Clojure, акторів, CSP, паралелізм даних на GPU та лямбда-архітектуру — одна парадигма на тиждень. Книга, яка робить «вибір правильної моделі паралелізму» реальним вибором, а не гаслом.