SuperAPI AI Directory

learning-companion

Writing & research

View repository

Updated 10-15 11:00

About this skill

Learning Companion

The best teacher is not the one who knows the most, but the one who understands the student best. The core of this skill: first understand what you already know, then explain the unknown using the language you already know.


Step 1: Understand the learner

Before starting the explanation, first confirm:

Question Why it matters
What do you already know? Use the known to analogize the unknown. "You know Express? Then Fastify is like..."
Learning purpose Understanding concepts vs preparing to get hands-on vs preparing to share — the depth is completely different
Expected format Do you want a brief summary or a complete tutorial?

If the user's background is known from memory, use it directly and do not ask again. For example, if memory records "deep Go experience, newly learning React", directly use Go analogies to explain React.


Step 2: Choose a teaching strategy

Based on the learning content and the user's background, choose the most appropriate approach:

Strategy Applicable scenarios Example
Analogy method The user is proficient in A and wants to learn B, and A/B have similar concepts "Go's goroutine is similar to JS's async/await, but..."
Contrast method Learning the differences between similar concepts "useEffect vs useLayoutEffect: different timing..."
Progressive method A completely new field with no basis for analogy Start with the simplest example, gradually adding complexity
Hands-on method The user prefers learning by doing Give a minimal runnable example, and learn while modifying it
Origin-tracing method Understanding the design philosophy "Why do React Hooks exist? What pain points did using classes have before?"

Step 3: Organize the content

3.1 Concept explanation structure

一句话总结(这东西是什么、解决什么问题)
  ↓
类比(用你已知的东西做桥梁)
  ↓
核心概念(3-5 个关键点,不贪多)
  ↓
最小示例(可运行的代码,10-20 行以内)
  ↓
和已知的对比(跟你熟悉的技术有什么异同)
  ↓
进阶路线(想深入的话看什么)

3.2 Tech stack learning path

全景地图(这个技术栈包含什么,各部分干什么)
  ↓
核心概念(必须先理解的 3-5 个概念)
  ↓
Hello World(最小可运行项目)
  ↓
实战练习(解决一个真实小问题)
  ↓
深入话题(性能、最佳实践、常见坑)
  ↓
参考资源(官方文档、推荐教程、社区)

Teaching guidelines

  • Use the user's language: if the user comes from a backend background, use backend analogies; if the user comes from a frontend background, use frontend analogies
  • Do not assume prior knowledge: when mentioning technical terms, briefly explain them or give an analogy, unless the user is confirmed to already know them
  • Less is more: explaining 3 concepts at a time is more effective than explaining 10. Information overload = learning nothing
  • Code is worth a thousand words: a 10-line runnable example is more effective than 3 paragraphs of description
  • Honestly say "this is complex": some things really are difficult, do not pretend they are simple. Clearly say "this concept takes time to digest"
  • Encourage questions: after explaining, proactively ask "is there anything that is not quite clear?"
  • Do not go off topic: if the user asks about React Hooks, talk about Hooks; do not introduce the entire React ecosystem

Common learning scenarios

Scenario Teaching focus
Getting started with a new framework Core concepts → comparison with known frameworks → Hello World → core APIs
Getting started with a new language Syntax differences comparison → type system → concurrency model → package management → minimal project
Design patterns What problem it solves → what happens without it → minimal example → application in real code
Architecture concepts Why it is needed → what problem it solves → trade-offs compared with not using it → real-world cases
Algorithms/data structures Intuitive explanation → visualization → pseudocode → complexity analysis → when to use

Relationship with other skills

接手新项目,不懂技术栈 → learning-companion(学技术栈)
                              ↓
                        code-walkthrough(理解项目代码)

调研中发现不懂的概念 → learning-companion(学概念)
                              ↓
                        继续 deep-research