This directory contains practice tools that complement the main project ladder. Use these between projects to reinforce concepts and build fluency.
Spaced repetition flashcard decks for each level. Review cards regularly to retain concepts long-term.
python practice/flashcards/review-runner.pyExercises that build the skill of reading and understanding unfamiliar code. You are given a working codebase and asked to trace, analyze, debug, or extend it.
# Start with Exercise 01
cd practice/code-reading/01_mystery_function
# Read README.md for instructionsShort, focused exercises (10-30 minutes each) that reinforce specific patterns. Not full projects — just targeted practice reps.
# Try a challenge
python practice/challenges/beginner/01-swap-variables.py
# Check your solution
python practice/challenges/solutions/beginner/01-swap-variables-solution.pyLegacy code that works but is messy. Your job is to clean it up without breaking the tests.
# Start with Exercise 01
cd practice/challenges/refactoring/01_spaghetti_calculator
# Read README.md for instructions| Tool | When | Time |
|---|---|---|
| Flashcards | Daily, before starting project work | 5-10 min |
| Code reading | After Level 2, to build reading fluency | 30-60 min |
| Challenges | Between projects, or when you want quick practice | 10-30 min |
| Refactoring | After Level 3, to practice cleaning real-world code | 45-90 min |
| Concept quizzes | After reading a concept doc (see concepts/quizzes/) |
5-10 min |
Read concept doc → Take quiz → Do projects → Review flashcards → Try challenges
↑ |
└──────────── review when cards appear ────────┘
The flashcards use a Leitner box system — cards you get right move to higher boxes and appear less often. Cards you get wrong drop back to box 1 for immediate review.