Сложность поиска работы для junior-разработчиков

И это проблема не только самих разработчиков, но и сферы разработки в целом.

Раньше junior-разработчики занимались написанием кода согласно техническому заданию, предоставляемому более опытными коллегами. Сегодня эту нишу уверенно занимает код, сгенерированный ИИ. Казалось бы — замечательно, это ускоряет и удешевляет часть разработки, но junior-позиции были входными воротами для инженеров-программистов. На этой позиции специалисты нарабатывали первоначальный опыт, углубляли понимание правильной архитектуры (архитектуру описывали более опытные коллеги), глаза привыкали «читать» код, через код-ревью получали фидбэк на свою работу — в общем, полным ходом шёл процесс передачи опыта.

Сейчас можно сказать, что этот процесс нарушен. Не могу утверждать, что это однозначно плохо для индустрии, но это точно новый вызов, который сфере разработки необходимо будет как-то решить.

Ещё более высокий уровень абстракции

На самой заре профессии программирования, в 1940–50-х годах, программисты писали код в виде машинного кода. Это был самый прямой уровень инструкций для компьютера. Когда программисты писали этот код, у них под рукой была памятка для перевода двоичного кода в понимаемое человеком значение (число или операцию). Появилась потребность в том, чтобы человек мог больше сосредоточиться на самой задаче вместо занудного занятия переводом смысла в машинный код. Так появились ассемблеры — первые языки программирования, где программист мог писать код в более читаемом виде, а ассемблер переводил этот код в машинный код.

Вот этот самый процесс — когда программист думает и пишет код на более удобном языке и не думает детально о самом машинном коде — называется абстрагированием. Как правило, чем выше был уровень абстракции, тем легче было обучить человека программированию и тем эффективнее был процесс разработки в целом. Поэтому процесс абстрагирования продолжался всё дальше: появлялись языки программирования и другие технологии, которые помогали программисту больше сосредоточиться на самой задаче, минимизируя когнитивные затраты на сопутствующую работу.

Можно сказать, ИИ возвёл этот уровень абстракции на совершенно новый уровень. Разработчик программного обеспечения может на обычном человеческом языке описать задачу и получить часть имплементации проекта, но сегодняшняя ситуация в плане абстрагирования сильно отличается от предыдущих. Раньше промежуточные языки и технологии между разработчиком и компьютером работали по строгой логике: если человек написал безопасный, рабочий код на высокоуровневом языке программирования, не было необходимости проверять, какой код генерируется на более низких этапах. Сегодня, на мой взгляд, разработчик обязан следить за тем, какой код генерируется, так как у ИИ нет строгой логики — на одну и ту же входную инструкцию может быть сгенерирован разный код в зависимости от множества других параметров.

Увеличение издержек на различных платформах

С ростом использования ИИ наблюдается сильный рост объёма контента в самых разных сферах: музыкальные треки на стриминговых платформах, видео на видеоплатформах, статьи. Одно дело, когда речь идёт о качественном контенте, где ИИ пригождается как помощник, и совсем другое — когда контент генерируется в огромном количестве в надежде «взять количеством». Подобный низкокачественный контент, именуемый «AI slop», довольно быстро привёл к контрмерам со стороны различных платформ. Например, ещё в прошлом году Spotify сообщал, что за 12 месяцев удалил 75 миллионов «спамных» треков (ссылка на статью). Не все они связаны с использованием ИИ, но в статье отмечается, что быстрый рост подобного контента приходится на период распространения использования ИИ.

Подобное наблюдается и на App Store, и на Google Play. Частично об этом я писал в статье про публикацию приложений. Если коротко — из-за наплыва приложений приходится увеличивать сроки, затрачиваемые на публикацию на этих платформах.

Короткий итог

ИИ внёс серьёзные изменения в процесс разработки в целом, в том числе и в разработку мобильных приложений. С одной стороны, появился хороший помощник в работе, который ускоряет процесс разработки (который, к слову, является лишь частью проекта), но добавились и другие транзакционные издержки. Смотрю в будущее с оптимизмом, предполагая, что текущий тренд позволит расширить сферу кастомной разработки программного обеспечения. Раньше кастомную разработку могли позволить себе только средний и крупный бизнес, сегодня эта парадигма меняется.