Цена удобства приминения ИИ: как мы теряем инженерную интуицию
Я уже больше года практически не пишу код руками. Мой рабочий процесс кодинга превратился в диалог с ИИ: я скармливаю LLM псевдокод, фичу или идею, общую логику или архитектурный набросок, а в ответ получаю готовые функции и классы.
У меня и до этого были свои мысли по этому вопросу, но статья на Хабре (https://habr.com/ru/articles/989396/), очень срезонировала пугающе точно. Она дала название тому смутному беспокойству, которое я ощущал последнее время. В том числе его можно прочитать между строк в постах выше. Оказывается это называется деградация навыков, вызванная автоматизацией 🤯.
Я не считаю себя новомодным вайбкодером в традиционном сегодняшнем смысле. Наверно потому, что я пишу код уже более 10 лет. Успел попробовать практически все современные ЯП: от Visual basic и Pascal до Php и Python не чураясь низкоуровнеавым си и растом. И в результате у меня сформировался пласт опыта, который просто так не пропьешь. И да, я не принимаю тупо все предложения ИИ для имплементации слепо. Я стараюсь вдумчиво читать вывод, оценивать комиты. Смотрю какие участки кода затронуты. Пытаюсь понять как это повлияет на общую логику.
И да, безусловно, это удобно. Это быстро. Это освобождает время для того, что я считал "настоящей работой": дебага, тестирования, архитектурных моментов.
И да, для хорошего контекста фичу или идею нужно описать максимально подорбно, описать какую логику я ожидаю на вход и на выход, в каких файлах стоит делать изменения. Чего делать не стоит и т.д. (во всяком случае я так делаю, я так привык)
Мы привыкли думать, что написание бойлерплейта, тестов или рутинных CRUD-методов - это просто трата времени. Пусть ии делает грязную работу, а я буду творцом. Но статья подсвечивает критический момент: скучная работа была нашей тренировкой. Прокачкой тех областей в мозге, которые отвечают за фундаментальный процесс кодинга в голове до переноса кода в IDE.
Когда ты пишешь тест руками, ты не просто покрываешь код. Ты принуждаешь свой мозг работать в режиме логического осознания: А что, если здесь придет null? А что, если в результате этих изменений отвалится другая функция?. Это формирует ту самую продуктивную паранойю, которая отличает сеньора от джуна.
Когда тесты генерирует ИИ, он часто проверяет, что код делает то, что он делает, а не то, что он должен делать. А я, как оператор, просто смотрю на зеленые галочки и чувствую ложную уверенность.
Самое страшное, что я замечаю по себе — начинает страдать подсознательная интуиция.
Программирование — это не просто знание синтаксиса. Это способность загрузить ментальную модель системы в голову и "прокрутить" её. Раньше, пока пальцы набивали код, мозг фоном выстраивал связи, замечал потенциальные race conditions или архитектурные тупики еще до того, как код был дописан.
Теперь этот этап пропущен. Я получаю результат мгновенно. Мозг не успевает построить нейронные связи, отвечающие за глубокое понимание того, *как именно* работает этот кусок. Видел что это еще называют техническим долгом.
Статистика из статьи подтверждает: опытные разработчики с ИИ начинают работать медленнее на сложных задачах (-19% эффективности), потому что теряют хватку, но при этом их уверенность в себе растет. Мы копируем и вставляем код, но доля рефакторинга (улучшения структуры) падает. Мы строим карточные домики быстрее, но фундамент становится всё более зыбким.
Пианисты знают: две недели без игры — и пальцы забывают Шопена. Пилоты знают: если летать только на автопилоте, в критической ситуации ты убьешь пассажиров (анализ FAA подтверждает, что 60% аварий связаны с потерей навыков ручного пилотирования).
Мы, разработчики, сейчас в той же ловушке. Мы становимся операторами сложнейших систем, которые мы разучиваемся понимать на атомарном уровне.
Отказываться от ИИ глупо — это как отказаться от экскаватора в пользу лопаты. Но нам нужна "гигиена трнировки навыка".
Как пилотов заставляют сажать самолет вручную, чтобы они не потеряли квалификацию, так и нам, видимо, придется ввести практику "ручного кодинга". Не ради продуктивности. Но ради того, чтобы мозг не забыл, как превращать абстрактную идею в конкретную инструкцию. И сохранил ту самую инженерную интуицию, которая пока еще отличает нас от ИИ.
Иначе через пять лет мы превратимся в тех, кто умеет только промптить, но впадает в ступор, когда ИИ выдает галлюцинацию в сложной архитектуре, которую мы уже не в силах охватить умом.