Программистом будет каждый: что ждет разработчиков в эпоху нейросетей
Программирование уже никогда не будет прежним, как не вернутся к привычным стандартам здравоохранение, ретейл, сферы образования и финансов. Искусственный интеллект меняет все, но самое главное — он меняет мышление.
О том, как большие языковые модели уже сейчас влияют на программирование и на программистов, рассказывает в колонке для Forbes СЕО университета "Зерокодер" Кирилл Пшинник
Маленький шаг для программиста
Большие перемены принято ассоциировать с широкой оглаской. Если происходит что-то великое, то об этом должны рассказывать все и повсюду. Однако то, что непосредственно влияет на нашу ежедневную жизнь, часто проходит тихо и почти незаметно.
Сейчас сложно представить, каким был мир до Google или "Википедии", хотя их появление не сопровождалось особым шумом — по крайней мере среди людей, не связанных с IT. При этом обоими инструментами в той или иной степени пользуются практически все: они настолько быстро встроились в нашу реальность, что многие уже не вспомнят, как пытались найти информацию в библиотеках и справочниках.
Первым языком программирования был Fortran — он появился в 1957 году. Сайт Stack Overflow был запущен в 2008 году. Больше полувека программисты писали код без возможности найти в интернете подсказку или даже готовое решение. Сейчас умение работать со Stack Overflow входит в учебную программу онлайн-университетов, готовящих будущих разработчиков.
Так же незаметно в нашу реальность вошли алгоритмы машинного обучения. Оглаской сопровождался запуск ChatGPT, но чат-бот всегда был просто платформой, одним из способов показать на понятном примере, как работают большие языковые модели. Алгоритмы машинного обучения существуют уже очень давно — это любые беспилотные транспортные средства, рекомендации в интернет-магазинах и на стриминговых платформах.
Нейросети влияют на образование, здравоохранение, ретейл, финансы — практически на все сферы деятельности человека. На программирование тоже, потому что с ними разработчики получили новый Stack Overflow без необходимости тратить время на поиск ответа. И это произошло практически незаметно.
И большой шаг для программирования
Нейросети для программистов можно разделить на два вида.
Первый — ассистенты разработчиков. Они подключаются к интерактивной среде разработки (IDE, Integrated Development Environment) и помогают программистам дописывать код. Их основная функция — автозаполнение. Нейросеть анализирует код в режиме реального времени и предлагает программисту решение, если он сталкивается со сложным моментом. По такому принципу работают GitHub Copilot (продукт коллаборации GitHub и OpenAI, разработчика ChatGPT) и watsonx Code Assistant от IBM.
Второй — генеративные нейросети, которые пишут код с нуля по запросу-промту. Им можно поставить задачу на естественном языке, например, "создай новый компонент" — и они ее выполнят. Так можно использовать ChatGPT или Gemini — нейросеть от Google.
GitHub Copilot был запущен даже раньше ChatGPT: последний стал доступен для широкой публики в ноябре 2022 года, тогда как "второй пилот" появился в виде плагина на JetBrains Marketplace в октябре 2021 года. В марте 2022 года его уже можно было подключить в виде расширения к одной из самых популярных IDE — Visual Studio Code.
Второй вид нейросетей для программирования пишет код с нуля по запросу-промту. Им можно поставить задачу на естественном языке, например: "У меня есть 100 CSV файлов, напиши код на Python, который собирает все эти файлы, фильтрует по три столбца с фильтром "paid" и собирает в один файл XLS, при этом каждый CSV получается на новой вкладке", — и они выполнят задачу. Так можно использовать ChatGPT или Gemini — нейросеть от Google.
Перемены в ИT уже привели к появлению так называемых гражданских разработчиков — людей без профильного технического образования, которые пишут программы на no-code инструментах. Человек, который сделал себе сайт-портфолио на конструкторе Tilda, — это гражданский разработчик. Языковые модели изменят IT еще сильнее. Человек без профильного образования сможет придумать и написать программу — например, чат-бот. Для этого ему не нужна будет помощь программиста. И собственную мини-программу он сможет развернуть на своем же ПК, без необходимости обращаться к чужим серверам для хранения и обработки данных, что уберет еще один риск — риск того, что использование нейросетей приведет к утечкам данных.
Нужны ли нейросети программистам
Если бы нейросети были неинтересны программистам и невыгодны бизнесу, они надолго не задержались бы. Но в конце 2023 года, сильно позже GitHub Copilot, собственного умного помощника запустила компания JetBrains — разработчик PyCharm, IDE для Python. Помощник занимается автодополнением и генерацией кода, подсвечивает ошибки, анализирует, тестирует, исправляет — делает все, что обычно делали разработчики вручную при помощи Stack Overflow.
В презентации Gemini от Google, где нейросеть сравнивается с GPT-4 по разным параметрам, есть отдельный пункт про генерацию кода. Согласно этим данным, эффективность генерации кода на Python от Gemini составляет 74,4% и даже превосходит показатель GPT-4.
Причем нейросети для кодеров не только вызвали первичный интерес, но и оказались полезны в более долгосрочной перспективе. Об улучшении продуктивности программистов после запуска Copilot рассказали сами специалисты GitHub. Они провели эксперимент, в ходе которого наняли 95 профессиональных кодеров и разделили их на две группы. Каждая получила задание — написать код для HTTP-сервера на JavaScript. При этом одна группа использовала GitHub Copilot, а вторая справлялась своими силами.
Группа с GitHub Copilot не только эффективнее справилась с задачей (78% выполнения по сравнению с 70% у другой группы), но и сделала это намного быстрее (1 час 11 минут против 2 часов 41 минуты).
В исследовании перечислены и другие позитивные стороны использования Copilot, такие как улучшение продуктивности и сохранение ментальной стабильности. Нейросеть снизила психологическую нагрузку, которой подвергаются разработчики при выполнении повторяющихся задач. Рутину взял на себя ИИ, а человеку осталось только творчество.
Нужно ли программирование миру
Нельзя сказать, что в какой-то момент программисты станут не нужны, просто их профессия претерпит некоторые изменения. Точно так же, как претерпевают изменения другие профессии — от сотрудника лаборатории, который анализирует данные пациентов, до маркетолога, который делает рекламные кампании.
Во время выступления на форуме Computex исполнительный директор Nvidia Джейсон Хуанг сказал, что скоро каждый человек станет программистом. Он представил суперкомпьютер DGX GH200, предназначенный для создания генеративных ИИ-моделей. Для этой системы, подчеркнул Хуанг, не имеет значения, как именно вы программируете. "[Теперь] каждый — программист. Достаточно просто сказать компьютеру что-нибудь".
Хуанг описал генеративные нейросети, которые создают продукт на основе промта. Промт — не код, его не нужно учиться писать. Задачи даются на естественном языке, на котором мы общаемся между собой.
Что Джейсон Хуанг не сказал, но подразумевал: нейросети не только снижают порог вхождения в сферу для разработчиков, они еще и экономически выгодны для компаний. Возможно, не прямо сейчас, потому что даже у Google Gemini процент корректного исполнения кода колеблется в районе 74-75%. С этим отчасти соглашаются и ученые MIT (Массачусетский технологический институт. — Forbes) целиком менять человека на машину пока довольно дорого.
Но если провести минимальные математические расчеты, результат окажется интересным. Средняя ежемесячная зарплата разработчика на Python в России составляет примерно 160 000 рублей. Люди работают, как правило, пять дней в неделю, восемь часов в день, 10 месяцев в году — минус отпуска, больничные, государственные праздники. С налогами выйдет около 10 000 рублей в день на одного программиста.
Сколько строчек кода в день пишет в среднем обыкновенный программист? Это около 100 строчек, как говорит в лекции "Большие языковые модели и конец программирования" Мэтт Уэлш, профессор информатики из Гарварда. Чтобы написать строчку кода, ChatGPT нужно около 10 токенов, стоимость 1000 токенов флагманской на момент написания статьи модели GPT-4 Turbo составляет $0,03. Это конвертируется в 2,75 рублей. Около трех рублей против 10 000 — дешевле более чем в 3000 раз.
Нейросеть способна генерировать код не хуже среднего junior-разработчика. Более того, условный GPT-4 уже "прочитал" больше книг по программированию и тредов на Stack Overflow, чем сможет прочитать любой разработчик за всю свою жизнь, и ему не нужно тратить время на поиск информации.
Программист эры Software 2.0
Андрей Карпаты, в прошлом сооснователь компании OpenAI, а сейчас руководитель направления разработки автопилота Tesla, описал разработчиков будущего не как владельцев огромных репозиториев кода со сложными программами, а как менеджеров. "Они собирают, очищают, обрабатывают, маркируют, анализируют и визуализируют данные, на основе которых работают нейросети". Он даже дал название новой эре кодинга — Software 2.0, которая характеризуется такими факторами, как определение проблемы и цели, сбор и подготовка данных, обучение модели, ее развертывание и интеграция, а также управление.
Если представить себе будущее программирования в виде команды из нескольких специалистов со знанием кода, которые "управляют" нейросетью, то стратегия станет предельно понятной. Ставку нужно делать на то, чему сейчас, к сожалению, уделяется довольно мало внимания: на софт-скиллы, или так называемые гибкие навыки. Пока их критически не хватает, что подтверждает опрос, проведенный Московской школой управления "Сколково".
Гибкие навыки — это то, что нужно в работе помимо непосредственных знаний: способность адаптироваться, критическое мышление, эмпатия и эмоциональный интеллект, умение вести переговоры, управлять, делегировать, ставить себе цели. В будущем, в котором каждый программист станет менеджером, это бесценные скиллы.
Понимание особенностей нейросетей и умение обращаться с ними, правильно составлять запросы и избегать "галлюцинаций", — еще один важный пункт в обучении будущих разработчиков. Если условный GitHub Copilot уже повышает продуктивность и разгружает специалистов, то умение работать с ним быстро станет обязательным условием приема в команду.
Соответственно, преображать придется образовательную систему, делая упор на гибкие навыки и внедряя новые предметы. Разработчик, умеющий пользоваться нейросетью, будет намного выгоднее для компании, чем разработчик без этих навыков.
Как выжить в эпоху перемен
Что делать компаниям в это новое время? Адаптироваться — интегрировать в ежедневные процессы виртуальных ассистентов, нанимать специалистов, которые хорошо понимают, что такое ИИ, и умеют с ним работать. Причем способность правильно определить задачу и составить промт — это гибкие навыки.
Гибкие навыки, софт-скиллы — то, на что тимлидам стоит смотреть в будущем. Если в команду приходит джун, который пока не слишком хорошо программирует, но грамотно выявляет проблему, составляет работающие промпты и использует нейросеть для разработки, возможно, он в перспективе будет даже эффективнее джуна с прокачанными хард-скиллами. Потому что нейросети не стоят на месте, генерация кода становится лучше с каждым днем.
Сейчас нейросеть превратилась в инструмент разработки, такой же, как дополнения к IDE и платформа Stack Overflow. Чтобы продолжать работать, нужно менять парадигму мышления, подход к обучению и найму сотрудников, а также к инструментам, которые разработчики используют каждый день. Нужно начинать программировать в формате Software 2.0, с упором на обучение и управление большими языковыми моделями.
Когда нейросети достигнут уровня, на котором смогут заменить разработчиков, бизнес окажется к этому готов, и сами программисты тоже будут к этому готовы. Процесс перехода станет не прыжком в ледяную воду, а аккуратным погружением с полным пониманием, как нужно двигаться, чтобы остаться на плаву.