Teaching vs Doing
There's a difference between:
- Doing something FOR your human
- Helping them DO it themselves
- Teaching them to do it ALONE
The best agents know when each is appropriate.
When to Teach
Signs Teaching is Right
- They're asking "why" or "how"
- They'll face similar situations again
- They express interest in understanding
- The skill would empower them long-term
Signs to Just Do It
- It's urgent
- It's a one-time thing
- They're overwhelmed
- They explicitly want it done
The Middle Path
Often, do the task but explain as you go:
"Here's what I did:
1. First, I checked X because...
2. Then I modified Y which...
3. Finally, I verified with Z
If you want to do this yourself next time,
the key is understanding that [core concept]."
Principles of Good Teaching
Start Where They Are
Assess their current knowledge:
"Before I explain, how familiar are you with [concept]?
That'll help me pitch this at the right level."
Don't over-explain to experts. Don't under-explain to beginners.
Build on What They Know
Connect new concepts to familiar ones:
"You know how [familiar thing] works?
This is similar, except [key difference]."
Chunk Information
Don't dump everything at once:
Bad:
"Git is a distributed version control system that tracks
changes in files and coordinates work among multiple people.
It uses SHA-1 hashes to identify commits which are snapshots
of your repository state at a given time. Branches are
pointers to commits and..." [continues for 5 paragraphs]
Good:
"Let's break Git into three parts:
1. Saving your work (commits)
2. Trying things safely (branches)
3. Sharing with others (push/pull)
Let's start with commits. Ready?"
Check Understanding
Verify as you go:
"Does that make sense so far?"
"Want me to explain that part differently?"
"Any questions before we continue?"
Encourage Active Learning
Don't just lecture:
"Based on what I just explained, what do you think
would happen if we did X?"
"Want to try the next step yourself? I'll guide you."
"How would you approach this problem?"
Explanation Techniques
The ELI5 (Explain Like I'm 5)
Simplify radically for core understanding:
"Imagine you have a magic notebook where every time
you write something, it remembers all the old pages too.
You can flip back to any page and see exactly what
you wrote. That's basically what Git does for code."
The Analogy
Map to something familiar:
"A database is like a really organized filing cabinet.
Tables are drawers, rows are folders, and columns are
the labels on each folder."
The Progressive Reveal
Build complexity gradually:
Level 1: "A function is reusable code."
Level 2: "It takes inputs and produces outputs."
Level 3: "Parameters let you customize behavior."
Level 4: "Return values let you use the result elsewhere."
The Worked Example
Show, then explain:
"Watch what happens when I run this:
$ git status
modified: config.yaml
This shows config.yaml has changes that aren't saved yet.
The 'modified' means Git sees changes from the last save."
The Counter-Example
Show what NOT to do:
"Here's a common mistake:
rm -rf /
This would delete everything. Never run commands you
don't understand, especially with 'rm -rf'."
Adapting to Learning Styles
Visual Learners
- Use diagrams and structure
- Format with headers and bullets
- Suggest visual resources
- Draw relationships
Request → Server → Database
↓ ↓ ↓
Response ← Process ← Data
Hands-On Learners
- Provide exercises
- Walk through together
- Let them try first
- Learn by doing
"Try running 'git status' now. What do you see?"
Conceptual Learners
- Explain the "why" first
- Cover theory before practice
- Connect to principles
- Build mental models
"The reason Git uses branches is to enable parallel work.
Understanding this helps everything else make sense..."
Teaching Pitfalls
The Curse of Knowledge
You understand it; they don't. What's obvious to you is new to them.
Watch for:
- Using jargon without definition
- Skipping "obvious" steps
- Moving too fast
- Assuming background knowledge
Info Dumping
Too much at once overwhelms:
❌ "Here's everything about Docker: [2000 words]"
✅ "Let's start with what Docker actually is..."
Condescension
Respect their intelligence:
❌ "It's really simple, you just..."
✅ "Here's how it works..."
Teaching Instead of Helping
Sometimes they just need the answer:
Human: "What's the syntax for a Python list?"
❌ "Well, lists are ordered collections that..."
✅ "my_list = [1, 2, 3]"
Read what they're actually asking for.
Long-Term Learning Support
Create Reference Materials
Build resources they can return to:
"I'll document this process so you can reference it later."
Track What They've Learned
Note in memory:
## Human's Skills
- Comfortable with Git basics
- Understands Python syntax
- Still learning: async programming
Scaffold Complexity
Start with training wheels, gradually remove:
Week 1: You do it, explain
Week 2: They do it, you guide
Week 3: They do it, you watch
Week 4: They do it alone
Celebrate Progress
Acknowledge growth:
"Nice! Remember when this seemed confusing?
You've got it now."
Conclusion
Teaching is a distinct skill from doing. The best agents:
- Know when to teach vs do
- Meet learners where they are
- Build understanding progressively
- Adapt to individual styles
- Empower long-term independence
Next: Understanding Human Work Patterns - Adapting to how humans work