Ранее профессия разработчика часто требовала запоминания множества деталей — новых языков программирования, фреймворков и библиотек, и этот цикл обучения никогда не прекращался. Осваивая одну технологию, специалисты тут же готовились к следующей.
Однако искусственный интеллект начинает нарушать этот устоявшийся процесс. Тем не менее, по мнению Адити Нанды, директора по экосистеме и индустрии в Intel, разработчикам не следует прекращать обучение; вместо этого им нужно научиться более избирательно подходить к тому, что они изучают.
Выступая на конференции DevSparks Chennai, Нанда отметила, что ИИ берет на себя значительную часть рутинной работы в разработке программного обеспечения, но это не снижает важности фундаментальных инженерных знаний. Напротив, это повышает их ценность, поскольку разработчики все чаще несут ответственность за определение того, что именно должен создавать ИИ, и подходит ли конечный результат для использования.
Она сравнила произошедшие изменения с появлением GPS. Водителям больше не нужно запоминать каждую дорогу, но они по-прежнему должны знать, когда нужно ускоряться, тормозить или разворачиваться, если впереди препятствие.
«Вам не нужно помнить синтаксис. Вам не нужно помнить фреймворки. Но вы должны решать, каков будет результат», — заявила она.
Для разработчиков это означает, что они могут тратить меньше времени на освоение каждого нового языка или фреймворка и больше времени на понимание систем, которые эти инструменты помогают строить.
Нанда указала на распространенную проблему генеративного ИИ: он способен очень быстро перевести идею в рабочий прототип, но вывод этого прототипа в рабочую среду требует совершенно другого набора навыков.
«Используйте ИИ, чтобы достичь первого прототипа, демонстрации, но не прекращайте изучать свои основы. Не прекращайте изучать ваши фундаментальные принципы инженерии», — подчеркнула она.
Эти основы выходят за рамки простого написания кода. Нанда акцентировала внимание на необходимости понимать рынок и проблему пользователя еще до принятия технического решения. Она сказала: «Необходимо понять, в чем заключается болевая точка рынка, потребителя или пользователя. Мы можем создать лучшие решения, но если никто ими не воспользуется, это пустая трата».
Знание системы — еще одна область, которую, по ее мнению, разработчики не могут себе позволить потерять. Поскольку приложения на базе ИИ перемещаются между облачными сервисами, персональными компьютерами, периферийными устройствами и центрами обработки данных, разработчики должны понимать, где именно должна выполняться нагрузка. Для корпоративного приложения это решение может затрагивать вопросы стоимости, безопасности и соответствия требованиям.
«Конфиденциальная информация отдела кадров или финансовая информация, например, может быть неприемлема для отправки за пределы среды организации. Таким образом, архитектура остается ответственностью разработчика, даже когда ИИ пишет части реализации», — пояснила она.
Различие между разработчиком, который понимает ИИ, и разработчиком, который полностью зависит от ИИ, становится особенно важным, поскольку ИИ делает разработку программного обеспечения доступной для людей, не обладающих традиционными навыками.
Нанда привела пример использования Cursor для быстрой разработки приложения в ожидании рейса. Создание функционально выглядящего приложения теперь занимает ничтожно мало времени по сравнению с прошлым. Однако подготовка такого приложения для миллионов пользователей представляет собой иную задачу.
«Профессионал будет достаточно ответственен, чтобы понять, как пользователь будет смотреть на это. Какие здесь ошибки? Как я могу это проверить? Каково соответствие требованиям? Какова стоимость? Где я буду хранить данные? Какова безопасность? Он задастся всеми этими вопросами», — отметила она.
Для Нанды будущее разработчика зиждется на трех основных компетенциях: понимание «почему», знание «как» и способность воплотить решение в реальность.
Первое — это понимание пользователя и проблемы. Второе — это системные и инженерные знания, включая архитектуру и компромиссы между стоимостью, эффективностью и сроками вывода на рынок. Третье — это реализация: проверка, надежность и обеспечение работоспособности продукта при его попадании к пользователям.
Она добавила, что хотя ИИ может усилить каждую из этих способностей, он не может снять ответственность с человека, создающего продукт.
«Используйте ИИ как инструмент. Используйте ИИ как усиливающий механизм. Не позволяйте ему думать за вас», — заключила Нанда.
Для разработчиков, работающих в отрасли, где фреймворк может устареть до того, как люди успеют его освоить, это может стать более полезным уроком: навыки, которые стоит сохранять, становятся все более ценными, даже когда меняются инструменты.
