ИИ: умрёт ли профессия программиста ★

Честно говоря, плач по «умирающей» профессии программиста меня очень сильно утомил. Я понимаю, откуда берутся пессимистические настроения, но сам я далёк от мысли, что программисты вымрут. Профессия не исчезнет — она просто изменится.

И дело не в наивном оптимизме. Дело в механике развития технологий.

Собственно, это уже не раз происходило. Каждая новая волна автоматизации забирала у программистов часть низкоуровневой работы — но не саму профессию. Исчезала механика, оставалась ответственность. Исчезала рутина, оставалось мышление.

Многим кажется, что изменения происходят впервые, просто потому что они не застали предыдущие волны. Но даже беглого перечисления ключевых слов, которые есть в памяти каждого айтишника, достаточно, чтобы понять: с каждым десятилетием программировать становилось комфортнее — и при этом программистов становилось больше, а не меньше.

В моём детстве я писал первые команды прямо в машинных кодах — шестнадцатеричными цифрами (!) — в тетрадке, отлаживая их в уме. Потом ждал, иногда целыми днями, когда смогу ввести их в компьютер, набирая прямо из тетрадки. Получив какую-нибудь ошибку, дома писал новую версию.

Это очень похоже на то, как когда-то программировали буквально все: писали код ручкой на бумаге, отлаживали в уме, потом дожидались выделения времени в машинном зале, вводили туда программу и смотрели, всё ли правильно работает.

Потом пришли ассемблеры. Потом компиляторы. Потом высокоуровневые языки. Потом фреймворки. Потом облака. И всё заверте…

Снижение стоимости разработки не убило рынок — каждый раз он только расширялся. Когда программировать становится проще, программировать начинают больше. Появляются новые продукты, новые интеграции, новые автоматизации, новые требования к качеству, безопасности, масштабируемости. Сложность системы растёт быстрее, чем упрощается инструмент.

Мы больше не программируем в машинных кодах. Очень мало кто пишет даже на ассемблере и даже Си многие считают чем-то очень далёким, почти устаревшим. Теперь «компьютерная смерть с косой» пришла за Пайтоном, Гоу, Растом и всем остальным, что многим так дорого. Будем описывать, что надо сделать компьютеру, на естественном языке.

И что именно из этого следует?

Если нейросеть способна переводить текст в код, это значит, что исчезает этап механической трансляции. Но разработка программного обеспечения никогда не сводилась к набору текста.

Я специально нашёл слайд презентации, которая с моим участием готовилась для президента нашей республики в 2021 году. Схема упрощённая; сегодня я добавил бы туда ещё пару-тройку прямоугольников и несколько циклов. Но даже здесь видно, что собственно разработка — перевод требований в программный код — это только один из многих этапов разработки программного обеспечения.

Схема цепочки создания ИС: поиск проблематики, анализ, ТЗ, UX, разработка, тестирование, приёмка.

Нейросеть может помочь почти на каждом этапе. Но помощь и замещение — разные вещи.

Разработчик высокого уровня даже сейчас способен закрыть большинство, а то и все (разве что насчёт ЮИкса у меня есть сомнения), этапы самостоятельно. Почитайте, например, историю известнейшей игры «Принц Перси» — её создал один разработчик, пройдя все без исключения этапы, включая дизайн.

Важно не то, что он был один. Важно то, что ему пришлось проявить себя во множестве ипостасей.

Представьте, что у этого разработчика в то время была бы под рукой мощная нейросеть. Было бы ему нечего делать? Вряд ли. Он бы быстрее перебирал варианты, быстрее тестировал идеи, быстрее исправлял ошибки. Но кто бы решал, какую игру делать? Кто бы определял, что она достаточно хороша? Кто бы нёс ответственность за результат?

Автоматизация всегда убирает уровень ниже. Программисты просто поднимаются выше.

Когда-то основной ценностью было умение правильно жонглировать регистрами процессора. Потом — правильно написать алгоритм. Потом — построить архитектуру. Сегодня — понять, какую систему вообще нужно строить и как она впишется в бизнес и мир.

ИИ не отменяет сложность. Он лишь сдвигает её на другой уровень абстракции.

Поэтому вопрос не в том, вымрут ли программисты. Вопрос в том, кто останется на уровне «переводчика текста в код», а кто поднимется на уровень «архитектора систем и решений».

Комментарии 25

Leonid № 1
Согласен. Но иногда страшновато смотреть как нейросеть пишет код лучше (или на уровне) разработчика с 15 летним стажем )
Алексeй Батищeв № 3
На мой взгляд вопроса два — что будут есть те, кто сейчас в массе выполняет работу которую уже сейчас нейросети делают быстрее дешевле и лучше. Второй — откуда возьмутся нужные для управления нейросетевыми программистами архитекторы, если всю техническую работу на которой эти архитекторы растут сейчас, будут делать роботы. На оба вопроса ответа у меня нет, и пока кажется что и профессия программиста в нынешнем виде, и процессы которые их воспитывают, действительно умрут.
Евгений Степанищев автор № 4
Беклог любого большого проекта переполняется, работы на годы вперёд, всё, что пишет нейросеть надо сначала ей объянить, а потом — проверить, нейросети иногда делают удивительно глупые ошибки, я уже писал про это.

Кроме того, есть отрасли, где замроские нейросети нельзя будет использовать, а своих у нас нет — это весь софт КИИ.
1
Ilya Chubchenko № 6
Модели с открытым весами тоже нельзя?

Плюс, понимание моделью архитектуры проекта и категорический запрет на завершение задачи без прогона юнит- и регресс тестов немного помогает.

Codex рекомендую попробовать, если еще не, это хороший пример описанного выше.
Евгений Степанищев автор № 8
Я всем рекомендую «Опус 4.6», он выше уровнем, чем «Кодекс»
Ilya Chubchenko № 9
Евгений Степанищев, Для своих задач ощутимой разницы не увидел, но охотно верю.
Кодексом уже некоторое время пользуюсь, пока доволен.
Евгений Степанищев автор № 5
Так нейросети и будут учить.
Алексeй Батищeв № 14
Сейчас это развитие идет в ходе карьеры, параллельно и благодаря работе. Не думаю что можно выучить архитектора без годов практики. Если этой практики органически не будет, её нужно организовывать искусственно, и платить за это.
Евгений Степанищев автор № 15
Конечно, как и за любое образование сейчас. В вузе учишься, платишь, проходишь практику там же. Выходить человек должен готовым специалистом. Сейчас это не так, потому что образование сломано.
Алексeй Батищeв № 16
Евгений Степанищев, Ну кстати силами и с применением нейросетей возможно и получится починить образование, так что да, это вариант
Oleg № 11
Использование LLM на текущем этапе нужно рассматривать как способ делегирования части своих функций другому сотруднику. Уровней абстракций это не касается, на мой взгляд. Программист (пользователь LLM) продолжает работать с тем же кодом. Просто становится больше архитектором, тимлидом — то есть должен уметь ясно ставить задачи, верифицировать результат и всегда быть готовым к тому, что «младший сотрудник» не справится.

Если же мы говорим о будущем, то нельзя исключить возможность, когда ИИ будет читать мысли человека и просто выдавать на выходе готовую program.exe, которая идеально соответствует задумке пользователя. Как это было написано, на каком языке, он даже не задумывается (как мы сейчас не задумываемся о машинном коде программы на Go). Вот здесь да, можно говорить об еще одном толстом слое абстракции.
Евгений Степанищев автор № 12
Поэтому я часто говорю, что моя работа с появлением нейросетей почти не изменилась — только теперь я делегирую не только людям.
1
Евгений Степанищев автор № 13
В этом уравнении нейросетям не хватает локальных знаний о человеке, которые не описаны нигде, мы эту модель человека вообще получаем на практике, в процессе воспитания
Leonid № 20
Но почему это типовая цепочка производства интеллектуальной собственности? Неужели нельзя нормально назвать)
Евгений Степанищев автор № 22
Ну слушай, для каждой ситуации свой вокабуляр, что в этом странного? Не симпозиуме не разговаривают как дома с семьёй и наоборот.
Leonid № 25
Выбор терминов показался очень странным. Из серии «хлопок», «отрицательный рост» и так далее
AlexTues № 23
В общем, да, соглашусь с вами: часть (и значительная) программистов, должна будет либо переучиться, либо уйти. Но вот поясните, Евгений, последнюю фразу о поднятии на уровень «архитектора систем и решений». Не очень понятно, о чем речь. Какие компетенции, какие навыки под этим подразумеваются на ваш взгляд? Какие IT- специализации (разработчики, аналитики и т.д.) имеют наибольшие шансы не попасть по жернова прогресса, не стать новоявленным луддитом, а действительно — вырваться из сложившейся ловушки и войти в новый дивный мир? Спасибо
Евгений Степанищев автор № 24
Ближе всего к тому, что я имею ввиду — бизнес-аналитики, но без аналитических навыков, на мой взгляд, до синьора не подняться. Как я сказал, топовые разработчики просто сменят свои языки на языки другого уровня — так называемые «натуральные».

На мой взгляд, человека пока списывать рано.

Во-первых, человека глубоко пока понимает только человек (и то не всякого всякий), потому что мы этому учимся всю жизнь через обратную связь, причём это знания формализовано плохо — психологи нарожали упрощённых моделей, но все они спорят между собой и нейросети просто негде прочитать о том как на самом деле устроена психика человека — мы просто сами не знаем как. Конечно, можно было бы научиться на результатах, но где их взять? Наши бытовые диалоги (надеюсь) в нейросети не сливают, а в фильмах и книгах всё же больше фантазии, чем правды.

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