Зміст
Стек змінюється кожні кілька років. Добрі книги з інженерії живуть довше: вони вчать мислити про складність, супровід і людей, а не завчати синтаксис каркаса. Нижче — дванадцять книг, які я вважаю опорними для практикуючого розробника, архітектора й технічного ліда. Це не «рейтинг інтернет-магазину» і не обов’язковий канон для співбесід. Це список із критеріями: що брати, що читати вибірково, де книга вже застаріла в деталях, але все ще сильна в ідеях.
Паралельно на сайті з’явиться серія вижимок — лонгріди своїми словами про головні думки кожної книги, без підміни оригіналу. Поки вижимок немає: стежте за тегом «Вижимки книг». Цей матеріал — зміст серії.
Ключові висновки
Книга корисна, якщо змінює рішення на роботі — під час розбору коду, у проєктуванні програмних інтерфейсів, у розмові з бізнесом, — а не лише додає цитат у месенджер.
Класика часто має рацію в принципах і спірна в прикладах. Чистий код (Clean Code) і GoF читають критично: ідеї беруть, догму залишають.
Один список не закриває всю професію. Тут немає глибокого ML, фронтенд-специфіки чи алгоритмів «для олімпіад» — фокус на інженерії продуктів і систем.
Вижимка не замінює книгу. Серія на блозі — мапа ідей; оригінал — аргументи, нюанси й вправи.
Як відбирав
Критерії прості й жорсткі:
- Застосовність — ідея живе поза однією мовою чи епохою.
- Щільність — книга дає рамку мислення, а не лише перелік прийомів.
- Аудиторія сайту — повний стек розробки, серверна частина, архітектура, інтеграції, експлуатація; не академічний курс заради курсу.
- Чесність — якщо текст спірний або застарілий, це сказано прямо.
Поза списком навмисно: вузькі посібники з каркасів, «вивчи X за 24 години», нелегальні копії в PDF. Купуйте або беріть у бібліотеці офіційні видання.
Основи мислення
1. The Pragmatic Programmer — Andrew Hunt, David Thomas
Навіщо: формує звички «інженера-ремісника»: ортогональність змін, догляд за кодовою базою, автоматизація болю, трасувальні кулі замість нескінченних прототипів.
Кому: початківцям і фахівцям середнього рівня, усім, хто втомився від хаотичних правок «бо так вийшло».
Ідеї в двох реченнях: дублювати знання небезпечніше, ніж рядки коду; маленький завершений зріз системи вчить швидше ідеального плану на папері.
Вижимка: читати · pragmatic-programmer-summary
2. A Philosophy of Software Design — John Ousterhout
Навіщо: мова про складність модулів, глибину інтерфейсів і ціну «розумних» абстракцій. Добрий противага гаслам «маленькі функції за будь-яку ціну».
Кому: фахівцям середнього рівня й вище, технічним лідам, авторам бібліотек і платформних шарів.
Ідеї: глибокий модуль із простим інтерфейсом часто кращий за набір дрібних «чистих» шматочків; коментарі — частина дизайну, якщо пояснюють чому.
Вижимка: незабаром · philosophy-software-design-summary
3. The Mythical Man-Month — Frederick P. Brooks Jr.
Навіщо: досі найкраще пояснення, чому «додамо людей — прискоримо» ламає строки, і чому концептуальна цілісність архітектури дорожча за локальну оптимізацію.
Кому: керівникам команд, менеджерам інженерії, архітекторам на великих продуктах.
Ідеї: комунікації ростуть нелінійно; другий проєкт («пілотний») часто потрібен, щоб зрозуміти перший; немає срібної кулі — і це нормально.
Вижимка: незабаром · mythical-man-month-summary
Код, рефакторинг, спадщина
4. Чистий код (Clean Code) — Robert C. Martin
Навіщо: дисципліна іменування, функцій і тестів. Читати із застереженням: частину порад (довжина функцій, заборона коментарів, деякі приклади) у спільноті оскаржують, особливо після хвилі критики та альтернатив на кшталт Ousterhout.
Кому: тим, у кого в команді немає домовленостей про стиль; не як єдина священна книга.
Ідеї: імена як документація; функції роблять одне; тести страхують рефакторинг.
Вижимка: незабаром · clean-code-summary
5. Refactoring — Martin Fowler
Навіщо: словник безпечних перетворень коду за зелених тестів. Друге видання ближче до сучасного JavaScript і типізації, але метод універсальний.
Кому: будь-хто, хто чіпає живий промисловий код частіше, ніж пише з нуля.
Ідеї: рефакторинг — окремий режим роботи, не «заодно почищу»; маленькі кроки; запахи коду як сигнал, не як вирок.
Вижимка: незабаром · refactoring-fowler-summary
6. Working Effectively with Legacy Code — Michael Feathers
Навіщо: як вносити зміни в систему без тестів: шви, характеризаційні тести, стратегії ізоляції залежностей.
Кому: усі, хто працює з успадкованими обліковими системами, монолітами й «кодом 2012 року, який не можна впустити».
Ідеї: успадкований код — код без тестів; спочатку можливість перевірити, потім сміливість змінювати.
Вижимка: незабаром · legacy-code-feathers-summary
7. Code Complete — Steve McConnell
Навіщо: енциклопедія практики конструювання: від змінних до налагодження. Читати вибірково — як довідник, не як роман від кірки до кірки.
Кому: фахівцям середнього рівня, наставникам, авторам внутрішніх керівництв із якості.
Ідеї: якість вбудовується в процес; вимірювання й евристики важливіші за смак; складністю керують явно.
Вижимка: незабаром · code-complete-summary
Архітектура і дані
8. Design Patterns — Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (GoF)
Навіщо: спільна мова для обговорення структур (Strategy, Observer, Decorator…). Використовувати як довідник, не як перелік «впхнути шаблон».
Кому: фахівцям середнього рівня й вище, авторам каркасів і складних доменних шарів.
Ідеї: шаблон проєктування — іменоване рішення повторюваної проблеми; зловживання шаблонами гірше за їхню відсутність.
Вижимка: незабаром · design-patterns-gof-summary
9. Domain-Driven Design — Eric Evans
Навіщо: Ubiquitous Language, обмежені контексти, моделювання складного бізнесу в коді. Важка книга — нормально читати повільно й повертатися.
Кому: архітектори корпоративних систем і продуктів для бізнесу, команди з багатою предметною областю. Доповнення на практиці: Implementing Domain-Driven Design (Vernon) — більш приземлені тактики.
Ідеї: модель живе в мові команди; межі контекстів важливіші за «одну велику модель на все».
Вижимка: незабаром · domain-driven-design-summary
10. Designing Data-Intensive Applications — Martin Kleppmann
Навіщо: фундамент щодо надійності, реплікації, партиціонування, узгодженості й потоків даних. Книга, після якої розмови про «просто додамо Kafka» стають конкретнішими.
Кому: розробникам серверної частини, інженерам даних, архітекторам платформ.
Ідеї: компроміси узгодженості — інженерний вибір; журнал і похідні представлення; немає безкоштовної масштабованості.
Вижимка: незабаром · ddia-kleppmann-summary
11. Release It! — Michael T. Nygard
Навіщо: стійкість у промисловому середовищі: тайм-аути, запобіжники, деградація, антипатерни інтеграцій. Міст між «код написано» і «система живе під навантаженням і зі збоями сусідів».
Кому: усі, хто викочує сервіси в промислове середовище або супроводжує інтеграції.
Ідеї: збій сусіда — норма; проєктуйте на відмову; спостережуваність і обмеження шкоди важливіші за ідеальний щасливий шлях.
Вижимка: незабаром · release-it-nygard-summary
Кар’єра і вплив
12. The Staff Engineer's Path — Tanya Reilly
Навіщо: роль провідного інженера (staff/principal) без обов’язкового керівництва людьми: вплив, технічна стратегія, наставництво, як обирати роботу з максимальним важелем.
Кому: досвідченим інженерам на шляху до провідної ролі, керівникам команд, які лишаються на інженерній доріжці.
Ідеї: вплив вимірюється наслідками системи, не кількістю запитів на злиття; ясність письма й узгодження інтересів учасників — частина роботи.
Вижимка: незабаром · staff-engineers-path-summary
Як читати цей список
| Мета | З чого почати |
|---|---|
| Менше хаосу в щоденній роботі | Pragmatic Programmer → Refactoring |
| Складний бізнес-домен | DDD (повільно) → Vernon за тактиками |
| Дані й масштаб | DDIA → Release It! |
| Успадкований моноліт | Feathers → Refactoring |
| Зростання до провідного інженера | Staff Engineer's Path + Brooks |
Не збирайте «прочитав 12/12» як бейдж. Одна книга, впроваджена в рев’ю й дизайн-доки, варта п’яти «гортав по діагоналі».
Серія вижимок на цьому сайті
Далі в кожної книги зі списку з’явиться окремий лонгрід: теза → ключові ідеї → практика → критика → кому читати. Це не скорочені розділи й не заміна купівлі оригіналу.
- Каталог серії та статуси: репозиторій
docs/programming-books/ - Стрічка вижимок: тег book-summary
- Серія в метаданих статей:
programming-books
Якщо хочете почати з конкретної книги з таблиці — напишіть, яку вижимку готувати першою.

