Разговоры о том, что программы скоро сами начнут писать новые программы, ведутся уже давно. Но, до последнего времени, такие перспективы не воспринималось всерьёз. Увы, 22й год всё изменил. Технологии искусственного интеллекта совершили качественный рывок. Самые смелые прогнозы воплощаются в жизнь. Попробуем разобраться – не пора ли программистам осваивать новые специальности?
Редкий программист решает какие-то уникальные задачи. Большинство – делает то, что до них было сделано сотни и тысячи раз, лишь с незначительными вариациями. О каком-либо творчестве в их работе речи не идёт. Почему так происходит?
Причин много. Человеческая память мала и коротка – невозможно удержать в ней значительный объём данных. Обычный программист за свою карьеру работал лишь с несколькими проектами. Думают «кожаные» медленно, мыслительные способности ограничены – разобраться в чужом коде сложно и на это требуется много времени. Поэтому, часто программисты предпочитают решать задачу заново, вместо того что бы найти и адаптировать уже готовое. Работа современного программиста – это постоянное переливание из пустого в порожнее.
То, в чём человек слаб – для искусственного интеллекта, наоборот, сильная сторона. ИИ, если можно так выразиться – «великий обобщитель».
Нейросети не думают. Они аккумулируют колоссальные объёмы данных, находят в них закономерности. И, на основе этого дают наиболее вероятностное решение поставленной задачи. Причём, благодаря гигарцовым процессорам делают это очень быстро. Ни один человеческий мозг на такое не способен.
На днях я проводил собеседование С++ программиста. Ответил на мои вопросы он посредственно. После, для эксперимента, я задал те же самые вопросы ChatGPT – и нейросеть прекрасно справилась! А ведь там были, в том числе, задачки требующие написать определённые функции и найти ошибки в примерах кода.
Понятно, почему у ИИ мои вопросы не вызвали затруднений – ведь все они достаточно тривиальны, я их задаю из года в год. Скорее всего, в базах данных, на которых ChatGPT обучалась, присутствовали подобные, в различных комбинациях. Вот нейросеть и сгенерировала тот ответ, который по её подсчётам и оказался наиболее вероятным.
Меня больше расстроило, что живой программист, несмотря на несколько лет опыта, с ними не справился. Возможно, мои вопросы просто выходили за рамки тех задач, которые он выполняет на своей работе ежедневно. Он привык работать через всякие библиотеки, а я спрашивал про основы С++, которые он уже забыл.
К сожалению, для программиста профессиональный уровень с годами опыта увеличивается не всегда. Мышление адаптируется к строго определённому типу задач, которые он способен решать эффективно, а когда задача чуть другая – программер впадает в ступор. Впрочем, это относится и к некоторым другим профессиям. А вот у нейросетей таких проблем нет! Они ничего не забывают.
Конечно, вопросы на собеседовании и реальные производственные задачи – несколько разные вещи. А может быть разница и не настолько велика – как я уже писал – в нашей работе очень мало уникального. В большинстве случаев это, действительно, «пережёвывание» в различных комбинациях уже написанного.
Сложный программный комплекс нейросеть вряд ли готова создать полностью (как минимум, пока). Но с отдельными «кирпичиками»: несложными подсистемами и функциями вполне способна справится.
Собственно, разработка подобных комплексов, упрощённо, организована так: тимлид разделяет большие и сложные задачи на маленькие и простые. И их, в свою очередь, делегирует менее продвинутым разработчикам. Далее он проверяет результат и либо возвращает на доработку, либо «сливает» в основную ветку кода.
И уже сейчас, ряд задач, которые традиционно поручаются джунам, могут быть выполнены нейросетью. Поэтому востребованность новичков находятся под угрозой. Дальше на очереди – мидлы.
Итак, у меня есть 2 новости – одна хорошая, вторая плохая. Хорошая заключается в том, что программисты пока ещё нужны. Прежде всего продвинутого уровня. А плохая в том, что скоро количество вакансий джунов сильно сократиться. Поэтому, если вы тимлид или сеньор, то вам, в ближайшей перспективе, беспокоиться не о чем. Но если вы только хотите стать IT-шником – у вас есть повод задуматься. Может сразу на завод? Хотя и там уже засилье роботов ((
В каком-то смысле нейросети могут выполнить роль трактора в сфере сельского хозяйства. Раньше, когда землю обрабатывали мотыгами и примитивными плугами, этим приходилось заниматься 90% населения. Иначе было не получить продукции в достаточном на всех количестве. Но один тракторист способен заменить 1000 крестьян. Хотя нельзя сказать, что трактора полностью вытеснили людей из сельского хозяйства. Люди этим всё ещё занимаются, но хватает уже 3% населения, причём продовольствие стало намного доступнее.
Стоило ли крестьянам в начале 20 века опасаться, что они останутся без работы из-за тракторов? Как мы сейчас понимаем – стоило. Большей части из них пришлось уйти в другие сферы деятельности – в частности, на заводы.
Впрочем, не нужно принимать мои прогнозы близко к сердцу. ИИ так быстро развивается, что пытаться предсказать что-либо даже на несколько лет вперёд бессмысленно.
В 1903г. самолёт впервые оторвался от земли. А через 11 лет с них уже скидывали бомбы на позиции противника...
Возможно, скоро нейросети упрутся в некий теоретический потолок и останутся лишь на уровне игрушек. Как японские роботы – красиво пляшут и поют, мигают лампочками, но, когда появляется реальная работа, вроде устранения последствий аварии на Фукусиме – они оказываются бесполезны; приходиться выписывать неказистых роботов из РФ, которые, тем не менее, могут выполнить задачу.
А может напротив – прогресс в развитии ИИ приведёт к обретению им разума. И тут уж программистам придётся волноваться не о работе, а о том, как пережить Батлерианский джихад.