«Да, и...»: стоит ли идти в программирование в эпоху AI
Yes, and
Преподаватель computer science из Montana State University отвечает на вопрос, который всё чаще задают студенты и родственники: стоит ли становиться программистом при наличии AI. Его ответ — «Да, и...». Он предупреждает, что AI опасен для джуниоров, если те перестают писать код: без этого не разовьётся умение читать код и контролировать сложность. AI может быть отличным ассистентом, но не генератором готовых решений. В будущем вырастет ценность коммуникации, понимания бизнеса и архитектуры.
Да, AI может сгенерировать код для этого задания. Не позволяйте ему. Вы обязаны написать код.
- layer8
> Является ли программирование → промптинг тем же, что ассемблер → высокоуровневое программирование? […] Я не согласен с этой аналогией. Компиляторы по большей части детерминированы, а текущие ИИ-инструменты — нет.
Дело не совсем в детерминизме. Дело в возможности рассуждать о связи между исходным кодом и скомпилированной программой с формальной точностью. Вы можете предсказать, какие изменения в исходном коде приведут к каким именно изменениям в поведении скомпилированной программы. То же самое нельзя сказать об изменениях в промпте LLM и выводе LLM.
Можно сделать ИИ детерминированным, зафиксировав источник случайности. Это всё равно не позволит вам рассуждать о том, как изменится его вывод, если (например) вы добавите или удалите слово в промпте. Единственный способ узнать — запустить LLM (= пропустить промпт через модель и посмотреть, что получится).
В этом фундаментальное различие. Изменения в исходном коде имеют предсказуемые и логически обоснованные последствия. Обычно вам не нужно компилировать код и тестировать его, чтобы знать, как именно изменение повлияет на поведение скомпилированной программы в соответствии с семантикой языка программирования. Это так, даже если компилятор использует некоторые вероятностные эвристики для компромиссов при генерации кода и, следовательно, не детерминирован на уровне машинного кода.
Повторюсь, разница в том, как вы можете рассуждать о поведении компилятора по сравнению с поведением LLM. Языки программирования созданы так, чтобы о них можно было рассуждать. С LLM […]
- tengbretson
> Я объясняю, что если они не пишут код, то не смогут эффективно читать код. Умение читать код, безусловно, будет ценным, возможно, даже более ценным в будущем программирования на основе ИИ.
Я не уверен в этом. Оглядываясь на то, как я начинал свою карьеру после выпуска, — я помню, что моё умение писать код значительно улучшилось за время учёбы. В то же время моё умение читать код, казалось, почти не улучшилось. Даже сейчас, после более чем десяти лет в индустрии, хотя оба навыка tremendously улучшились, я всё ещё чувствую, что моя способность читать и усваивать код не на том уровне, который я хотел бы или предполагал бы просто как результат моего опыта.
Вполне возможно, что чтение и письмо — это два отдельных (хотя и связанных) навыка, которые требуют целенаправленной практики и оттачивания сами по себе. Не могу говорить за всех, но для меня навык чтения кода по-настоящему начал развиваться только тогда, когда у меня появилась работа, где этого от меня ожидали.
Может быть, можно научиться читать код, не учась его писать. Определённо кажется, что можно научиться писать его, не учась читать.
- johsole
Я не согласен с автором. Я думаю, что по мере того, как LLM становятся лучше в программировании, всё более вероятно, что для поддержания работы и развития систем потребуется меньше разработчиков; узким местом в моей компании уже являются новые идеи, генерирующие доход. Мы наблюдаем примерно 30%-ное увеличение скорости создания новых функций, так что то же количество разработчиков строит гораздо быстрее. Я ожидаю, что это будет продолжаться. Я также вижу, что многие разработчики просто доверяют тому, что код правильный, они теряют связь с кодом.
Я не думаю, что стал бы поощрять своих детей заниматься программированием; вместо этого я бы посоветовал им стать предпринимателями, которые, возможно, будут использовать немного кода.
- ivanjermakov
Программисты создают компьютерные программы. LLM делают создание компьютерных программ более доступным и эффективным, что приводит к появлению большего количества компьютерных программ и повышению спроса на программистов. Мы не знаем, каким будет программирование через 10 лет, но почему спрос на хорошо работающие компьютеры должен упасть?
- samstress
Нет, но... лучший ответ, на мой взгляд. Учиться программировать — это серьёзное обязательство. Нужны годы, чтобы стать достаточно хорошим для создания программ профессионального уровня. Если экстраполировать улучшения, которые мы видели в ИИ для программирования только за последние 12 месяцев, это просто плохое вложение вашего времени.
Вместо этого, как отмечает статья, учитесь быть переводчиком между реальным миром и генерацией кода ИИ. Изучайте отрасли, которые относительно недостаточно обслуживаются технологиями. Не создавайте инструменты для разработчиков или инженеров. Изучайте строительство, горнодобычу, управление отходами, нефтегаз, производство, логистику, государственное управление... затем станьте связующим звеном между этой отраслью и способностью ИИ добавлять ценность.
(Акцент на относительно недостаточно обслуживаемых — все они имеют высокотехнологичные версии в некоторых местах, но будущее распределяется неравномерно.)