Найти в Дзене

📖 Эссе, которые формируют инженера: взгляд на программирование через тексты

Оглавление

Недавно Майкл Линч опубликовал подборку эссе, которые повлияли на его карьеру и подход к разработке ПО. В списке — от классики Фреда Брукса и Джоэла Спольски до свежих заметок про безопасность и выбор технологий. Интересно то, что эти тексты охватывают почти 40 лет истории индустрии — от 1986 до 2022 года.

Что объединяет эти эссе?

Каждое из них дало автору «щелчок сознания», изменив подход к какой-то стороне работы:

🧩 Процесс разработки — «The Joel Test» Спольски до сих пор используется как критерий зрелости команд. Вопросы про CI/CD, баг-трекеры и юзабилити на самом деле были о главном: уважают ли в компании время разработчиков?

🔐 Безопасность и типы — эссе «Parse, don’t validate» Алексис Кинг показало, что типизация может быть щитом против уязвимостей. Валидация на входе недостаточна, а правильный парсинг превращает небезопасные строки в безопасные сущности.

⚖️ Сущностная и случайная сложность — Фред Брукс в «No Silver Bullet» объяснил, что никакие инструменты не уберут необходимость решать настоящие задачи предметной области. Но вот «случайную» сложность (например, утечки памяти) — можно минимизировать.

🖥️ Интерфейсы и выбор — Спольски в «Choices» напомнил: каждая новая настройка — это нагрузка на пользователя. Лучше принимать решения за него там, где это возможно.

🧪 Тестирование — эссе Эрика Кюфлера «Don’t Put Logic in Tests» объяснило, что тесты не должны быть «умными», а должны быть очевидными. Я сам ловил себя на том, что писал тесты с переменными и циклами — и они прятали баги.

🌐 Технологии — «Choose Boring Technology» Дэна МакКинли ввело понятие «инновационных токенов»: компания может позволить себе рискнуть с новыми технологиями, но не во всём сразу. Это правило часто спасает стартапы от технических долгов.

🔑 Личная безопасность — эссе Терренса Эдена о том, как он потерял доступ ко всем своим данным, напомнило: даже оффсайт-бэкапы не всегда спасают. Цифровая гигиена — это не про паранойю, а про выживание.

Моё мнение

Что важно в этих эссе? Они показывают, что разработка — это не только код. Это ещё и:

  • 🧠 мышление системами (как у Брукса);
  • 🛠️ практические привычки (как у Спольски и Кюфлера);
  • 📉 сдержанность в выборе технологий (как у МакКинли);
  • 🔒 забота о пользователях и себе (как у Эдена и Чена).

Лично мне ближе всего идея «parse, don’t validate». Когда-то я тоже считал статическую типизацию «занудством». Но опыт показывает: если в коде появляется тип Username, то вероятность пропустить уязвимость падает в разы.

Ещё одна мысль — эссе становятся «вечными», если они поднимают не технический, а философский вопрос. Фреймворки приходят и уходят, а идеи про сложность, интерфейсы и безопасность остаются актуальными десятилетиями.

Заключение

Язык программирования, стек и инструменты — это всего лишь слой. Настоящая сила разработчика — в мышлении, а оно формируется текстами. Хорошие эссе — это как менторы, которые не устаревают.

И, возможно, самое важное — перечитывать классику раз в несколько лет. Часто ответы на «новые» вопросы уже даны — просто в другой эпохе и другими словами.

Источники: