Искусственный интеллект в программировании: чего ждать, чего бояться
Недавно прогремел GitHub со своим новым продуктом Copilot. Из ближайшего прошлого помнятся слова Kite и Codota (ныне Tabnine). Всё это щупальцы искусственного интеллекта, призванные изменить отрасль разработки программного обеспечения. В целом, шум затих, пена сошла, можно смотреть в более прозрачное будущее. В этой статье я опишу свои впечатления и переживания по поводу всего этого AI-я.
Первое впечатление
Я пробовал Codota (когда Tabnine еще так назывался) и попал в EAP для Coplilot. Разница колоссальна, а прогресс очевиден. За такой рывок стоит в первую очередь сказать спасибо инженерам из OpenAI, которые выкатили новое поколение алгоритма обработки естественного языка GPT3, на котором и базируется Copilot.
Около года назад, тестируя Codot-у, у меня не было ощущения, что AI добрался до уровня того, что он сможет как-то изменить рынок. Да, было прикольно посмотреть как 2 раза из 5 Codotа угадывала забежавшие вперед мысли. В какой-то момент это начало надоедать и мешать тем, что засоряет выбор вариантов. Дело в том, что зачастую я уже знаю что пишу, и автодополнение кода использую не для поиска вариантов решения задачи, а для того чтобы писать быстрее. Так закончилось мое первое знакомство с искусственным интеллектом как помощником при разработке. Удалил, забыл, назад не тянуло.
Буквально месяц назад получил EAP для Github Copilot и решил снова убедиться в своих выводах о том, что AI пока слишком туп чтобы чем-то помочь. Первые впечатления были просто ошеломляющими. Многострочный автокомплишен просто восхитил! Попробовал разные варианты и всегда находил нужный кусочек кода, который делал именно то, что я хотел! Мне, как прожженному Java адепту, стало невыносимо просто писать на JavaScript-е, в котором раньше ориентировался только используя мощь интернетов.
Заменит ли AI разработчиков?
Изначально мне показалось, что с таким прогрессом ответ на этот вопрос строго положительный. Более того, это дело ближайшего будущего. Виделось это так: достаточно писать комментарии, а потом выбирать наиболее подходящий кусочек кода. Определенные навыки для этого нужны, но явно не сеньорские. Этакий Comment Driven Development, и главный профит такого подхода — мечта любого разработчика — сразу документированный код.
Однако, буквально сразу вы начинаете замечать, что все предложенные кусочки кода как-то старомодны и не используют даже let и const. В этот момент тревоги за будущее своей зарплаты начинают отступать :).
Кто хочет погрузиться в глубину этого вопроса, очень рекомендую послушать мысли Тагира Валеева (https://twitter.com/tagir_valeev), с которыми я полностью солидарен: https://habr.com/ru/company/jugru/blog/534866/.
Проблема “среднего” кода
Продолжая тему старомодного кода. Для Copilot-a нет авторитетов. Он шерстит всю открытую кодобазу, и учится всему. Учится хорошему и плохому в равной степени, не отдавая предпочтения ни тому, ни другому. Чему научился, то и делает. Давайте теперь задумаемся над простым вопросом: какого кода на GitHub-е больше, старого или нового? Хорошего или плохого? Вот в том-то и дело.
И это первое беспокойство, на котором я бы хотел остановиться. Инструменты типа Copilot-a репродуцируют “средненький” код. А потом этот код летит на гитхаб увеличивая выборку “средненького” кода. На котором снова учится наш бездушный друг. Этакое сваливание к устойчивому положению равновесия… или скатывание в потенциальную яму.
Слово “средний” я применяю не характеризуя качество кода, а закладываю в него статистический смысл. Если у вас есть впечатление, что среднестатистический код на GitHub-е хорош, то волноваться незачем.
Откуда будем брать сеньоров?
Традиционные устои в отрасли таковы, что опытный разработчик, не желая делать простую и понятную для себя работу, норовит скинуть ее на более низкий уровень. Там, на более низком уровне зарплат, закаляется новое поколение сеньоров. Они набивают руки и шишки на тех самых простых задачах, получают бесценный опыт, поднимаются в грейде и уже сами начинают скидывать всю скучную для них работу вниз.
К чему это я. С Copilot-ом у меня сложилось впечатления, что уже очень скоро, вместо того чтобы ставить типовую задачу джуну, нужно будет просто нажать Tab и чутка поправить добавленный Copilot-ом код (все равно джунов надо ревьюить, как и copilot). Т.е. я поймал себя на мысли, что очень вероятно copilot со своим развитием сломает те самые традиционные устои. И вот второе беспокойство: если не нужны джуны, то откуда возьмутся новые сеньоры?
Что с лицензиями?
Это обсуждение уже прогремело в интернетах, но все же я на нем остановлюсь, чтобы коллекция беспокойств была полной.
Вот я написал код, дал ему опенсорсную лицензию и выложил на GitHub. Я хороший человек. Я делюсь своими трудами. Но хотел ли я, чтобы какой-то алгоритм использовал мой код для массовой репликации его частей в другие программы? Прямого разрешения я точно не давал, а тут уже все сделали и у меня не спросили…
Еще одна проблема с вирусными лицензиями типа GPL. Вот надергал вам Copilot какие-то куски из кодобазы, которая под GPL, и что теперь? Вы тоже обязаны присягнуть на верность этой лицензии? Или же мы считаем, что Copilot восстановил это все по памяти и не копировал код напрямую? Тогда проблем нет. Собственно, к такому заключению и пришли на просторах интернета.
Или еще вопрос такой. А если добавить маленьким шрифтом, что “я запрещаю AI использовать мой код в каких либо целях и в нарушении буду требовать миллиард долларов”. Видимо, придется наш искуственный интелект сначала научить юридическим тонкостями, чтобы он случайно не промотал все деньги своих хозяев.
Что с новыми технологиями?
Важная часть развития индустрии состоит в изобретении языков и фреймворков, позволяющих более оптимально решать те или иные задачи. В том числе с точки зрения утилизации золотых трудовых ресурсов. Но если Copilot и ему подобные становятся инструментами общего потребления, то все новые технологии будут вынуждены проходить “порог обучаемости”. Другими словами, пока нет достаточной кодобазы для обучения нейросети, технология не сможет рассчитывать на массовое применение. Уж не знаю хорошо это или плохо, но есть ощущение, что подобного рода инструменты могут серьезно замедлить прогресс в части вывода в массовое пользование новых языков программирования, а также добавления новых возможностей к существующим (java streams или let и const, упомянутые выше). Оно же касается фреймворков и библиотек.
Что делать с нежелательными артефактами?
Как создают искусственный интеллект: от кода до робота
Программирование искусственного интеллекта – мечта многих начинающих программистов. Мы собрали самую важную информацию, чтобы рассказать, как создают искусственный интеллект. Никаких скучных терминов — только факты.
Что скрывается за словосочетанием «искусственный интеллект» или AI (Artificial Intelligence), знает далеко не каждый. Большинство людей, вероятно, представляют себе ИИ как компьютер, который был запрограммирован на то, чтобы «думать» самостоятельно, принимать разумные решения и реагировать на раздражители. Эта идея не совсем верна. Никакой компьютер и никакая машина не могут действительно думать — потому что это требует наличия сознания, которого нет у «бездушной машины». Компьютер может делать только то, что скажет ему человек.
Кратко о программировании AI
Программирование искусственного интеллекта заключается не в обучении компьютера тому, как думать. Скорее, он будет запрограммирован так, чтобы обучаться и самостоятельно решать конкретные проблемы на основе своего опыта. Но и здесь речь идет не о собственном мышлении, а о подражании. Это также относится к решениям, которые принимает AI. Искусственный интеллект может взвешивать варианты, а затем делать выбор. Однако его выбор всегда будет исходить из тех параметров, которые были запрограммированы ранее.
Таким образом, искусственный интеллект может делать только то, что было предопределено для компьютера, но лучше, точнее и быстрее, чем человек. Кстати, если вы хотите научиться программировать, обратите внимание на нашу статью с советами для начинающих программистов.
Использование искусственного интеллекта

Искусственный интеллект разделяется на нейронный и символический (сильный и слабый). Первый пытается имитировать структуры и функции человеческого мозга. Последний ориентируется на соответствующую проблему и результат.
В повседневной жизни, например, искусственный интеллект программируется и используется в робототехнике. Он служит для управления производственными процессами или просто выполняет бытовые задачи. Искусственный интеллект также используется для визуализации. Самый популярный пример — распознавание лиц или отпечатков пальцев.
Еще один шаг в создании искусственного интеллекта — это системы, основанные на знаниях. Тогда в программу вводятся данные, связанные с программированием. Это позволяет искусственному интеллекту логично и самостоятельно давать ответы на заданные вопросы. Однако и эти «самостоятельные ответы» основаны только на тех знаниях, которыми изначально наделен искусственный интеллект.
Как создать искусственный интеллект?
А ведь действительно, именно желание создать совершенный искусственный интеллект, будь то игровая модель или мобильная программа, сподвигла на путь программиста многих из нас. Проблема в том, что за тоннами учебного материала и суровой действительностью заказчиков, это самое желание было заменено простым стремлением к саморазвитию. Для тех, кто так и не приступил к исполнению детской мечты, далее краткий путеводитель по созданию настоящего искусственного разума.
Стадия 1. Разочарование
Когда мы говорим о создании хотя бы простых ботов, глаза наполняются блеском, а в голове мелькают сотни идей, что он должен уметь делать. Однако, когда дело доходит до реализации, оказывается, что ключом к разгадке реальной модели поведения является. математика. Если быть немного конкретнее, то вот список её разделов, которые необходимо проштудировать хотя бы в формате университетского образования:
Теория вероятностей и математическая статистика.
Это тот научный плацдарм, на котором будут строится ваше дальнейшее программирование. Без знания и понимания этой теории все задумки быстро разобьются о взаимодействие с человеком, ведь искусственный разум на самом деле не больше, чем набор формул.
Стадия 2. Принятие
Когда спесь немного сбита студенческой литературой, можно приступать к изучению языков. Бросаться на LISP или другие функциональные языки пока не стоит, для начала надо научиться работать с переменными и однозначными состояниями. Как для быстрого изучения, так и дальнейшего развития прекрасно подойдёт Python, но в целом можно взять за основу любой язык, имеющий соответствующие библиотеки.
Стадия 3. Развитие
Теперь переходим непосредственно к теории ИИ. Их условно можно разделить на 3 категории:
Слабый ИИ – боты, которых мы видим в компьютерных играх, или простые подручные помощники, вроде Siri. Они или выполняют узкоспециализированные задачи или являются незначительным комплексом таковых, а любая непредсказуемость взаимодействия ставит их в тупик.
Сильный ИИ – это машины, интеллект которых сопоставим с человеческим мозгом. На сегодняшний день нет реальных представителей этого класса, но компьютеры, вроде Watson очень близки к достижению этой цели.
Совершенные ИИ – будущее, машинный мозг, который превзойдёт наши возможности. Именно об опасности таких разработок предупреждают Стивен Хоккинг, Элон Маск и кинофраншиза «Терминатор».
Естественно, начинать следует с самых простых ботов. Для этого вспомните старую-добрую игру «Крестики-нолики» при использовании поля 3х3 и постарайтесь выяснить для себя основные алгоритмы действий: вероятность победы при безошибочных действиях, наиболее удачные места на поле для расположения фигуры, необходимость сводить игру к ничьей и так далее.
Сыграв несколько десятков партий и анализируя собственные действия, вы наверняка сможете выделить все важные аспекты и переписать их в машинный код. Если нет, то продолжайте думать, а эта ссылка здесь полежит на всякий случай.
К слову, если вы всё-таки взялись за язык Python, то создать довольно простого бота можно обратившись к этому подробному мануалу. Для других языков, таких как C++ или Java, вам также не составит труда найти пошаговые материалы. Почувствовав, что за созданием ИИ нет ничего сверхъестественного, вы сможете смело закрыть браузер и приступить к личным экспериментам.
Стадия 4. Азарт
Теперь, когда дело сдвинулось с мёртвой точки, вам наверняка хочется создать что-то более серьёзное. В этом вам поможет ряд следующих ресурсов:
Как вы поняли даже из названий, это API, которые позволят без лишних затрат времени создать некоторое подобие серьёзного ИИ.
Стадия 5. Работа
Теперь же, когда вы уже вполне ясно представляете, как ИИ создавать и чем при этом пользоваться, пора выводить свои знания на новый уровень. Во-первых, для этого потребуется изучение дисциплины, которое носит название «Машинное обучение». Во-вторых, необходимо научиться работать с соответствующими библиотеками выбранного языка программирования. Для рассматриваемого нами Python это Scikit-learn, NLTK, SciPy, PyBrain и Nump. В-третьих, в развитии никуда не обойтись от функционального программирования. Ну и самое главное, вы теперь сможете читать литературу о ИИ с полным пониманием дела:
И да, вся или почти вся литература по данной тематике представлена на иностранном языке, поэтому если хотите заниматься созданием ИИ профессионально необходимо подтянуть свой английский до технического уровня. Если вы только начинаете путь к мечте, советуем записаться на бесплатный двухчасовой интенсив по основам программирования.
В остальном, ваше дальнейшее развитие будет зависеть лишь от практики и желания усложнять алгоритмы. Но будьте осторожны: возможно совершенный искусственный разум опасен для человечества?
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.
На этой неделе вы могли прочитать крайне мотивирующей кейс от Валерия Турова, где он рассказал об одной из своих целей, которая привела в профессию – желанию познать принцип работы и научиться создавать самому игровых ботов.
А ведь действительно, именно желание создать совершенный искусственный интеллект, будь то игровая модель или мобильная программа, сподвигла на путь программиста многих из нас. Проблема в том, что за тоннами учебного материала и суровой действительностью заказчиков, это самое желание было заменено простым стремлением к саморазвитию. Для тех, кто так и не приступил к исполнению детской мечты, далее краткий путеводитель по созданию настоящего искусственного разума.
Стадия 1. Разочарование
Когда мы говорим о создании хотя бы простых ботов, глаза наполняются блеском, а в голове мелькают сотни идей, что он должен уметь делать. Однако, когда дело доходит до реализации, оказывается, что ключом к разгадке реальной модели поведения является. математика. Если быть немного конкретнее, то вот список её разделов, которые необходимо проштудировать хотя бы в формате университетского образования:
Теория вероятностей и математическая статистика.
Это тот научный плацдарм, на котором будут строится ваше дальнейшее программирование. Без знания и понимания этой теории все задумки быстро разобьются о взаимодействие с человеком, ведь искусственный разум на самом деле не больше, чем набор формул.
Стадия 2. Принятие
Когда спесь немного сбита студенческой литературой, можно приступать к изучению языков. Бросаться на LISP или другие функциональные языки пока не стоит, для начала надо научиться работать с переменными и однозначными состояниями. Как для быстрого изучения, так и дальнейшего развития прекрасно подойдёт Python, но в целом можно взять за основу любой язык, имеющий соответствующие библиотеки.
Стадия 3. Развитие
Теперь переходим непосредственно к теории ИИ. Их условно можно разделить на 3 категории:
Слабый ИИ – боты, которых мы видим в компьютерных играх, или простые подручные помощники, вроде Siri. Они или выполняют узкоспециализированные задачи или являются незначительным комплексом таковых, а любая непредсказуемость взаимодействия ставит их в тупик.
Сильный ИИ – это машины, интеллект которых сопоставим с человеческим мозгом. На сегодняшний день нет реальных представителей этого класса, но компьютеры, вроде Watson очень близки к достижению этой цели.
Совершенные ИИ – будущее, машинный мозг, который превзойдёт наши возможности. Именно об опасности таких разработок предупреждают Стивен Хоккинг, Элон Маск и кинофраншиза «Терминатор».
Естественно, начинать следует с самых простых ботов. Для этого вспомните старую-добрую игру «Крестики-нолики» при использовании поля 3х3 и постарайтесь выяснить для себя основные алгоритмы действий: вероятность победы при безошибочных действиях, наиболее удачные места на поле для расположения фигуры, необходимость сводить игру к ничьей и так далее.
Сыграв несколько десятков партий и анализируя собственные действия, вы наверняка сможете выделить все важные аспекты и переписать их в машинный код. Если нет, то продолжайте думать, а эта ссылка здесь полежит на всякий случай.
К слову, если вы всё-таки взялись за язык Python, то создать довольно простого бота можно обратившись к этому подробному мануалу. Для других языков, таких как C++ или Java, вам также не составит труда найти пошаговые материалы. Почувствовав, что за созданием ИИ нет ничего сверхъестественного, вы сможете смело закрыть браузер и приступить к личным экспериментам.
Стадия 4. Азарт
Теперь, когда дело сдвинулось с мёртвой точки, вам наверняка хочется создать что-то более серьёзное. В этом вам поможет ряд следующих ресурсов:
Как вы поняли даже из названий, это API, которые позволят без лишних затрат времени создать некоторое подобие серьёзного ИИ.
Стадия 5. Работа
Теперь же, когда вы уже вполне ясно представляете, как ИИ создавать и чем при этом пользоваться, пора выводить свои знания на новый уровень. Во-первых, для этого потребуется изучение дисциплины, которое носит название «Машинное обучение». Во-вторых, необходимо научиться работать с соответствующими библиотеками выбранного языка программирования. Для рассматриваемого нами Python это Scikit-learn, NLTK, SciPy, PyBrain и Nump. В-третьих, в развитии никуда не обойтись от функционального программирования. Ну и самое главное, вы теперь сможете читать литературу о ИИ с полным пониманием дела:
И да, вся или почти вся литература по данной тематике представлена на иностранном языке, поэтому если хотите заниматься созданием ИИ профессионально необходимо подтянуть свой английский до технического уровня. Если вы только начинаете путь к мечте, советуем записаться на бесплатный двухчасовой интенсив по основам программирования.
В остальном, ваше дальнейшее развитие будет зависеть лишь от практики и желания усложнять алгоритмы. Но будьте осторожны: возможно совершенный искусственный разум опасен для человечества?
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.
Искусственный интеллект в разработке: как используют сейчас, что его ждет в будущем и боятся ли ИИ программисты
Не так давно Microsoft выкатил в публичный доступ ИИ Copilot. Он обучен на базе GitHub и помогает разработчикам дополнять код в зависимости от контекста. С нуля пока ничего не создает, но некоторые функции может написать целиком без участия программиста. И возникает вопрос — а не близок ли тот день, когда искусственный интеллект полностью заменит разработчиков, и, например, заставит их переквалифицироваться в бизнес-аналитиков.
Мы побеседовали со специалистами по ИИ и Data Science, чтобы оценить реальные перспективы искусственного интеллекта. А еще спросили разработчиков, героев наших прошлых статей, что они думают об ИИ и не боятся ли потерять работу из-за технического прогресса. Приходите в комментарии и тоже делитесь своим мнением.
Какие задачи ИИ уже автоматизирует
Вообще в разработке много задач, автоматизированных и без искусственного интеллекта. Те же библиотеки или фреймворки для frontend-разработки — уже автоматизация, и никакого ИИ тут не нужно.
Андрей Васнецов
lead ML-инженер и хозяин канала про нейросети
«Что касается применения именно ИИ, или точнее Machine Learning, его уже давно используют в статистическом анализе кода. Плюс раньше пытались сделать умный автокомплит с помощью нейросетей, например, Deep TabNine. Они тогда не получались, но нынешний GitHub Copilot по факту отличается от них только количеством данных и ресурсов, потраченных на обучение.
Пока искусственный интеллект лучше всего справляется с задачами, которые уже кто-то решал. Если в обучающей выборке есть нужные фрагменты кода — он их воспроизведет. Например, по этой причине Copilot так хорошо решает задачи из leetcode. Но в настоящей разработке таких задач не слишком много».
Сергей Колесников
«Сейчас AI, как бы это смешно ни звучало, шире всего используется именно для автоматизации разработки AI. Если мы корректно ставим задачу машинного обучения, выбираем датасеты и метрики, математически формулируем функциональные ограничения, то сама задача поиска лучшего решения — это задача оптимизации, и мы решаем ее методами машинного обучения. Хорошие пример тут — Neural Architecture Search и AutoML, инструменты для автоматизации перебора NN-архитектур под конкретные задачи. Google таким способом „придумал“ архитектуру EfficientNet, которая адаптирована под вычисления на мобильных девайсах.
У нас в Catalyst.Team тоже есть простая команда catalyst-dl tune, которая позволяет автоматизировать перебор архитектур и их гиперпараметров. То есть с точки зрения автоматизации разработка ML-решений движется семимильными шагами. И ML-разработчикам, которые думают о своей работе как о переборе моделей, стоит задуматься — их ИИ вполне может заменить».
Что сами разработчики хотели бы автоматизировать в своей работе
Сейчас разработчики склонны рассматривать ИИ не как своего врага или замену, а скорее как помощника. И многие рутинные задачи из своей работы они бы с радостью отдали на автоматизацию. Copilot уже помогает не искать готовые решения в сети. Но есть и другие задачи, с которыми ИИ потенциально мог бы справиться.
Сергей Колесников
«Я все жду, когда автоматизируют тестирование интерфейсов, как web/mobile, так и чатовых. Первичная проверка интерфейсов мне не кажется сложной задачей, которая меняется каждый раз, так что ее должно быть просто оптимизировать. Но я здесь не эксперт и подозреваю, что важнее проверять бизнес-логику под интерфейсами, и тут задачи уже могут сильно варьироваться. А вот проверка чат-интерфейсов — это интересное направление. Например, ИИ могут проверять, что все ответы носят нейтральный характер, или что диалоги проходят по заказанному сценарию.
Я лично хотел бы автоматизировать тесты и написание документации. Было бы здорово, если бы Copilot развивался в этом направлении — например, по сигнатурам методов предлагал, как их тестировать. Написание кода — меньшая из проблем, а вот тесты и документация — это сложно и часто рутинно».
Алина Коваленко
Senior Software Engineer в Uber, постоянный герой наших статей
«Я жду, когда ИИ научится назначать задачи саппорта в нужные команды/проекты. Чтобы от техподдержки приходили баг репорты, а ИИ сам пинговал нужную команду и назначал им задачу».
Почему ИИ не заменит разработчиков: ни сейчас, ни в будущем. Но явно изменит IT-индустрию
Вокруг Copilot уже возникла небольшая истерия — якобы благодаря нему некоторых разработчиков можно уволить, потому что работы для них теперь нет. Но это кажется преувеличенным. Вот что о «полной замене людей» думают специалисты по ИИ:
Сергей Колесников
«Когда люди видят успехи очередного AI, который „почти как человек“, они сразу бросаются менять и оптимизировать текущие процессы. Но есть нюанс — для реального использования ИИ вместо человека нужна примерно 100% точность, а пока это недостижимо. Особенно для задач, который носят последовательный характер — генерации текста или кода. Здесь малейшая ошибка в начале приводит к значительному отклонению в конце.
Плюс важно понимать, что задача разработчика — не просто написать код. Куда больше времени занимает понимание задачи, перевод ее в техническую постановку. И для этого нужен человеческий опыт и умение понимать друг друга. С этим люди-то не всегда справляются, что уж говорить об AI. Все нынешние решения по автоматизации — это красивые обертки вокруг стандартных инструментов, и в ближайшее время это вряд ли изменится.
Некоторые боятся, что ИИ заменит неопытных разработчиков, джуниоров. Но на самом деле понятие „джуниор“ и набор требуемых скилов для него все время меняется, специализируется, пока область работы становится сложнее. Часть навыков джуна просто отомрут, а часть наоборот, добавятся. Однако базовые вещи всегда будут с нами: математика, линейная алгебра, статистика, C++ ».
Андрей Васнецов
lead ML-инженер и хозяин канала про нейросети
«ИИ однозначно изменит требования к разработчикам. Способность заучивать алгоритмы и решать leetcode-стайл задачи перестанет быть актуальной. На первый план выйдут задачи, связанные с проектированием высокоуровневой архитектуры и взаимодействия компонентов. Это то, что сейчас называют system design.
Но о полной замене программистов на ИИ говорить однозначно рано. Даже если это и случится — это будет означать технологическую сингулярность. В этом случае потеря работы — меньшее, о чем нам предстоит беспокоиться».
Разработчики, которых мы опросили, тоже не видят в ИИ угрозы для себя. Никто не боится, что искусственный интеллект отберет у них работу, а на перспективы развития смотрят довольно скептически:
Георгий Хромченко
«Сейчас ИИ помогает „по аналогии“ решать уже сделанные задачи, и обучать его надо на базе исходников. Но индустрия программирования устроена так, что для большинства бизнес-условий нужно писать что-то специфическое, и исходников для этого нет. Типовой код в нашей индустрии принято выносить в библиотеки. И там, где ИИ мог бы помочь, его помощь обычно не нужна — мы просто используем эти библиотеки. Ассистенты по типу Copilot помогают на среднем уровне — там, где функция еще не внесена в библиотеку, но уже достаточно популярна. Но я считаю это небольшим улучшением, а не „заменой программиста на ИИ“.
По сути программист переводит результаты работы аналитика (или анализирует сам) в формальное логически непротиворечивое описание. И вот эта работа с произвольным текстом задания, понимание контекста, погружение в логические противоречивости — с этим ИИ в обозримом будущем не справится. Может быть, постепенно программисты станут кем-то вроде аналитиков, то есть будут общаться с источником требований и переводить их в описание, понятное ИИ.
А полная замена программистов — это уже общий искусственный интеллект, понимание причин и следствий мира. Это точно не горизонт ближайших десятилетий. К этому моменту, пожалуй, большая часть человеческих профессий будет автоматизирована. И само понятие работы будет восприниматься как-то по-другому».
Алина Коваленко
Senior Software Engineer в Uber, постоянный герой наших статей
«Для того, чтобы ИИ смог написать программу, кто-то должен сказать ИИ, что должно быть сделано, а это и есть программа. На самом деле в долгосрочной перспективе всё возможно, но это не произойдет так быстро, чтобы мы успели перестать быть нужными. ИИ нуждается в тренировке, калибровке и проверке прежде, чем сможет работать самостоятельно. Это уже не говоря о том, что пока что никто не написал/не обучил ИИ до какого-никакого приличного уровня.
Возможно, со временем меньше людей станет обучаться программированию. Ближайшая аналогия — самоуправляемые автомобили. Вряд ли они прямо сейчас станут единственным доступным транспортом — кто-то не захочет пересаживаться, кто-то не сможет их себе позволить, на каких-то дорогах они не могут ездить. А значит, процесс перехода займет некоторое время, и профессия водителя изживет себя медленно. Люди успеют приспособиться».
python-разработчик из нашей истории о Таллине
«Я считаю, что достижимый максимум — это симбиоз программиста и AI. Программисты будут придумывать, что сделать, создавать заготовки, а ИИ — оптимизировать их и писать по шаблонам.
Пока мы уже на пороге явления, когда наращивать вычислительные мощности не получится. Уже делают микросхемы по техпроцессу 2нм. А на таких размерах включаются квантовые эффекты. Если соберут рабочий квантовый компьютер, возможно, что-то и получится, но только при условии колоссальных затрат на поддержание его работы. На написание мелких программ его не пустят. Поэтому пока компьютеры не сравнятся по сложности и мощности с мозгом, без работы мы не останемся».
Закончим уже баянистым комиксом, который видели, наверное, все:
Он в целом довольно точно отражает суть. Даже если когда-нибудь ИИ сможет полноценно писать код с нуля, ему нужно будет ставить задачи. И люди, которые будут ставить задачи, останутся нужны. Может быть, это будут не программисты в нынешнем понимании, но вырастут они скорее всего именно из разработчиков.













