Позволяем ли мы ИИ писать код за нас — и убиваем ли свои навыки?
Компромисс между мастерством и скоростью. При таком количестве раздутых заголовков трудно получить четкое представление об улучшениях производительности, которые приносят инструменты для кодирования на основе ИИ, такие как ChatGPT, GitHub Copilot и Cursor. В нашей студии мы видим, что эти инструменты для кодирования на основе ИИ приносят заметное повышение производительности. Хотя некоторые заявляют о 10-кратном увеличении, наш опыт ближе к более скромной, но все же значительной цифре. Фактически, недавнее исследование Google оценивает среднее улучшение производительности разработчиков для пользователей ИИ в 21%. Мы не являемся ярыми противниками ИИ. Наоборот, мы верим, что он сделал наших инженеров — большинство из них опытные специалисты — более продуктивными. Но в то же время у нас возникли опасения по поводу долгосрочных последствий чрезмерной зависимости от инструментов ИИ. В долгосрочной перспективе, сделает ли это нас хуже в написании программного обеспечения? Лишает ли это нас практики, замедляя обучение?

Атрофия навыков: есть ли риск?
Мы не знаем ответа наверняка, но недавнее исследование по написанию эссе дает пищу для размышлений. В черновике статьи, опубликованном ранее в этом месяце Массачусетским технологическим институтом, предполагается, что при написании эссе те, кто использовал ChatGPT, «постоянно отставали» от тех, кто использовал поисковую систему или вообще ничего, и «значительно отставали» при просьбе цитировать эссе, которое они написали.
В целом, те, кто не использовал ChatGPT, «задействовали более обширные взаимодействия мозговых сетей»; возможно, неудивительно, что мозг группы без ИИ работал усерднее. Написание кода достаточно отличается от написания эссе, чтобы мы были осторожны, делая слишком много выводов из этого исследования, но это все же вызывает беспокойство.
Конечно, то, как мы используем инструменты ИИ, имеет огромное значение. Предположительно, если мы убедимся, что понимаем каждую строку сгенерированного для нас кода, мы справляемся лучше, чем те, кто слепо доверяет тому, что сгенерировали для них инструменты. Авторы эссе, которым помогал ИИ, в исследовании, казалось, делегировали большую часть мышления ChatGPT, и мы не обязаны использовать инструменты ИИ таким образом.
Тем не менее — принимая предложения от ИИ — мы становимся больше похожи на рецензентов кода и меньше на активных создателей. Имеет ли это значение? Мы не смогли найти никаких исследований, пытающихся ответить на этот конкретный вопрос, но мы подозреваем, что, хотя рецензирование кода, безусловно, чему-то учит рецензента, это обучение вряд ли будет таким глубоким, как если бы мы написали код сами.
Скорость против глубокого понимания
С другой стороны, инструменты ИИ могут значительно экономить время. В прошлом наш инженер, вероятно, зашел бы на StackOverflow, чтобы найти хорошую реализацию функции debounce, так как, вероятно, нашел бы что-то лучше, чем то, что мог бы придумать сам. Теперь Cursor автоматически завершает ее. (И, к слову, мы считаем, что это нормально: вам не обязательно иметь идеальную функцию debounce, зафиксированную в памяти, чтобы быть хорошим инженером-программистом).
Иногда мы доверяем Cursor более крупные задачи, такие как написание юнит-тестов для определенного фрагмента кода. Результат почти всегда требует доработки, но — если мы можем предоставить пример чего-то похожего — результат обычно является достойной отправной точкой, и это экономит нам время, которое мы бы потратили на написание шаблонного кода или на настройку существующего тестового файла для новой цели.
Для профессиональных программистов производительность имеет значение, и, особенно для наших старших инженеров, нас измеряют как по качеству, так и по количеству нашей работы. Но обучение тоже имеет значение. Независимо от того, будет ли способность LLM к кодированию стагнировать или продолжать расти, мы считаем, что всегда будет рынок для людей, которые глубоко понимают код. Если мы хотим быть (или продолжать быть) такими людьми, мы должны тщательно подумать о том, сколько своего мышления мы делегируем ИИ.
Как это часто бывает, баланс, вероятно, является лучшим подходом. Полный отказ от инструментов ИИ может принести больше вреда, чем пользы, особенно на рынке труда, где «навыки ИИ» часто занимают важное место. Но важно знать, когда и как его использовать: не делегируйте слишком много важного мышления ИИ.