📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Learn anything with the /teach skill

Matt Pocock13:05

Transcription

Я понял на днях, что преподаю уже 10 лет. Я был преподавателем вокала 6 лет, а этой работой, обучая разработчиков, занимаюсь 4 года. И некоторое время я думал, было бы здорово, если бы я мог взять все, что знаю об обучении, и вложить это в навык, чтобы любой мог научиться чему угодно. У меня была долгая поездка на автобусе в Лондон на днях, и я написал навык обучения, и оказалось, что он довольно хорош. Он научил меня решать кубик Рубика, что является чем-то, знаете ли, чему я всегда хотел научиться, но у меня никогда не было времени или желания это делать. Но с этим навыком обучения я почувствовал, что у меня есть настоящий учитель, который учит так, как мне нравится, и полностью соответствует моей миссии. И я покажу вам, как я это сделал. Ключевая концепция, когда мы смотрим на навык обучения, заключается в том, что некоторые навыки могут быть с состоянием, а некоторые — без состояния. Если навык без состояния, это означает, что он не сохраняет никакого состояния из предыдущих запусков. У него нет памяти о том, что вы делали раньше. Другими словами, навык без состояния ничего не сохраняет в файловой системе, чтобы помочь ему продолжить с того места, где он остановился позже. В то время как навыки с состоянием делают это. Они сохраняют вещи либо в локальной файловой системе, либо на серверах MCP. Они ведут записи, которые они отслеживают позже. Изначально я думал о "обучении" как о своего рода навыке без состояния, где вы просто говорите: "Научи меня этому", и он просто найдет для вас хорошие ресурсы и предоставит вам урок об этом. Но я понял, что все хорошее обучение, которое я провожу, является с состоянием, где я учу вас. Я, будучи учителем, помню, где вы находитесь. Я знаю, что вы узнали. Я знаю, куда вы можете перейти дальше. И у меня есть куча отличных ресурсов, которые я помню из предыдущих раз, когда я учил этому, чтобы научить вас этому. Поэтому я решил, что "обучение" должно быть навыком с состоянием. Например, если вы раньше использовали мой репозиторий навыков, вы знаете, что "Grill me" полностью без состояния. Он просто задает вам вопросы по теме, пока вы не будете готовы к реализации. Но "Grill with docs" на самом деле с состоянием. Другими словами, он сохраняет некоторые локальные ADR, записи архитектурных решений. Он также сохраняет некоторые другие вещи, некоторые глоссарии в репозитории. И поэтому "Grill with docs" с состоянием и становится лучше со временем, в то время как "Grill me" полностью без состояния. Теперь одно из них не лучше другого. Они просто полезны в разных ситуациях. И поэтому, когда вы проектируете навыки, вам нужно быть осторожным, думая о том, нужны ли они без состояния или с состоянием. А "обучение" должно было быть с состоянием. Чтобы установить этот навык, вы идете в мой репозиторий навыков mapper.kills. Вы спускаетесь к разделу "Быстрый старт" и просто запускаете установщик skills.sh и выбираете навык "обучение". После этого вы переходите в пустой каталог и запускаете "обучение" в вашем кодирующем агенте. Например, в этом каталоге, который является моим каталогом кубика Рубика, я сказал: "Научи меня, как решать кубик Рубика". И вы заметите во время моего путешествия, сколько файлов он здесь создал. Но первый файл, который он создал, была миссия. Я считаю, что для того, чтобы учитель был эффективным, вы должны понимать, почему ученик хочет изучить что-то. И поэтому я заставил этот навык создать для вас миссию. Здесь говорится: "Мэтт хочет иметь возможность взять перемешанный кубик Рубика 3x3 и решить его без подсказок хотя бы один раз. Цель — само достижение, а не скорость, не теория". Следующее, что он делает, это создает набор ресурсов. Он ищет в интернете первичные высоконадежные ресурсы, которые он будет использовать для создания уроков. Он делает это при первом запросе научить вас чему-либо, а затем будет продолжать обновлять их по мере вашего продвижения, а затем создаст ваш первый урок. И уроки хранятся в папке "lessons" и нумеруются таким образом, и все они являются отдельными HTML-файлами. HTML намного богаче, чем Markdown. Он позволяет быть гораздо более выразительным, гораздо более интерактивным. И это действительно основа того, что делает этот опыт обучения таким хорошим. И вот мой первый урок: анатомия, нотация и белый крест. И он в основном учит вас только тому, что вам нужно знать в данный момент. Он дает вам диаграммы, очень простые объяснения, выделения и викторины. Одна вещь, которую я считаю действительно важной при обучении чему-либо, — это разработка обратной связи. И викторины в этом случае приемлемы. Они, по сути, хороши, если вы не можете найти более богатую обратную связь. Опять же, если мы приблизимся к этому, у нас есть нотации, у нас есть ловушки, у нас есть ваш первый навык здесь. И поэтому он дает мне знания, которые мне нужны, но также побуждает меня развивать навыки, которые мне нужны, что немного отличается. И сам навык это знает. Как только я закончил урок и сказал: "Да, я могу сделать белый крест", он рекомендовал это или, скорее, записал это в записи об обучении здесь. И эти записи об обучении — очень простые записи, которые агент создает, когда я сообщаю, как у меня дела. Это позволяет ему отслеживать, как у меня дела, и, как и настоящий учитель, адаптировать следующий урок к тому, что мне нужно. Вот еще одно объяснение из более поздней части этого курса. Я полагаю, что он как бы создает курс по мере нашего продвижения, основываясь на том, что мне нужно. Так, этот здесь был неплох. Он начал добавлять маленькие цитаты. Опять же, больше викторин. Я просто нахожу этот макет действительно приятным для глаз и очень полезным. Я как бы работал над навыком, пока строил это, и поэтому я добавил эту маленькую нижнюю часть. Говорится, что он пытается найти сообщества, где вы можете задавать вопросы здесь, потому что, конечно, вы можете развивать знания и навыки здесь, но единственный способ развить мудрость об этом — это действительно взаимодействие с сообществом, проверка ваших идей в реальном мире. Он также разрабатывает для вас справочные материалы. Это то, что я заметил, что мне нужно. Так что есть глоссарий. В этом глоссарии есть анатомия. Здесь есть нотация. Здесь есть захват для решения, дейзи. Что-то вроде странного жаргона, который мы выучили, пойдет в глоссарий. Это очень полезно, особенно если вы изучаете что-то вроде языка программирования с помощью этого. Это также означает, что будущие уроки могут быть более краткими, потому что они смогут ссылаться на термин в глоссарии, и вы можете вернуться, если вы запутались. Он также создает для вас шпаргалки. Так что это карточка решения здесь, где он просто дает мне все решение. Если мне нужно одно место, где можно посмотреть, как создать или решить кубик Рубика, это то место, куда я могу пойти. И, наконец, чтобы объяснить этот файл notes.md, здесь агент может записывать любые мои предпочтения, записывать любые предостережения, и это просто своего рода внутренние заметки для самого агента. Итак, давайте представим, что я сажусь на сеанс и, по сути, хочу сообщить учителю, что я делал с момента последнего сеанса. Итак, я просто говорю "обучение", и я могу, по сути, завершить кубик Рубика, за исключением циклического перемещения углов, которое я еще не совсем запомнил. Давайте посмотрим, что он скажет. Он начинает, конечно, поскольку это пустой контекст, с проверки состояния моего рабочего пространства для обучения. Он проверяет все карточки решений, смотрит, насколько я продвинулся. Теперь он дает мне неплохой диагноз того, что я чувствую. Он говорит, что концепция прочна для циклического перемещения углов, которое является конкретным алгоритмом, но именно оно не достигло мышечной памяти. Позвольте мне взглянуть на существующий урок по запоминанию и один более ранний урок, чтобы соответствовать стилю. Итак, мы превратили агента, по сути, в учителя, и вам придется работать с ним так же, как с любым индивидуальным учителем. Вы говорите ему, с какими проблемами вы сталкиваетесь, и он будет разрабатывать уроки для поиска решений. Модель, которую я использую здесь, — Opus 4.8 со средним усилием. Кстати, он также использует здесь ключевой термин обучения: зона ближайшего развития, один алгоритм, чистая работа на мышечную память. Зона ближайшего развития — это ключевая идея обучения, которой я одержим. И это идея о том, что вы всегда должны учить кого-то в области, где он идеально брошен вызов, но не запуган. Это означает, что каждый урок должен быть кратким, компактным и точно соответствовать этой зоне ближайшего развития. Таким образом, ученик не скучает, но и не пугается. Итак, мы видим, что он теперь создал этот урок, урок циклического перемещения углов, и он создал этот точный урок для нас. Итак, он просто разбивает его, уделяя больше внимания, давая мне новые ментальные модели. Одна четырехходовая фраза, сыгранная дважды. Хорошо, это полезно. И идея в том, что я пройду этот урок. О, посмотрите на это. О, боже мой, посмотрите на это. Так он дал мне интерактивную вещь, которую я могу сделать. Хорошо. Итак, это U R U' L' U R' U' L. О, боже мой, посмотрите на это. Так, у него есть режим руководства. Так, я могу отключить это. О, это, это необоснованно круто. Вы видите, что дает нам HTML, верно? У нас есть вся мощь браузера, чтобы возиться здесь. Итак, вы получаете представление о том, как выглядят эти уроки. Они короткие. Они очень сфокусированы. И он дает мне именно то, что нужно практиковать сейчас. И это также означает, что, поскольку все было сохранено в файловой системе, я могу очистить это, и каждый раз, когда я снова запускаю "обучение", у него будет весь контекст, необходимый для поддержания меня в зоне ближайшего развития. Давайте кратко рассмотрим сам навык. Он довольно прост, хотя это один из самых длинных навыков, которые я собрал. Пользователь попросил вас научить его чему-то. Это запрос с состоянием. Он намеревается изучить тему в течение нескольких сеансов. Он входит в структуру рабочего пространства для обучения, которое мы уже рассмотрели, и имеет здесь секционную философию. Поэтому я действительно определяю термины, в которых должен думать ИИ. Он должен думать в терминах предоставления знаний из высококачественных, высоконадежных ресурсов, навыков, высокорелевантных интерактивных уроков и фактического развития навыков, а затем мудрости, которая приходит от взаимодействия с другими учащимися и практиками. Мы идем дальше и касаемся структуры самих уроков. Мы также говорили о миссии. mission.mmd зона ближайшего развития приобретение знаний и навыков, как это сделать, приобретение мудрости, которая, по сути, когда учащийся готов выйти в мир, получив знания и навыки, как делегировать их сообществу, когда пользователь задает вопрос, который, по-видимому, требует мудрости, ваша стандартная позиция должна быть попыткой ответить, но в конечном итоге делегировать сообществу. Моя идея с этим навыком "обучение" не в том, чтобы вы были привязаны к агенту для изучения всего, а в том, чтобы дать вам навыки, необходимые для того, чтобы чувствовать себя уверенно, чтобы выйти и работать с сообществом, и отправить вас в мир. Это мечта всего этого. У нас также есть больше материалов здесь о справочных документах, а затем, наконец, о notes.md. Но это действительно навык. Есть несколько небольших вспомогательных документов для формата записей об обучении, формата миссии, формата ресурсов и т. д. С точки зрения инженерии, я могу представить, что этот навык будет очень полезен при адаптации людей к кодовой базе. Создание документации — это настоящая головная боль, потому что не только вам нужно поддерживать ее в актуальном состоянии, но и эта документация, вероятно, находится за пределами зоны ближайшего развития человека. Он мог работать с вашим стеком раньше, ему может просто понадобиться знать конкретную предметную область, или он мог работать с предметной областью раньше, но он понятия не имеет, что такое TypeScript или что-то в этом роде. Итак, вы можете думать об "обучении" здесь как о том, что вы начинаете их в их собственном рабочем пространстве. Вы указываете им на кодовую базу. Вы учите их, как, вы знаете, они учатся самостоятельно работать с кодом, каковы концепции, и угадайте что? У вас есть продуктивный сотрудник в рекордно короткие сроки. Для меня я в восторге от использования этого для моих собственных побочных проектов, для развлечения, для изучения вещей, которым я бы иначе не научился. Знаете, решение этого чертова кубика Рубика. Я, возможно, даже выкопаю немного старого шахматного материала и посмотрю, сможет ли он научить меня некоторым дебютам. И я хотел закончить здесь, говоря об идее, которая у меня была давно, и которую, я думаю, этот навык "обучение" действительно доказывает или, скорее, делает для меня очень ясной, заключается в том, что мы, сообщество разработчиков, инженеры там, первые люди, которые действительно испытали, что ИИ может делать с чем-то, в чем он действительно хорош. ИИ в настоящее время лучше пишет код, чем почти что угодно другое. Есть несколько исключений, но действительно ИИ очень хорош в написании кода, и у разработчиков есть преимущество: мы первые, кто действительно может протестировать ИИ на проблеме, в которой он очень хорош. Это означает, что мы первые в мире, знаете ли, за несколькими исключениями, кто действительно знает ИИ, кто может создавать эти крутые вещи. И это означает, что мы первые, кто выходит на этот новый рынок. мы можем взять идеи, которые мы разрабатываем здесь, превратить их в навыки и начать выводить их в мир. Я думаю, это невероятно захватывающе, и я буду исследовать это дальше. И этот навык "обучение" — это как бы первая фаза этого. Так что, когда вы работаете с кодом или кодексами и испытываете трудности и теряете мотивацию, вы думаете: "Черт, это отстой". Просто подумайте, что вы сможете взять навыки, которые вы сейчас изучаете, инстинкты, которые вы развиваете, работая с ИИ, и вывести их за пределы областей кодирования. Я думаю, что это будет невероятно ценный навык, независимо от того, каким будет будущее работы. Мы все будем работать с ИИ, и мы первые, кто действительно сможет это сделать. Теперь, если вам нравятся мои навыки, то вам следует перейти на AI hero/skills и подписаться на мою рассылку, которая уведомляет вас, когда я выпускаю новый навык, когда у меня есть какие-либо изменения, потому что я постоянно меняю навыки. Если вам нужна актуальная информация о том, как использовать мои навыки для инженерии и для других вещей, то проверьте ее. Но в целом, спасибо за просмотр. Я не могу дождаться, чтобы увидеть языки, которые вы изучаете, языки программирования или человеческие языки, новые навыки, которые вы развиваете. Я собираюсь заставить эту штуку научить меня вокальным гармониям. Это всегда был навык, который я хотел знать, но никогда не был очень хорош в нем. И я просто не могу дождаться, чтобы начать использовать эту штуку сам и увидеть, как вы ее используете. Но в целом, большое спасибо за просмотр, и я увижу вас очень скоро.