Биссектриса, не угадай
Когда ошибка появляется где-то между рабочей версией и сломанной, выполните двоичный поиск в истории вместо того, чтобы просматривать различия — проверьте среднюю точку, затем повторяйте, пока не останется одно изменение.
Инженер-программист · Пишет, тестирует и поддерживает код, который управляет современной жизнью, и является одной из первых профессий, наблюдающих, как ИИ автоматизирует свою повседневную работу.
Представление об инженере, непрерывно печатающем в течение восьми часов, во многом ошибочно. Чтение кода других людей, рассуждения о сбоях без очевидной причины и объяснение технических компромиссов людям, не являющимся инженерами, занимают такую же часть работы, как и написание нового кода, а зачастую и больше, для тех, кто старше первых двух лет.
Мастерство, передаваемое внутри профессии, заключается не столько в том, какой язык изучать, сколько в привычках ума: как систематически искать ошибку, а не гадать, когда оставить работающий код в покое, а когда удаление кода — самое ценное, что вы сделали за всю неделю.
Разбиение расплывчатого, большого запроса на маленькие, независимо создаваемые и тестируемые части — навык, который больше всего отличает продуктивных инженеров от тех, кто тормозит над большими задачами.
Систематическое определение того, где и почему система ведет себя неправильно, вместо того, чтобы гадать и менять вещи, пока она не заработает.
Выбор того, как следует разделить сервисы, данные и команды, чтобы все это могло безопасно меняться в течение многих лет, а не просто работать с первого дня.
Объяснение технических компромиссов неинженеру, четкое описание изменений для рецензентов и обсуждение объема — большинство профессионального кода читаются и обсуждаются гораздо чаще, чем пишутся.
Написание проверок, которые выявляют неработающие изменения до того, как это сделает пользователь, и сохранение кодовой базы достаточно разборчивой, чтобы следующий человек — часто тот же инженер, спустя несколько месяцев — мог безопасно изменить ее.
Языки, фреймворки, а теперь и инструменты искусственного интеллекта меняются каждые несколько лет; инженеры, которые перестают намеренно учиться после того, как их первая работа быстро останавливается.
Обработка ночных оповещений и сообщений, а затем короткая встреча, на которой команда рассказывает, над чем она работает и что ей мешает.
Самый защищенный блок дня, в идеале с отключенными уведомлениями, посвященный реализации функции или исправления, требующего постоянной концентрации.
Настоящий перерыв; многие инженеры сообщают, что это первое, что исчезает при резком падении, и первое, о чем они сожалеют.
Чтение запросов коллег, объединение усилий для решения сложной проблемы, а также встречи по проектированию или планированию, которые, как правило, собираются во второй половине дня.
Завершение и отправка дневной смены, наблюдение за ее безопасным развертыванием и оставление заметок на завтра или для тех, кто дежурит ночью.
Личное время и сон — если только это не дежурная неделя, когда телефонный звонок может превратить 3 часа ночи в незапланированный производственный инцидент.
Craft knowledge practitioners actually pass on — not motivation.
Когда ошибка появляется где-то между рабочей версией и сломанной, выполните двоичный поиск в истории вместо того, чтобы просматривать различия — проверьте среднюю точку, затем повторяйте, пока не останется одно изменение.
Полное сообщение об ошибке, трассировка стека и окружающие строки журнала обычно уже содержат ответ; Прыжок прямо к источнику и догадки приводят к потере той единственной улики, которую компьютер бесплатно предоставил вам.
Если функцию сложно добавить, обычно это признак того, что код для нее создан неправильно. Сначала выполните рефакторинг, без изменения поведения, пока функция не станет небольшим очевидным отличием, а затем создайте это различие.
Прежде чем удалять или упрощать код, значение конфигурации или проверку, которую вы не понимаете, выясните, почему они были там помещены. Возможно, именно по этой причине он тихо защищает от неудачи, которой не было уже много лет.
Код, который больше не существует, не может содержать ошибок, не может сбить с толку следующего читателя и не может нуждаться в обновлении. Удаление мертвых путей и неиспользуемых функций следует отмечать так же, как и выпуск новых функций.
Прежде чем просить о помощи, объясните проблему вслух, построчно, коллеге или даже неодушевленному предмету. Акт точного формулирования часто выявляет ошибку еще до того, как кто-нибудь ответит.
Доминируют Visual Studio Code и IDE JetBrains; оба теперь создают автозаполнение с помощью искусственного интеллекта и общаются прямо в редакторе.
Система контроля версий была стандартизирована почти во всей отрасли после того, как Торвальдс написал ее в 2005 году; без него почти ничего не поставляется.
Проблемы Jira, Linear или GitHub превращают накопившиеся ошибки и функции в то, что команда может планировать на неделю или квартал.
Автоматизированные системы, которые создают, тестируют и развертывают код при каждом изменении, превращая выпуск релиза из нервного ручного мероприятия в рутинное.
Такие инструменты, как GitHub Copilot, теперь записывают большую часть строк, которые принимает инженер, смещая повседневную работу в сторону просмотра и управления, а не набора текста.
Выбор модного языка, фреймворка или архитектуры потому, что он хорошо смотрится в резюме, а не потому, что он соответствует проблеме, оставляя позади сложность, которую должна поддерживать следующая команда.
Сопоставление шаблонов с запомненным исправлением вместо чтения того, что на самом деле сообщает программа, что может потратить часы на поиск неправильной причины.
Отказ от работающей системы для ее «правильного» восстановления с нуля — это общеизвестный рискованный шаг: полная переработка браузера Netscape в конце 1990-х годов — широко упоминаемый случай, когда это стоило компании лидерства на рынке.
Находит закономерности и строит прогнозные модели на основе данных — должность 2008 года, основанная на трех столетиях подсчета, тестирования и визуализации доказательств.
AI-resistant 38 📦Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.
AI-resistant 54 🗺️Решает, что компания должна построить дальше и почему, превращая потребности клиентов, бизнес-цели и технические ограничения в один общий план, которым никто больше не владеет.
AI-resistant 50 🔐Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.
AI-resistant 63 🌿Руководит стратегией, измерениями и отчетностью, которые помогают организациям снизить экологический и социальный ущерб при выполнении деловых обязательств.
AI-resistant 66 🧾Хранитель книг: наследник ремесла, настолько древнего, что оно изобрело само письмо, и теперь ведет переговоры с программным обеспечением, созданным для его автоматизации.
AI-resistant 35Разрабатывает и тестирует алгоритмы, лежащие в основе машинного интеллекта, в области, которая сейчас стремится автоматизировать растущую долю собственного исследовательского процесса.
AI-resistant 50 🛰️Проектирует, анализирует и сертифицирует летательные аппараты, ракеты и космические корабли, отрывающиеся от земли, работая с запасом безопасности, не оставляющим места для догадок.
AI-resistant 74 🌉Профессия, превращающая реки, скалы и гравитацию в мосты, дороги и чистую воду — тихая несущая сила цивилизации со времен Имхотепа.
AI-resistant 72 🔌Разрабатывает и производит транзисторы внутри каждого компьютера, телефона и оружия, используя настолько точные станки, что их могут эксплуатировать лишь несколько заводов на Земле.
AI-resistant 60 🦾Разрабатывает машины, которые чувствуют, принимают решения и действуют в физическом мире, где сложной проблемой является не интеллект, а сам мир.
AI-resistant 65 🔐Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.
AI-resistant 63 📦Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.
AI-resistant 54 🌬️Проектирует, строит и совершенствует ветровые, солнечные, накопительные и сетевые системы, которые превращают возобновляемые ресурсы в надежную электроэнергию.
AI-resistant 72