Помощник или конкурент: как ИИ меняет работу разработчиков
За последние несколько лет ИИ-инструменты значительно улучшились, научившись не только помогать писать код, но и проверять его, находить ошибки и даже оптимизировать производительность программ. Это вызывает большой интерес общества и бизнеса к роли искусственного интеллекта в сфере разработки программного обеспечения.
Я расскажу, как именно ИИ влияет на процесс разработки уже сейчас и какие вызовы он создает. Далее читайте в эксклюзивной колонке для сайта 24 Канала.
Будет интересно Как в Украине разрабатывают новые дроны для глубоких ударов по России
В 2025 году вопрос о влиянии ИИ на работу разработчиков становится особенно актуальным. И не зря, ведь раньше ИИ был лишь вспомогательным инструментом, но сейчас он все больше вмешивается в процесс разработки и даже существенно его меняет, влияя на ландшафт профессии. Как бенефициар компании ООО "Нейролинк" (бренд Cosmobet), я замечаю это.
Такое положение дел формирует две противоположные позиции специалистов и сообщества: одни считают, что ИИ сделает работу программистов более эффективной, а другие, например директор компании Anthropic Дарио Амодей, что искусственный интеллект может заменить 90% программистов уже к концу 2025 года.
И если на момент появления языковых моделей обоснованным был скепсис относительно скорой замены работника на ИИ, то с развитием мощных языковых моделей и появлением специализированных ассистентов, таких как GitHub Copilot, Codeium и AWS CodeGuru, ситуация изменилась.
Например, в интервью Джо Рогану руководитель Meta Марк Цукерберг рассказал, что уже в этом году искусственный интеллект будет выполнять работу инженеров среднего звена – и он не единственный крупный технологический руководитель, который предсказывает конец профессии.
Поэтому реальность ставит перед разработчиками важный вопрос: как изменится их роль в ближайшем будущем, ведь похоже, что время идет отнюдь не на годы?
Как ИИ уже помогает разработчикам
Искусственный интеллект уже значительно влияет на работу разработчиков, предлагая немалый арсенал инструментов, которые помогают ускорить процесс написания кода и повысить его качество.
Среди самых популярных инструментов можно выделить GitHub Copilot, ChatGPT, Codeium и Tabnine. Много рассказывать обо всех нет смысла, ведь их возможности крайне широкие, но коротко о каждом я все же расскажу.
GitHub Copilot – это мощный инструмент, который использует ИИ для генерации кода и автодополнения. По сути он способен предсказывать, что разработчик хочет набрать дальше, и предлагает соответствующие кодовые фрагменты в режиме реального времени.
Copilot может создавать сложные структуры кода, такие как функции и классы, и работать с библиотеками и фреймворками на основе естественных языковых запросов. Это значительно сокращает время разработки и автоматизирует рутинные задачи.ChatGPT – этот инструмент сегодня хорошо известен, пожалуй, всем, даже тем, кому тема ИИ не столь близка. Тем не менее он позволяет использовать ИИ для написания кода подобно опытному программисту.
Он может быстро генерировать код с помощью четких запросов (промтов), например, создания определенной функции или отладки имеющегося кода. ChatGPT также помогает в отладке кода, идентифицируя потенциальные ошибки и предлагая улучшения.Codeium – это инструмент, который предлагает автодополнение кода в более 70 языках программирования. Он интегрируется с популярными IDE и редакторами кода, обеспечивая быстрые и качественные предложения по коду. Codeium также поддерживает рефакторинг кода, что помогает улучшить его эффективность и читабельность.
Tabnine – тоже использует ИИ для автодополнения кода, анализируя контекст разработки и предлагая соответствующие фрагменты кода. Он работает со многими популярными редакторами кода и IDE, обеспечивая быстрое и непрерывное его генерирование.
Автоматизация и оптимизация
Впрочем, ИИ-инструменты помогают не только в генерации и автодополнении кода, но и в его оптимизации и отладке. Практически все вышеперечисленные модели на это способны. Например, ChatGPT может идентифицировать ошибки и предлагать улучшения кода, повышая его эффективность и даже безопасность.
Но не все так просто, как кажется, когда читаешь перечень возможностей от разработчиков этих инструментов. Хотя все эти продукты могут значительно ускорить процесс разработки, они также делают много ошибок и часто в конце концов даже увеличивают количество времени на исправление. Нередко, кстати, случаются такие истории, как генерация нерелевантного кода.
Тщательный код-ревью
Думаю, уже понятно, что полностью полагаться на ИИ-генерированный код не стоит, поскольку он может допускать логические ошибки, не учитывать контекст бизнес-логики и даже создавать потенциальные уязвимости в безопасности.
Если выделять главные проблемы ИИ-генерированного кода, то они следующие:
плохое понимание контекста;
невозможность принимать решения на основе бизнес-логики;
отсутствие ответственности за код;
склонность к генерации некорректного или опасного кода;
ограниченность в работе с нестандартными или устаревшими технологиями;
зависимость от учебных данных.
Кроме того, как и любая другая информация, являющаяся продуктом работы языковых моделей, такой код требует тщательного исследования и проверки для обеспечения надежной работы и безопасности.
Поэтому ИИ является ценным инструментом для повышения эффективности разработчиков, но на сегодня он не способен заменить их экспертизу и ответственность за конечный продукт. Впрочем, разработчикам не стоит расслабляться, ведь машины прекрасно учатся.
Специалистам разного уровня следует адаптироваться к новым условиям. Junior-разработчикам придется больше работать над сложными задачами, развивать soft skills и обучаться тому, что ИИ пока не может сделать самостоятельно.
Каким должен быть разработчик ближайшего будущего?
Я уверен, что роль искусственного интеллекта и его участие в работе будет только масштабироваться и этот важный момент нужно учитывать. Специалисты должны следить за развитием языковых моделей и специализированных инструментов и адаптироваться, ведь, как я уже отмечал ранее, машины учатся быстро.
А в мире, где искусственный интеллект все больше вмешивается в повседневную жизнь и особенно в процессы разработки программного обеспечения, роль программиста меняется, и происходит это постоянно.
Разработчики должны адаптироваться к новым технологиям и развивать новые навыки, чтобы оставаться конкурентоспособными.
Prompt Engineering
Одним из ключевых навыков будущего станет инженерия подсказок, или prompt engineering. Это некое искусство, или скорее целая наука создания эффективных подсказок для ИИ, чтобы получать желаемые результаты.
Конечно же prompt engineering не заменит традиционное программирование, но он уже является дополнительным инструментом в арсенале разработчиков, который нужно осваивать, подобно умению писать SQL-запросы или настраивать CI/CD процессы.
Архитектурное мышление и бизнес-логика
Другим важным навыком является архитектурное мышление, которое позволяет разработчикам проектировать и интегрировать системы, включающие ИИ. Кроме того, глубокое понимание бизнес-логики станет решающим для того, чтобы разработчики могли эффективно сотрудничать с бизнес-отделами и создавать решения, которые соответствуют реальным потребностям компании.
Soft skills
Так называемые софт-скиллы, среди которых эффективная коммуникация и сотрудничество с командой, также будут приобретать все больший вес. Разработчики должны уметь объяснять технические решения не техническим специалистам и работать в составе команды для достижения общих целей.
Кстати, спрос на разработчиков в сфере искусственного интеллекта продолжает расти по мере развития технологии.
Человек и ИИ: команда, а не противники
Если же подвести итоги, то совершенно очевиден тот факт, что ИИ создал новый ландшафт в сфере разработки программного обеспечения. И, реагируя на эти изменения, разработчики должны научиться эффективно работать с новыми технологиями, чтобы максимизировать собственную производительность и творчество.
Это означает, что даже порог входа в профессию может драматически измениться в ближайшие годы, ведь сама суть программирования постепенно смещается от решения проблем путем написания кода к подходу, который позволяет решить те же проблемы быстрее благодаря ИИ-инструментам, так сказать, срезая некоторые углы.
Не стоит бояться того, что искусственный интеллект полноценно заменит вас на рабочем месте. Насколько бы хорошим он не был, ближайшее время это вряд ли станет массовым трендом. Например, генеральный директор IBM Арвинд Кришна тоже считает, что ИИ не заменит программистов в ближайшее время.
Он также отметил, что ИИ поможет повысить производительность программистов, а не сократить их количество.
Впрочем, существует и не слишком утешительный прогноз от Всемирного экономического форума, который утверждает, что, несмотря на новые возможности для рынка труда, ИИ также грозит сокращениями рабочих мест в некоторых сферах.
Так, 41% компаний планируют уменьшить количество работников из-за автоматизации задач. В то же время 77% работодателей намерены переобучать персонал для эффективного сотрудничества с ИИ.
Среди тех, кто больше всего рискует потерять работу: клерки, секретари и графические дизайнеры. Однако спрос на специалистов по созданию и интеграции ИИ-решений растет, что может способствовать развитию новых карьерных возможностей.
В этом контексте разработчикам нужно постоянно учится и адаптироваться к новым технологиям. Без навыков работы с ИИ риск остаться вне конкурентного процесса растет.
И если завтра, возможно, ИИ еще не заменит вас, то это точно сделает человек, который умело его осваивает и использует. В конце концов, это касается любых других инструментов почти в каждой отрасли – выигрывает тот, чей арсенал помогает быстрее достичь лучшего результата.
Колонка является личным мнением автора, редакция 24 Канала может не разделять ее.