Иллюзия компетентности: почему ИИ не заменит программистов, но может лишить их понимания
Beyond Recall and the Illusion of Competence
Автор разбирает два распространённых мнения об ИИ в программировании: что он бесполезен и что он сделает программистов ненужными. Он утверждает, что оба подхода ошибочны, так как сосредоточены на том, кто пишет код, а не на том, кто его понимает. Владение системой — это не авторство, а понимание её поведения, границ и зависимостей. Главная опасность ИИ в том, что он позволяет делегировать не только набор текста, но и мышление, создавая иллюзию компетентности. Особенно это критично для начинающих разработчиков, которые могут не развить навыки отладки и ментальные модели. Автор призывает активно использовать ИИ для рутинных задач, но сохранять за собой понимание и архитектурные решения.
Вы не учитесь системам, успешно изменяя их; вы сможете успешно изменять их, когда сможете объяснить, почему они выходят из строя.
- MarkusQ
> Так что если копирование полезного куска кода со Stack Overflow всегда было приемлемым
Это не "всегда было приемлемым"; копипаста была уничижительным термином еще не так давно, и людей увольняли за простое копирование кода с SO и использование его без понимания.
- kayo_20211030
> Разработчики, которые выделятся, будут те, кто понимает системы.
Это всегда было правдой. ИИ этого не меняет. Он просто переставляет некоторые элементы, которые идут до этого понимания. Объем и скорость — это вызовы, но понимание и суждение отличают хороших от великих.
Кстати: "системы" в моем мире включают не только технологические компоненты, но и людей, которые управляют, настраивают и координируют все части, а также процессы, которые всем этим управляют.
- WillEMac
Я думаю, есть некоторая тонкость в избыточности, требуемой для программного обеспечения.
Например, я работал в области чистых технологий, где PLC-программирование управляет турбинами, здесь требуется полное понимание. Каждый баг и каждая строка кода связаны с человеком, который должен быть в курсе, это стоит времени.
С другой стороны, я занимаюсь разработкой игр, и я не думаю, что есть ценность в полном понимании процесса отладки. Например, я случайно привязал отпускание пробела к двум действиям в мультиплеере, что вызвало глитч в кооперативе. Мне не нужно искать эту иголку в стоге сена для отладки, это плохое использование времени.
> Если написание кода станет дешевым и доступным для всех, то написание кода перестанет быть большим дифференциатором. Разработчики, которые выделятся, будут те, кто понимает системы.
Я согласен, особенно в отношении ограничений и граничных условий. В игре, над которой я работаю, фундаментальное понимание 500 рыб, управляемых GPU против CPU на экране, и их ограничений необходимо, чтобы быть хорошим архитектором, иначе эта игра будет работать на 10 fps.
- jebarker
Я нахожусь где-то посередине спектра разработчиков, которого описывает автор. Я использую ИИ ежедневно для ограниченного написания кода и множества отладок. Я согласен с автором, что все идет наперекосяк, когда вы перестаете по-настоящему проверять его вывод и просто нажимаете "принять", чтобы получить прилив продуктивности. Я не думаю, что использование ИИ для отладки означает, что вы должны так делать, это все еще выбор. Как ИИ-человеческая команда, я много раз сталкивался с отладкой проблемы в сложной системе, которую, как мне кажется, я не смог бы решить в одиночку или за разумное время. Я не думаю, что это отражает мои низкие способности — это потому, что ИИ привносит навыки, которых у меня никогда не будет, например, чтение и корреляция огромных объемов логов из множества запусков одной и той же системы на разных вычислительных узлах в кластере. Как только он находит иголку в стоге сена, я все еще могу потратить время на понимание и осмысление того, что он нашел.
- ssivark
Автор делает важное замечание о владении, но оно было размыто до понимания кода и отладки. Важно не только владение написанным кодом, но и владение идентификацией проблемы и выбором решения. Я недавно писал об этом с немного другого угла — разговорного темпа [1], но общая суть в том, что мы хотим, чтобы ИИ выступал в роли когнитивного компаньона и помогал нам понять ситуацию, выявить проблему и принимать решения — вместо того, чтобы ИИ убегал преждевременно "решать" проблему, а затем перекладывал на пользователя бремя выяснения того, что, черт возьми, произошло и как это было лишь отдаленно связано с намерением.
[1] https://woventhought.substack.com/p/ai-assistants-need-adapt...