Как стать автором
Поиск
Написать публикацию
Обновить

ИИ в работе программиста

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.5K
Автор. Статья о эффекте "Зловещей долины"
Автор. Статья о эффекте "Зловещей долины"

Привет, Хабр!

Меня зовут Артём, в данный момент я работаю на должности ведущего программиста. Перед вами текст в стиле черновика статьи о размышлениях автора на тему современных ИИ инструментов в разработке программного обеспечения.

По примерным прикидкам года полтора-два назад (возьмем 2023-й год как точку отсчета) в информационном поле появились чаты с ИИ, которые помогали находить ответы на самые разные вопросы – от профессиональных, до личных. Проблема заключалась в том, что на тот момент Chat GPT хоть и был супер хайповым, но отличался проблемой – его база была сформирована на данных 2021-2022-го года… Устаревшие данные о библиотеках и документации породили отторжение во всех аспектах, когда хотелось узнать всё самое новое и свежее в .NET, C#, новых пакетах и подходах. Инструмент был слабо применим в работе – но всё ещё позволял закрывать базовые вопросы по типу «Такой-то метод Linq, как сделать это», и если метод был добавлен в .NET до 2022-го года – то всё было нормально. Нормально в данном случае – на троечку, потому как в то время GPT еще не мог в хотя бы «хороший» код. Хайп ИИ чатов рос, и к нему добавился Copilot от GitHub (аналог IntelliSense в Visual Studio) – это уже был заточенный под профессиональные задачи программиста инструмент. Первые пробы показались очень даже комфортными – инструмент мог анализировать файл и добавлять в него автокомплитом кусочки, которые скорее всего программист предполагал написать. Рутина по типу постоянного ручного добавления { get; set; } ушла в прошлое, как и ушло много другой механической рутины, можно было сконцентрироваться на решении задачи, а не писать каждый раз одно и тоже… С точки зрения инструментов автокомплита – в моей работе они крайне полезны и нужны, дабы высвободить (по моим оценкам) 10-20% времени написания шаблонного кода. Если прибавить к этому инструменты по типу «Нажми кнопку и твой Json превратится в класс DTO» - которые есть почти в каждой IDE – то высвободившееся от рутины время может достигнуть и 30% в зависимости от задачи. Так вышло – что наша работа это по большей части «monkey job», когда приходится делать простые и понятные штуки в огромном объеме.

В какой-то момент вся эта тема с ИИ в работе программиста дошла до абсурда. Появилось куча инструментов (ИИ-агентов, целых ИИ-ориентированных IDE, вручную настраиваемых при помощи MCP) и спекуляции на том, что ты можешь описать задачу человеческим языком – и всё будет в лучшем виде. Современные LLM знают, что происходило в мире буквально вчера, документацию знают в том числе и свежую. Тут появилось два лагеря программистов – первые «мемно» сидят на кресле, жуют чипсы, пьют смузи и смотрят как ИИ-агент пишет за них код днем и ночью, а вторые смотрят на «мемных» – и чувствуют полное разочарование и презрение. Вайб-кодеры заполонили инфополе по жестче, чем курсы «Выучи С++ в TrashBox за час и устройся за три ляма вечнозеленых в наносекунду», хайп мощнее старта Chat GPT. В комментах на Хабре куча баталий, куча статей о том, что малолетние бездари получили в свои руки спички и пошли учиться курить на сеновал…

И тут-то закралось первое (но не последнее) «фи» - чувство, что это не ты выполняешь работу, а всего лишь ДЕЛАЕШЬ ВИД, что ты программист, инженер, умный человек, который умеет что-то делать…

Вторым «фи» стало полное отсутствие в памяти того, что тебе написала ИИ – всё как в трубу. Эффект, о котором идет речь, называется «Когнитивная атрофия» (рекомендую ознакомиться с данной проблемой в общих чертах). Я больше не могу с наскока вспомнить как писать простые конструкции, это за меня два года делал автокомплит ИИ. В такие моменты помогает лишь полученное удовольствие от задачи, которую ты сам решил, сам написал и сам понял - как разгадать загадку очередного бага или бизнес-процесса, описанного в коде.

Третье «фи» - это мердж реквесты с тонной кода нагенеренного ИИ без человеческой руки…  МР блевотного содержания (на уровне картинок сгенереных ранним ИИ – где люди с шестью пальцами и кривыми лицами). Не покидает эффект «Зловещей долины» при просмотре такого кода – он ужасен в своей манере, в своем содержании, в своей сути тупого механического прямого решения в лоб и графомании… Код ИИ ВОНЯЕТ (code smell), если вы работаете программистом больше трёх лет, и ещё помните, что это такое. Его нужно дорабатывать, брать черновик, который сделал ИИ и еще кучу времени просидеть над ним, допиливая и вникая в него. После доработки, рефакторинга и понимания сути сгенеренного ИИ кода – может выйти конфетка. Процесс отладки чужДого, чужого кода, который писал не человек – это отдельная тема для разговора и страданий автора коммита и всех вокруг, кто столкнется с его кодом после…

Отвратительно стремление сделать так, чтобы ИИ решил твою задачу полностью, даже в тех моментах, где тебе - как человеку нужно проявить внимательность, сдержанность, погруженность в процессы, логику и просто здравый смысл… В большей степени ужасно, когда люди кормят GPT кучу файлов с кодовой базой проекта, потом копируют вывод чата и вставляют «как есть» его в файл проекта, коммитят и отправляют на ревью. Это так же отвратительно как инцест посреди банкетного зала на юбилее родителей и справление большой нужды посреди людного перекрестка в центре города в час пик (и много подобного). Извращенное неконтролируемое желание вывалить свою срамную тупость, лень и халатность прилюдно, на общее обозрение…

Профессия программиста сейчас меняется, как когда-то менялась профессия веб-дизайнера (ныне мертвая) – очень вероятно, что мы придем к системам (как веб-дизайнеры когда-то) вроде Figma, и технологиям вроде HTML5, CSS3 и Angular.  Больше не надо нарезать макеты в PSD – да, но отличный дизайн все еще нужен. Да – больше не надо писать вручную { get; set; }, но отличный код все ещё нужен. И пока что ИИ не справляется с тем, чтобы писать отличный код на уровне отличного инженера. Тонны генеративного кода ведут к энтропии кодовой базы, полнейшему хаосу стиля кода, проблемам с архитектурой, нагрузкой, надежностью. Да, код человека не идеален – так зачем к своим багам добавлять еще и запутанный булщит ИИ. Выход пока что только в том – чтобы использовать код ИИ под призмой здравого смысла и персональной ответственности за каждую написанную строчку.

Отлично, когда человек использует ИИ (да и любой другой профессиональный инструмент), но без извращения.  Вызывает восхищение, когда человек осваивает новые инструменты, каким-либо образом стремится идти в ногу со временем, старается развиваться интеллектуально и профессионально. Это прекрасно – когда я и мои коллеги пользуемся всем новым для того, чтобы сделать себя и окружающее лучше… Сознательная деградация же, как инцест, некрофилия и поедание падали вызывает в нормальном сознании тошноту, презрение и отвращение.

Не нужно закручивать гайки пальцами, есть инструменты для этого и многого другого - но надо понимать, что гайку надо крутить, крутить к тому же в нужном направлении, резьба бывает разной, и еще бывают, например, саморезы (где тоже есть резьба, но не для гайки)... И еще куча нюансов, о которых вам не расскажет вид одного только гаечного ключа в коробке с инструментами.

(Скормите статью Chat GPT если не желаете читать ее в оригинале)

Теги:
Хабы:
-2
Комментарии7

Публикации

Ближайшие события