Авторский канал @xpinjection - опытный Java Tech Lead, Delivery Manager и консультант с 15+ лет опыта в IT.
Я пишу о Java, распределённых системах, Agile, процессах разработки, инженерных практиках, QA, конференциях, инфраструктуре и многом другом...
Я уже несколько раз за последние пару лет затрагивал тему автоматизации примитивных задач программирования, для реализации которых по факту нанимается большая часть разработчиков уровня junior и middle (а в некоторых компаниях и senior, чего уж тут лукавить).
Может кто-то пропустил очередную новость из этой области: вышел онлайн бот-ассистент ChatGPT на базе OpenAI. Я не эксперт в области AI и ML, поэтому не берусь оценивать реализацию, но я не поленился и вдоволь поисследовал бота на типовых задачах из современной разработки. Результаты меня очень удивили и порадовали.
Бот с легкостью проходит типовые собеседования на middle Java разработчика, основанные на конкретных вопросах типа «как реализовать xxx?», «как работает yyy?» или «чем отличается xxx от yyy?». Причем, ответы не выглядят синтетическими, а сформулированы сбалансированно лаконично и информативно.
Для большинства middle уровня задач бот дает пошаговую инструкцию и дополняет примерами кода. Код не везде идеален, но решения рабочие, я большую часть не поленился проверить. Не уверен, что junior/middle разработчик написал бы лучше.
Особый интерес и удивление у меня вызвали ответы на сложные вопросы, на которые нет лаконичных ответов в документации или при поверхностном гуглении. Бот же на большинство из них выдавал вполне адекватные ответы с точки зрения подходов к решению задачи и даже пытался предложить конкретные примеры. Примеры не всегда были оптимальными, но выглядит очень круто.
С чем я не успел поиграть, но видел примеры в твиттере - это разбор запутанных примеров кода и их летальных анализ (или даже попытки рефакторинга). Очень интересное поле для экспериментов.
Мне кажется, что потенциальных применений в IT просто огромное количество. Я думаю, что скоро начнётся интеграция с инструментами разработки для генерации кода, генерации юнит-тестов по написанному коду, разнообразным подсказкам и т.д. Критически важным остаётся навык четкой и полной формулировки задачи или вопроса, потому что от качества входа ооочень сильно зависит результат на выходе.
В интересное время мы живем. :) А вы что думаете, конец кожаных мешков в разработке уже близок?