Интервью с 1Сником. Как джунам использовать ИИ. Часть 2
Предлагаю перейти к более практической части и что-то посоветовать именно начинающим разработчикам. Вот я изучила того же условного Радченко, но я далека от того, чтобы использовать 1С:EDT, 1С:Напарник. Что мне делать, с чего начать погружение в чудесный мир ИИ?
Мне кажется, достаточно начать просто с обычных чатов. Я думаю, уже многие попробовали, многие активно с ними работают. Просто не у всех есть осознание, что их можно применять не только для каких-то бытовых вопросов, решения задач и т.д., а именно в своей профессиональной деятельности. Как уже говорили - есть вещи, которые тебе сейчас не очень понятны. Ты Радченко читаешь, и в какой-то части у тебя в голове не складывается картинка. Почему бы не обсудить это с моделью? Почему бы не задать ей вопрос, чтобы это в голове у тебя хорошо уложилось? Как минимум, можно начать с обычных чатов.
Это не отменяет того, что, чтобы уже реальные задачи решать, идти в компанию и начать работать, уже какая-то база у тебя внутри должна быть наработана. Как бы ты ни был с ИИ хорошо знаком, у тебя уже в голове модель системы должна быть. Это как раз про, что у тебя есть курс для тех, кто не совсем начинающий, но уже хочет в практику погрузиться, реальные практические задачи попробовать. Без этих знаний прийти и начать что-то делать не получится. В любом случае, базу - Радченко и т.д. - нужно освоить. Без неё перейти к практическим задачам бывает тяжеловато.
Начать, мне кажется, нужно с чатов. А потом, когда вы уже более-менее представляете себе структуру, как устроена платформа, какие есть объекты, открываете конфигуратор, и у вас не возникает паники, когда вы смотрите на дерево объектов -вы уже понимаете, что к чему, здесь уже можно переходить к кодовым агентам.
Я рекомендую начинать с Cursor’а: поставить Cursor, выгрузить вашу базу, конфигурацию. Здесь уже гораздо интереснее становится. Когда мы первый раз открываем в конфигураторе типовую, у некоторых чуть ли не паника возникает. Потому что куча справочников, документов, что они делают, для чего нужны, как с этим всем работать. А у тебя какая-то практическая задача, и как тебе это всё доработать? Или разобраться нужно, или доработать. На этом этапе модели могут очень существенно тебе помочь. Я говорю сейчас даже не про написание кода, а просто про то, чтобы научиться разбираться в том, что у тебя есть в твоей работе или в компании, в которую ты устраиваешься или собираешься устроиться. Ты можешь в чате кодового агента просто задать вопрос: как работает такой документ? С чем мне разобраться, чтобы встроить такой-то функционал? И он уже сможет сам походить по исходникам, по выгрузке, разобраться и тебе дать отчёт. Если тебе он непонятен, ты уточняешь: «Мне непонятно, объясни по-другому». Или: «Вот эта часть непонятна, давай сюда погрузимся», или «это всё не то, поищи ещё раз».
Если раньше вам приходилось залезать в код, его читать, пытаться понять, отлаживать, то здесь уже немножко работа упрощается. Какую-то часть этого анализа может сделать модель. Не за вас выполнить, а помочь вам его выполнить. И дальше вы уже быстрее начинаете ориентироваться, разбираться в конфигурации. И эти знания у вас сохраняются. Потом в дальнейшем вы их можете переиспользовать, осваивая какие-то новые вещи.
Ещё раз: начать можно просто с чата. В чате, в режиме поиска уточнять с моделью какие-то вещи, которые вам не очень понятны или в которых хотелось бы разобраться. Когда уже базовое понимание есть, можно поставить кодовый агент Cursor, выгрузить конфигурацию, в которой вы собираетесь работать или работаете. И вопросы, которые у вас по ней есть, задачи пытаться уже решать не в чате с ChatGPT, у которого нет никакого контекста вашей конфигурации, а в том же Cursor. Там точно такой же чат, но у него уже есть контекст: выгрузка, которую вы сделали, исходники конфигурации, структура. И он сможет вам более прикладные советы давать. Я пока не говорю про доработки кода. Начать хотя бы с этого: просто учиться общаться с моделью.
И ещё один важный момент, практический. Сейчас мы с тобой практические лайфхаки стараемся давать. Учитесь формулировать запросы модели, правильно ставить ей задачу, потому что это не так уж просто. Это тоже навык, который надо осваивать. И я думаю, что многие это ощущали на практике, просто общаясь с другими людьми. Когда тебе кто-то говорит что-то, и ты его не понимаешь или понимаешь не так, в итоге делаешь не то. И дело не в том, что ты дурак. Просто ты не понял, что сказали, или понял не так. А донести, переложить что-то из своей головы в чужую - тоже навык непростой. Он с рождения не дается.
Я расскажу такую историю. У меня есть помощник, который начинал осваивать языковые модели. Один наш клиент-бухгалтер пишет: «Смотрите, у вас тут ошибка. У меня должно это поле так заполняться, а оно заполняется не так. Исправляйте». Помощник тогда ещё только начинал использовать Cursor - как ему пользователь сказал, он так же Cursor’у и написал: есть ошибка, она управляется так и так, её надо исправить. Модель - она как джин, которому ты озвучиваешь желание. Он его выполняет, но понимает его по-своему, и в итоге получается не то, что ты хочешь. И здесь получилась такая ситуация: модель сожгла ему какие-то миллионы докетов, переписала кучу типовых модулей, чтобы эту ошибку исправить. И помощник очень расстроился, потому что это совсем не то, чего он хотел.
Мы с ним начали разбирать диалог, как модель всё решала, потому что она выводит по ходу решения всё, что она делает. И мы видим, что в самом начале её первая фраза была, что в типовом функционале так не предусмотрено, так оно не работает, что пользователь вообще-то был неправ, что всё заполнялось как нужно. Но раз уж ты мне написал, что это ошибка и что надо её исправить, я буду исправлять. И она пошла перепахивать эти модули.
В итоге, задача вышла очень дорого, и решение изначально было неправильным. Просто потому, что нужно было правильно сформулировать запрос. Не "исправь ошибку", а "разберись в ситуации". Видите - одно слово, два слова - и совершенно другой результат.
Один из моментов, который на начальном этапе хорошо бы освоить, - учиться правильно изъяснять свои мысли, правильно ставить задачу. Это полезно не только с языковыми моделями, это в принципе полезно. И в обычном общении внутри коллектива, рабочие вопросы решаете этот навык тоже очень важный.
Получается, языковая модель - это такой исполнитель. Как хороший солдат в армии: она не спорит с приказами. Сказали искать ошибку - будет искать ошибку.
Да, так и получается.
Ещё хотела спросить насчёт чатов. Есть ли смысл использовать бесплатные модели или нужно сразу искать платные варианты?
Это отличный вопрос. Он лежит очень в практической плоскости. Вопрос к практикам, к тем, кто уже с языковыми моделями работает.
Действительно, есть DeepSeek, который без проблем можно открыть в любом регионе без всяких дополнительных ухищрений и с ним поработать. Есть ChatGPT, модели Claude, которые так просто не откроешь и не используешь. Проблемы начинаются с того, чтобы по адресу зайти, и оканчивая регистрацией.
Если говорить про какие-то бытовые вещи, не касающиеся работы 1С, то здесь можно пробовать разные. Можно пробовать ИИ, которые ты используешь: тот же самый DeepSeek, Qwen и т.д. Но если мы говорим конкретно про нашу область, про 1С, то здесь по моему опыту нет конкурентов моделям компании Anthropic: Claude Sonnet, Claude Opus. Они рассчитаны на разработчиков, на корпоративных заказчиков. И они на удивление неплохо ориентируются в платформе, и в типовых конфигурациях некоторых что-то знают, и в синтаксисе 1С, и в терминологии платформы. Как будто бы общаешься действительно с 1Сником, с 1С-разработчиком. С другими моделями может быть по-разному: когда-то получше, когда-то похуже. Но в целом, в среднем, похуже.
Поэтому я бы рекомендовал всё-таки стараться получить доступ к сильным моделям, к проприетарным моделям. К тем же самым Claude, или хотя бы к последним моделям ChatGPT. Они более в этом плане полезные, и быстрее с ними достигаешь результата, чем с другими, с теми же китайскими моделями. Про наши я особо даже говорить не буду. Они совершенствуются, но пока ещё не дотягивают. Это моё мнение. Может, у кого-то другое.
С Алисой пока кодить на 1С не получится.
Не получится, и даже со сберовской моделью может не получится. У меня не получалось пока. Хотя знаю, что Сбербанк работает над своей моделью, старается, и 1С тоже пытается в обучающую группу включать. Может быть, в ближайшем будущем что-то изменится. Пока что мне кажется, Claude Sonnet выдаёт результаты лучше.
Ждём. Всё-таки технологии не стоят на месте.
Ты озвучил, когда рассказывал про модели, и мы тоже в заметках обсуждали эту тему: частые возражения, почему в работе программисты не используют ИИ.
Первое: я спросил, и она мне какую-то ерунду ответила. Я тоже так начинала. Это были бесплатные модели. И второе возражение: когда люди пытаются что-то сделать, и им ИИ не помогла, потому что она не понимает контекст. У меня был опыт только использования в режиме чата. Я как раз ощутила, что вот тут очень важен контекст. Сейчас с твоей подачи загрузила просто выгрузку конфигурации XML. Я ещё даже не дошла до этапа MCP-сервер настроить. [Загрузила] сами исходники конфигурации, и это уже прямо разница налицо.
Ты очень верно сейчас про контекст говоришь. Это ключевая вещь. Смотрите: вы – 1С-специалист, поймали вы на улице, скажем, самого умного доктора наук, и спросили его, как мне что-то там закодить. Что он вам ответит? Он совершенно не погружён в ваш контекст. Не знает, чем вы занимаетесь и т.д.
С моделями та же самая ситуация: откуда она знает вашу компанию, ваши задачи, конфигурацию? Всё это нужно ей дать.
Первый шаг - это то, о чём ты говоришь: выгрузить конфигурацию XML. Следующий шаг, ты упомянула его - MCP - дать доступ модели в базу, чтобы она могла не просто в исходнике посмотреть, а залезть в саму базу данных и посмотреть её структуру. Выполнить запросы, данные получить, заглянуть в журнал регистрации и т.д. И здесь такой вау-эффект получается: когда отдаёшь модели исходники, она уже тебе более осмысленно начинает отвечать конкретно по твоей конфигурации. Думаешь: «Да, неплохо». А тут уже следующий уровень: модель не только что-то на исходниках пытается объяснить, а конкретно на данных твоей базы.
У меня даже есть такой кейс, я его недавно на конференции показывал, где модель полностью решила вопрос пользователя. Получилось так: пользователь нашел ошибку в отчёте. Он пишет, что тут сумма такая получается, а должна быть другая. И скорее всего, это из-за того, что не тот вид цен подхватывается. Мне некогда было разбираться. У меня окружение уже настроено: подключены MCP-сервера, я пишу прямо в рабочую базу заказчика. Я просто перекинул сообщение пользователя в чат с моделью и потом вернулся посмотреть, что произошло.
Она нашла пример, который пользователь выдал, посмотрела в отчёте, в выгрузке запрос, которым отчет формируется. Нашла пример в номенклатуре, на котором пользователь показывает ошибку, проверила этот запрос. Поняла, в чём дело - не в виде цены, а в том, что там делается перемещение между организациями, и из-за этого цена так скачет.
То есть даже пользователю не удалось её сбить своим предположением. Она сама нашла правильную причину. И говорит, что исправлять. Я удивился, и говорю: «Давай исправляй». Она сама в запрос внесла исправления. И, там достаточно серьёзно всё настроено, сама закачала уже собранный отчёт клиенту и даже загрузила его в рабочую базу. И я просто написал пользователю: «Получается так? Проверь». Проверил - всё нормально, всё работает.
Если идти по ступеням освоения ИИ-агентов: начинаем с чата. Потом у нас идёт работа с контекстом выгрузки конфигурации - уже достаточно неплохо, но это не конец. Можно идти дальше и дойти до такого уровня, когда у вас уже решаются задачи. Но этот вопрос был, скажем честно, сравнительно простой. Он и человеком решается довольно быстро. Просто сам эффект такой получился, что даже включаться не пришлось в это.
Какие-то вопросы, в принципе, могут у тебя решаться полностью автоматически. Ты уже просто управляешь процессом, наблюдаешь за ним, а работает у тебя твой помощник. За счёт того, что ты ему просто дал весь необходимый контекст.
Вот разница того, что ты сказала: когда ты в чате спросил у модели и когда ты спросил у модели, у которой есть доступ ко всей необходимой информации: к исходником, к базе и т.д. Контекст - это штука определяющая, которая делает из какого-то непонятного человека не в теме, модели не в теме, действительно полезного помощника, который может реально тебе помочь.
Пока твой рассказ звучит достаточно опасно - модель сама в рабочую базу всё подгрузила. А как все эти страшные истории про то, что у людей нейросетка удалила прод, удалила все архивы, бэкапы и т.д. Как с этим быть?
Я не призываю никого повторять мой опыт. Как при химических опытах говорят: действовать только под надзором взрослых, на свой страх и риск. Я просто понимаю, как это работает, и знаю, какие запросы могу модели отправить, а что отправлять никогда не буду.
Плюс кодовый агент, который я использую, а это Claude Code. Он - локомотив кодовых агентов, который за собой тащит всё остальное. Всё самое новое появляется в нём. И в нём есть режим, когда он в процессе работы сам контролирует те вещи, которые мы сейчас делаем: они опасны или нет. Если они опасны, он их сразу же сам зарубает. То есть, какой-то уровень защиты он обеспечивает прямо из коробки. Поэтому я ему более-менее доверяю. Понимаю, что надо быть осторожным.
А случай, когда [агент] фотоархив удалил, или вообще диск D удалил - это Паша Чегодаев показывал: "Наведи мне порядок на диске D". И вот он показывает чистый диск. Ничего нет!
Идеальный порядок!
Да! Тут тоже к вопросу с джином. Надо уметь формулировать свои задачи, свои желания так, чтобы их правильно поняли. Одной строкой "наведи порядок" модели задачи ставить не надо. Вы должны зафиксировать видение, что вы в результате хотите получить, как это должно выглядеть. А не оставлять это видение - пусть модель сама решит, как должно быть.
Ты такую ситуацию рассказал, когда был вопрос от пользователя, и если бы мы без нейросетки решали, мы бы пошли в базу, что-то посмотрели, в конфигураторе бы посмотрели, как оно работает. Когда я была джуном, я так и училась. Потому что я попала во франч, там, естественно, разные конфигурации. Я считаю, что основная моя база в 1С, которая следующие 15 лет позволяет мне быть в теме, это первые 2 года во франче, когда я получила опыт с совершенно разными конфигурациями. Меня сегодня на ЗУП отправляли, завтра на УПП и т.д. И это как раз то, что давали джуну: посмотри, почему здесь не работает, или сделай печаточку, тут поправь что-то. Такие простые вопросы. Сейчас вроде как их забирает на себя ИИ. И возможно, условному тимлиду или ведущему разработчику где-то быстрее кинуть это ИИ, как ты это сделал, а не поручать эту задачу джуну. Вопрос: как же тогда мне, как джуну, развиваться, на каких задачах, где их брать, чтобы стать мидлом, сеньором и т.д.?
Я вижу тут два основных подхода. Они больше не от джуна зависят, а от работодателя, который пытается развивать у себя джуна.
Один из примеров, как этого добиться, чтобы джун рос и вырастал в мидла: озвучить, что мы, например, нашим джунам вообще в принципе не даём никак ИИ. Они всё делают только руками. И когда они уже достигают определённого уровня, мы начинаем подумывать о том, чтобы дать им более серьёзные инструменты, или пока оставить их также решать руками. Они воспроизводят ту старую среду обучения, которая была у нас долгое-долгое время. И, знаешь, наверное, это имеет смысл, потому что когда ты что-то делаешь руками, сам полностью пошагово идёшь в конфигуратор, ставишь сам отладку, запускаешь предприятие, смотришь значение переменной, потом лезешь в какие-то отчёты, берёшь обороты регистров и т.д. Это имеет смысл, потому что, когда это всё сами проделывают, это очень хорошо откладывается в памяти. И возникает понимание, как это всё работает.
Но я думаю, что это не единственный способ. Можно пойти немножко по-другому. Способ, который я чуть раньше озвучивал: джун пусть использует инструмент искусственного интеллекта, решает эту же простую задачу, про я которую говорил: почему не та цифра выдаётся. Он кинул в ИИ, она результат выдала. Но как ты можешь ей доверять, если отвечаешь за этот результат всё рано ты? Ты же не скажешь потом, если ошибка есть: «А мне Cursor сказал, я руки умываю». Нет, так не пойдёт.
Поэтому как вариант, ты можешь модель использовать как ментора. Ты получил этот результат - докопайся до сути, как этот результат был получен. Добейся того, чтобы у тебя было понимание, как это работает, как это сработало и как ты его получил. Понятно, что у тебя этот навык руками не формируется, он немножко трансформируется. Но так ли это плохо на самом деле?
Если подумать, мы привыкли, что есть такая старая школа, что все так учились. А теперь с новыми инструментами вроде бы этого уже не надо. И так ли это плохо, если у тебя этого навыка ручного не будет? У меня нет здесь однозначного ответа. Может быть, и нет. Может быть, у тебя просто другой должен быть навык – навык допытаться у модели и понять, правильно она сделала или нет. А не [навык] того, чтобы это всё сделать вручную. Ты можешь с моделью добиться того, что она тебе скажет, как это вручную проверить, если уж ты совсем дотошный. Она выдала результат, ты у неё спрашиваешь, как мне перепроверить вручную. Она тебе дала сценарий, ты пошёл, это сделал и тоже что-то освоил.
Это второй подход: когда джун работает с моделью, использует модель как своего рода ментора. Она тебе подробно объясняет всё. Не так, чтобы она тебе всё сделала, ты поверил и переслал дальше результат. А чтобы ты получил результат и вместе с моделью подробно разобрался, как вообще это верифицировать, и вместе с ней это сделал. В итоге ты тоже получил знания. Они немножко другие. Получил навык, он отличается от того, как если бы ты делал руками. Но хуже ли этот навык? У меня нет точного ответа, но я думаю, что нет. Почему бы этому навыку и не быть таким, если в будущем у нас уже такой большой необходимости и не будет. Может, даже в будущем у нас уже конфигуратора как такого не будет. Вендор нам сделает какой-то MCP-сервер, условно говоря, и мы сможем полностью разработку вести через модели.
В чатике.
Да.У тебя, может, и не будет такой возможности зайти в конфигуратор, что-то вручную посмотреть. Я не говорю, что это будет сегодня-завтра, но в какой-то перспективе.
Поэтому я думаю, что использование моделей как ментора в процессе решения каких-то задач - вполне нормальный вариант для того, чтобы расти из джуна в мидла. Ты также получаешь знания, ты также получаешь какие-то практические навыки. И я думаю, что с ростом этих навыков ты можешь решать всё более сложные задачи.
Здесь я с тобой соглашусь, и мне как раз второй вариант больше импонирует. Ты рассказывал про первый вариант, когда мы ограждаем джуна от ИИ и заставляем делать всё руками, у меня на это есть своя история из жизни. Не про ИИ, про джунов. Когда я ещё работала во франче, я собеседовала джунов. Это были очные собеседования в офисе, ещё до ковида. Я им давала просто листочек с ручкой и просила написать запросы на листочке. Руководствовалась тем, что если ты не можешь это так на листочке написать без конфигуратора, то, наверное, ты не очень хорошо понимаешь язык запросов. И потом я поменяла своё мнение по этому поводу. Потому что поняла, что нужно проверять те навыки, которые реально будет человек в работе использовать. Мне же не нужен программист, который умеет писать код на листочке.
Потом я и своё обучение стала так строить – пытаясь максимально имитировать именно естественную среду, а не искусственные рамки и ограничения, которых у тебя нет в реальной работе.
Да, очень верно. Я здесь с тобой тоже полностью соглашусь. Действительно, может быть, не надо будет даже работать с этими вещами, с кодом напрямую и т.д. Зачем тебе это руками уметь делать?
Предлагаю закончить советом для начинающего разработчика, который нас посмотрит: что можно пойти и сделать прямо сегодня?
Если вы ещё не начали осваиваться с языковыми моделями, я думаю, что пора это начинать делать хотя бы даже в обычных чатах. По тем вещам, которые просто непонятны. Почему бы не попробовать поговорить с моделями? С чего-то начать.
Главный месседж, который я хотел бы донести в нашем с тобой мини-подкасте: искусственный интеллект, хотим мы этого или нет, будет захватывать всё новые и новые области. Сейчас он достаточно серьёзно захватывает область генерации контента, изображений, программирования, потому что это везде генерация текста. И как бы мы к этому ни относились, это объективная действительность. С этим надо мириться.
Расстраиваться, что я в IT не вошёл 10 лет назад, и теперь мне ничего не светит, не стоит. Просто стоит смотреть на это в таком ракурсе, что джуны, какими они были условно 5 лет назад, сегодня они такими уже работодателю не очень интересны. Но интересны другие - те, которые начинают ИИ-инструменты использовать, осваивать, и не просто как некую волшебную палочку, а осознанно. Если говорить про обучение, то используют не просто как решатель задач, а как наставника, который ускоряет твой рост. Не как костыль, который рост останавливает, а который действительно помогает.
И если ты это умеешь, то, мне кажется, тебе в любом направлении сейчас гораздо больше двери открыты, чем если закрывать на это глаза и думать, что это хайп, который пройдёт. Хотя бы начать с освоения чатов. Если чаты вы уже осваиваете, если вы уже более-менее в платформе ориентируетесь, попробуйте поставить Cursor, выгрузить конфигурацию. Потратьте на это время. Может, у вас не полчаса-час, а чуть больше займет с этим повозиться. Но я вас уверяю, что эффект, который вы в итоге получите, потом многократно перекроет те затраты времени на освоение, которое вы сейчас вложите. Поэтому не закрывайте на это глаза. Осваивайте и внедряйте в работу. Это практика. Попытайтесь всё это именно на практике применять, в своих рабочих задачах. Тогда эффект будет таким, что сами удивитесь.
К вопросу практики: подскажи, с каким минимальным уровнем есть смысл на твой курс пойти?
Совсем уж джунам, наверное, тяжеловато будет. Потому что я этот курс ориентирую на начинающих в ИИ-разработке, но уже имеющих какое-то представление о платформе 1С.
Я объясню почему. У меня довольно много уроков, где я просто беру и полностью решаю задачу 1С-ную. Если ты вообще ничего про 1С не знаешь, не представляешь себе, как в конфигураторе что-то сделать, какие объекты платформы есть, и т.д., то будет тяжеловато. Поэтому мой курс рассчитан уже как минимум на джун+ - того, кто уже представляет себе, как устроена платформа и имеет хоть какое-то представление о том, какие задачи 1Сники решают. Задачи несложные мы решаем, поэтому быть крепким мидлом или сеньором совсем не обязательно. Примеры достаточно простые, жизненные, обычные обработки, которые мы напишем: обмен данными, загрузки заказов с сайтов - такие вещи. Джун+ - это минимум.
Если вы начинающий программист, можно как раз прийти на мой практикум по доработке типовых конфигураций, где мы смотрим как раз типичные задачи: обмены, загрузки, доработка типовых механизмов на примере управления торговлей. И уже с этими знаниями прийти к Владимиру на курс по ИИ и попробовать те же задачи или уже рабочие, если вы уже работаете, прорешать с помощью ИИ и сравнить ощущения.
У меня в курсе есть домашнее задание по каждому модулю. Тем, кто приходит, я сразу же рекомендую брать именно ваши рабочие задачи и пытаться их решать, потому что самый значительный эффект возникает, когда пытаешься применить знания сразу в свою текущую рабочую практику. Я думаю, что это интуитивно понятно. И мы здесь стараемся именно таким образом всех в ИИ-разработку включать.
Владимир, спасибо. Я думаю, много интересного у нас прозвучало за этот час. Кто ещё не подписан на канал Владимира, ссылку оставим в описании к этому подкасту. Можно там ещё много интересного почитать.
Да, Настя, тебе тоже спасибо за идею провести такой разговор. У меня в последнее время частенько выступления, но в контексте именно начинающих разработчиков не удавалось поговорить. Здесь мы с тобой эту тему затронули. Мне кажется, это тоже важно и интересно. Так что тебе тоже спасибо.