Віктор Турський про програмування / навігатор

Інженерна майстерність і карʼєра / крок 14

Книги, які я прочитав і поставив п'ять зірок

початковий 19:58 дивитися на YouTube ↗

Розділи

Про що це відео

Спонсорське відео, що народилося з питання на мітапі GeekOps («які книги ти читаєш?»), яке не записалося: автор проходить згори вниз своїм списком у Goodreads і коментує кожну книгу, якій поставив п’ять зірок. Майже всі — технічні, жодної художньої, а його правило таке: п’ять зірок означає «читай, якщо тема тобі цікава; якщо ні — пропусти». Дорогою він ділиться особистою історією з книгами — як читав Code Complete 14 років тому і зрозумів, що ідеального третього рішення не існує, як у Mail.ua виявив, що його команда самостійно перевинайшла 8 із 24 патернів GoF ще до того, як він прочитав книгу, і як використовував Cracking the Coding Interview для підготовки до співбесід у Google. Список охоплює дизайн ПЗ, тайм-менеджмент, Linux, B2B-продажі, теорію виробництва, автоспорт і воєнні історії ігрової індустрії.

Головне

  • Code Complete відповіла на питання, що переслідувало його новачком: «чи існує третє рішення, яке покращує цей аспект, не шкодячи тому?» Книга переконала його, що такого рішення зазвичай немає — інженерія — це компроміси — і він «переконувався в цьому багато разів відтоді». Вона з 1993 року, тож приклади коду застарілі, але концептуально досі актуальна.
  • Його теорія патернів проєктування (GoF): патерни — не сакральне таємне знання, а найпоширеніші рішення, які всі й так уже використовують. Доказ із власної кар’єри: працюючи в Mail.ua до прочитання книги, архітектура його команди вже містила вісім патернів із книги, бо вони були просто найлогічнішими виборами. Справжня цінність їхнього вивчення — спільний словник з іншими розробниками («хочу тут фасад», «зробімо стратегію для транспорту логів»).
  • PoEAA Фаулера — це книга про патерни, яку він рекомендує всім замість GoF: високорівневі стратегічні патерни. Приблизно 70% з них ви ніколи не реалізуєте самі, але спиратиметеся на них щодня, бо вони вже всередині вашого ORM і веб-фреймворку.
  • DDD: читайте і Еванса, і Вернона. Еванс може здаватися занадто абстрактним (концепції, не код); Вернон показує саме те, як структурувати код — але люди, що читали лише Вернона, плутають структуру коду з DDD, тоді як суть у концептуальній ідеї. Одна з найкращих книг про дизайн, які він знає; передусім для бекендерів, корисна й для фронтендерів — вона про боротьбу зі складністю (Проєктування програмного забезпечення).
  • The Mythical Man-Month: читайте, щоб побачити, що між 1975 роком (стоси паперу замість Jira, розробка ОС на мейнфреймі IBM) і 2024-м по суті нічого не змінилося — ті самі обмеження лишаються, включно з essential проти accidental complexity, поняттями, які ви зустрічаєте щодня.
  • K&R C тонка — на пару вечорів — але після неї ви розумієте, що насправді відбувається під JavaScript чи Python: рядок — це масив символів, копіювання його — це цикл, null-термінатовані рядки, плюс чудова власноруч написана реалізація хеш-таблиці (Глибоке вивчення фундаментальних речей).
  • Cracking the Coding Interview: самі задачі можна перемолоти на LeetCode/AlgoExpert; недооцінене золото — це два вступи: що інтерв’юери насправді від вас очікують і дуже гарний вступ до аналізу складності алгоритмів.
  • Непрограмістські п’ятизіркові, за які він ручається: The Goal (теорія обмежень у формі роману — він знає людей в Україні, що побудували працюючий виробничий бізнес із книг Голдратта), Good Strategy Bad Strategy (найцінніша тим, що каже, що не є стратегією), The Checklist Manifesto (змінила його погляд на чеклісти), SPIN Selling (класика B2B-продажів) і Summa Technologiae Лема (чиста логічна футурологія 1960-х, у якій він упізнав сюжети «Матриці» й «Тринадцятого поверху»).

Теми відео

Частина цих треків