Learning to Code with AI

The guide for junior developers who want to use AI to accelerate their learning—without becoming dependent on it.

The hard truth: AI can make you 3x more productive or unemployable in 3 years. The difference? How you use it.

Read Full Guide → Take Self-Check

Quick Self-Check

Answer each question honestly. Your score appears after answering all 5.

Can you explain the last piece of code AI generated for you?
Have you debugged code without AI this week?
Do you know WHY the solution works, not just THAT it works?
Could you write the same function without AI assistance?
Do you know the limitations of AI for this type of problem?

The Three Developer Patterns

Which one are you? Be honest.

🔴 Dependent

Signs: Copy-paste without understanding, can't debug AI code, anxiety without AI

→ Read "Breaking Dependency" section

🟡 Avoidant

Signs: Refuses AI "on principle", slower than peers, missing out on productivity gains

→ Read "Embracing AI Tools" section

🟢 Augmented

Signs: Uses AI critically, understands everything, can work with or without AI

→ Read "Optimizing Your Flow" section

The UVAL Protocol

Your framework for learning with AI without losing skills.

U

Understand First (15-min Rule)

Before asking AI: State the problem in ONE sentence. List 3 possible approaches. Identify what you DON'T know. Then ask AI with context.

# In your CLAUDE.md
Before generating code, ask me:
1. What approaches have I considered?
2. What specifically am I stuck on?
V

Verify (Explain It Back)

If you can't explain the code to a colleague, you don't understand it. Period.

# Use /learn:quiz command after code generation
Claude asks YOU to explain what the code does
A

Apply (Transform, Don't Copy)

Never copy-paste raw. Modify at least ONE element: variable name, structure, edge case. Modification forces understanding.

Forbidden: Copy-paste verbatim
Required: Adapt to your context
L

Learn (Capture the Insight)

End each session by noting ONE thing you learned. Not a journal—just one insight.

# Session-end hook automatically asks:
"What's ONE thing you learned today?"
→ Logs to ~/claude-learnings.md

Configure Learning Mode

Claude Code can be configured to support learning, not just producing code.

🎓 CLAUDE.md Configuration

Add this to your project's CLAUDE.md to make Claude ask questions before generating code:

## Learning Mode
Before generating code, ask me:
1. What approaches have I considered?
2. What am I stuck on specifically?
3. What do I expect the solution to look like?

If I skip these, remind me to think first.
Full Template →

⌨️ Slash Commands for Learning

/explain Explain existing code (built-in)
/learn:quiz Test your understanding after implementing
/learn:teach Step-by-step explanation of a topic
/learn:alternatives Show other approaches & trade-offs
View /learn: commands →

⚖️ The 70/30 Rule

Balance producing and learning each week:

70% Produce
30% Learn
  • 70% Production: Use AI freely, focus on output
  • 30% Learning: No AI, or AI as teacher only

30-Day Progression Plan

Week-by-week guide to mastering AI-assisted development.

Week Focus AI Ratio Exercise
Week 1 Foundations 20% AI Build feature WITHOUT AI, then compare
Week 2 Understanding 40% AI Use AI, but explain every line
Week 3 Critical Use 60% AI Challenge AI suggestions, find bugs
Week 4 Augmented 70% AI Full productivity with verification

Ready-to-Use Templates

Configure Claude Code for learning, not just producing.

Learning Mode CLAUDE.md

Configuration that makes Claude explain WHY, not just WHAT. Includes challenge mode and interview prep.

View →

/learn: Commands

Quiz, teach, and explore alternatives. Namespaced commands for learning workflows.

View →

Learning Capture Hook

Session-end hook that prompts for ONE learning insight. Builds a learning journal with zero friction.

View →

Ready to Learn the Right Way?

The full guide includes: Red flags checklist, breaking dependency strategies, case studies, and more.