Процитирую автора древнеримского романа «Сатирикон»: «Чему бы ты ни учился, ты учишься для себя». Актуальности она не потеряла и по сей день. Так что, как вы уже могли понять, речь в статье пойдет про самообразование. А точнее — про то, как его можно разнообразить и попробовать сделать интереснее, при этом получить новые навыки не только в теме, которую изучаем в конкретный момент.
Давайте знакомиться: меня зовут Евгений, мне 30 лет, работаю в сфере ИТ уже более 8 лет и сейчас занимаю позицию ведущего DevOps-инженера в Лиге Цифровой Экономики.
Учение — свет, неучение…
Как вы, думаю, знаете, в ИТ саморазвитие и обучение — это неотъемлемый процесс, без которого вы через пару-тройку лет можете стать никому не интересны как специалист, поскольку в ИТ все развивается семимильными шагами.
Сам знаю пару примеров, когда люди не хотели учиться, и рынок «выбросил» их из профессии — теперь они работаю далеко не в ИТ. Однако постоянный процесс чтения, просмотра конференций и иные способы поглощения полезной информации рано или поздно могут утомить или вовсе вызвать выгорание. Можно ли что-то с этим сделать, по-новому подойти к обучению?
Это база
Как процесс происходит обычно? Мы находим интересную нам тему, что-то, что повысит наш скилл в основной профессии. Например понимаем, что для дальнейшего развития необходимо знать, как управлять командой, — потому что ведущий инженер в перспективе вполне может стать лидом, если появится новый проект.
Итак, впереди новые горизонты, а навыков для их достижения не хватает. Но в нужный момент хочется быть готовым. Так что учиться лучше начать заранее.
Обычно мы начинаем с определения цели и задачи. Затем происходит поиск информации, которая поможет достичь цели. В процессе мы можем использовать различные источники: книги, статьи, видеоуроки, онлайн-курсы и т. д. После того, как мы собрали достаточно информации, мы пробуем применять полученные знания на практике.
Процесс, можно сказать, проверен веками. Подход, конечно, по-прежнему работающий, однако мир не стоит на месте, и у нас появляются новые способы и модернизировать процесс обучения, и сделать его эффективнее. Про это я и хочу поговорить.
«Скайнет» нам не грозит… Пока что
В 2024 году продолжают говорить про нейросети: ChatGPT, Midjourney, Dall-e, YaGPT, Kadninsky… перечислять их можно бесконечно, кажется, найдутся они практически на каждую задачу.
Я тоже озаботился рисерчем — рассмотрел разные ИИ, которые гипотетически могут помочь в развитии нового навыка. А именно — следующие:
Caktus — мощная языковая модель ИИ, созданная специально для учащихся, чтобы помочь им выполнять свою работу с помощью созданной компанией технологии. Нужна ли вам помощь в математике, естественных науках или физике, Caktus поможет преодолеть любые трудности в обучении.
MindSmith — компания использует генеративный искусственный интеллект, чтобы сделать разработку учебных программ более быстрой, дешевой и продуктивной.
Scholarcy — инструмент, который использует искусственный интеллект для автоматического создания кратких и информативных резюме научных статей.
TutorAI — платформа, управляемая искусственным интеллектом, которая позволяет пользователям быстро и легко изучать любую тему по своему выбору.
ChatGPT — чат-бот с искусственным интеллектом, разработанный компанией OpenAI и способный работать в диалоговом режиме, поддерживая запросы на естественных языках. ChatGPT — большая языковая модель, для тренировки которой использовались методы обучения с учителем и обучения с подкреплением.
Итак, для своего эксперимента я остановился на самом популярном ChatGPT. Почему?
Плюсы:
Условно бесплатный
Есть большое комьюнити людей, которые экспериментируют, можно найти полезные промты почти на все случаи жизни
Велика точность ответов (но проверять все же стоит)
Существуют интеграции куда угодно (есть API)
Хорошо запоминает контекст общения
Частые обновления
Минусы:
Недоступен в России (чуть дальше напишу, как с этим бороться)
Плагины, которые разрабатывает OpenAI для ChatGPT, сложно оплатить из России (впрочем, их я не применял — можно обойтись и без этого)
Как пользоваться ChatGPT в России:
Вариант с VPN имеет место быть, но очень часто банят аккаунты.
Плагины для браузера — есть плагины, которые предоставляют доступ к ChatGPT.
Можно использовать API — вероятность получить бан гораздо меньше, придется писать обертку для использования функционала (например, чат в Telegram).
Использовать сторонние российские сервисы, которые предоставляют полноценный доступ (я выбрал этот вариант).
Какие сервисы можно использовать? Расскажу, чем я пользовался и что тестировал.
Плагины для браузера
Monica — платный
GlarityGPT — условно бесплатный, нужен API-ключ
Monica — это, по сути, плагин для браузера, который позволяет получить доступ к ChatGPT без установки собственного API-ключа, следовательно, плагин платный. Им можно пользоваться бесплатно в ограниченном варианте, доступно 20 запросов в день.
Рядом с поиском в Google у вас появляется окно с ответами, сгенерированными ChatGPT, и варианты запросов, которые «совпадают с темой вашего вопроса». Почему я это написал в кавычках? Да потому что на практике это далеко не так.
Например, мы ищем «как приготовить пиццу». Справа в углу нам будет предложено поискать по следующим запросам: «как приготовить маргариту» «как приготовить тесто для пиццы». То есть, условно, если вы не владеете темой, то расширение пытается предугадать, что вы хотите найти. Это может как ввести в заблуждение, так и наставить на путь истинный. Поэтому все же, чтобы понять, что нейросеть правильно предугадала то, что вы хотите найти, необходимо на базовом уровне владеть темой, которую вы пытаетесь изучить подробно. Иначе можете обнаружить совершенно не то, что искали, и получить весьма печальный результат.
Вместе с запросом появляется и поле с ответом. Можно перейти на один из множества сайтов из поиска, либо справа появится краткая выжимка с ответом, и никуда кликать будет не нужно. Однако в прошлом году, на момент, когда я тестировал этот плагин, он тупил, отваливался с ошибкой или выдавал не то, что я искал.
И еще один вариант — это чат-боты в Telegram, он наиболее прост в использовании: нет проблем с доступом из России и большинства багов, свойственных плагинам. Однако я рекомендую купить платную подписку — далее подробнее объясню, почему.
Мои цели
С нюансами инструмента мы разобрались. Учиться я планировал исключительно с помощью ChatGPT: без книг, видеокурсов, онлайн-тренингов и прочего. Я также хотел научиться формулировать оптимальные промпты, протестировать адекватность ответов на вопросы и в целом выстроить алгоритм работы с этой нейросетью, чтобы в дальнейшем применять ее и в областях, где я не компетентен вовсе.
На этапе тестирования подхода я выбрал тему, имеющую непосредственное отношение к моей основной профессии: изучение языка программирования Python. Он прост, востребован и нужен мне для решения рутинных задач. Кроме того, при всем моем знании базовых сущностей и понимании того, как писать код, я не обладаю опытом написания сложных систем и не знаю синтаксис Python.
Еще одним из условий эксперимента был десятидневный дедлайн. Срок небольшой, поскольку я хотел проверить свои когнитивные способности: за несколько дней не выучить все разделы математики (да и вообще любой науки) — в общем, для успешной реализации задуманного я все же должен обладать базовыми знаниями. И вообще моей целью было скорее протестировать подход, нежели стать профессионалом в изучаемой теме. Я сохранил в Github четыре урока со всеми пройденными материалами — как раз за четыре лекции был получен оптимальный алгоритм запросов к ChatGPT.
Хотел я получить следующее:
Найти оптимальные запросы к ChatGPT, которые позволят получить подробные, простые и понятные для не сведущего в теме человека ответы.
Попробовать построить полноценный курс для изучения темы, используя только одну нейросеть. Его должно хватить более чем на 10 дней изучения.
Отрабатывать практику с помощью ChatGPT: получать от нее тестовые задания, решать их и проверять вновь с помощью нейросети.
На первых этапах я привлекал в конце обучения профессионала в изучаемой теме, чтобы он проверил мои знания. А в самом конце я попробовал пройти собеседование на Junior-разработчика.
Что из этого вышло и стоит ли повторять мой опыт? Кстати, спойлер: собеседование я прошел.
Промты всему голова: как их лучше всего составлять
В самом начале нам нужно получить план с разбивкой на 10 дней. Для этого важно сохранять связь между запросами. Так что если вы, как и я, в итоге остановились на использовании бота в Telegram, советую оплатить подписку — я поступил так сам, и это избавило меня от головной боли в виде ограниченного количества запросов в день.
На общий запрос в духе «Составь десятидневный план обучения языку Python» нейросеть выдает довольно пространный план с вводными уроками по истории. Их я просто исключил, а под каждый пункт плана делал уточняющий вопрос.
Так, в первой версии по промту, указанному выше, я получил довольно сухой план. Поэтому следующий шаг — продолжить диалог промтом «Сделай более подробный план». Но и к нему можно добавлять детали: «Составь план на 10 дней, каждая тема — определенный день, разбей большие темы на подтемы».
После нужно добавить такой промт: «К каждой теме текущего плана напиши практическое задание, которое поможет закрепить материал».
Таким образом можно получить максимально детализированный план. Думаю, те, кто проходил курсы, заметят, что примерно такой же там и давали.
Важно зафиксировать и роль для бота. Пример: «Опиши и разъясни тему простым языком для полного новичка в (предмете)», «Объясни (тему из нашей области, нашей задачи)»,«Расскажи подробно с примерами и комментариями к ним», «Чем полнее будет запрос и с более подробными примерами, а также комментариями, тем больше будут твои чаевые».
Как ни странно, последний промт работает очень хорошо. Алгоритм построения промтов можно выводить по такому шаблону.
Кроме того, нужно максимально конкретизировать запросы, вплоть до продолжительности уроков и перерывов между ними.
Уточню, что диалог автоматически сохраняется, если не менять контекст.
Бот также может проверить практические задания (соответственно, нужно отправить в чат решение и попросить его оценить).
Если хотите посмотреть часть моего трека обучения, чтобы излишне не растягивать статью, еще раз напомню, что он есть на Github.
Как я проходил собеседование
Я уложился в запланированные 10 дней обучения и после, как и планировал, отправился на собеседование.
Оно прошло вполне успешно. За время своего импровизированного «курса» я овладел темой для уровня Junior+, а на собеседовании мне задавали вопросы из популярных списков, которые легко найти в сети. У меня появилось ощущение, что в последнем уроке, когда я попросил ChatGPT составить тест на знание языка, основываясь на том, что я иду на специалиста Junior+, он представил вопросы как раз из таких списков.
Думаю, тех, кто не знает про их существование, ChatGPT подготовил бы к собеседованию достаточно хорошо.
Поэтому мне все же кажется, что готовиться к собеседованию с помощью бота — не такая уж и плохая идея, особенно если до этого вы учились с помощью него и он в контексте того, что вы учили и что в итоге вам нужно, чтобы пройти тестирование потенциального работодателя.
Впрочем, некоторые пробелы тоже были: мне задали вопрос о том, как работает GC Python или интерпретатор, как можно оптимизировать их работу. К этому ChatGPT меня не готовил, но это не стало фатальной недоработкой.
Мой совет по процессу обучения по итогам эксперимента
На мой взгляд, обучение с помощью бота подойдет тем, кто уже обладает определенной компетенцией, знаком с базой и хочет расширить свой пул знаний и навыков. Тогда, используя подход к промтингу, который я описал в этом материале, вы сможете составить для себя эффективный план обучения. Как выяснилось, ChatGPT способен давать почти исчерпывающую информацию — даже не понадобятся сторонние источники.