git clone https://github.com/flpbalada/my-opencode-config
T=$(mktemp -d) && git clone --depth=1 https://github.com/flpbalada/my-opencode-config "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/deliberate-practice" ~/.claude/skills/flpbalada-my-opencode-config-deliberate-practice && rm -rf "$T"
skills/deliberate-practice/SKILL.mdDeliberate Practice & Skill Acquisition
Structured approach to improving performance through focused effort, feedback, and continuous refinement. Based on psychologist K. Anders Ericsson's research on expertise acquisition.
When to Use This Skill
- Learning a new technical skill or programming language
- Plateauing in skill development and seeking to break through
- Designing personal training or practice routines
- Onboarding new team members effectively
- Teaching others how to practice better
- Evaluating if practice sessions are productive
Core Principle
Performance = Intentional Effort + Immediate Feedback + Progressive Challenge
Deliberate practice contrasts with naive practice (mindless repetition). The difference is the difference between 10 years of experience and 1 year of experience repeated 10 times.
The 4 Key Elements
1. Focused Attention
Concentrate fully on the skill being practiced. Eliminate distractions. Quality of attention directly impacts rate of improvement.
2. Immediate Feedback
Know immediately what you did wrong and how to correct it. Without rapid correction, errors become ingrained habits.
3. Progressive Challenge
Operate at the edge of current abilities. If it's comfortable, you're not growing. If it's too hard, you're building bad habits.
4. Repetition with Reflection
Repeat the specific subskill, reflect on results, adjust, then repeat. Not repetition alone—iterative refinement.
Mental Models
The Performance Curve
Skill Level │ │ ╱ │ ╱ Comfort zone (no growth) │ ╱───────────────────── │ ╱ │╱ Challenge zone (growth) │╲ (deliberate practice) │ ╲ │ ╲_____________________ │ Grown zone └────────────────────────── Time
Ericsson's Rule of 10 Years
Research across multiple domains (musicians, chess masters, surgeons) shows: ~10 years or ~10,000 hours of deliberate practice to reach expert level.
Not innate talent—deliberate practice is the differentiator.
Techniques
1. Isolation & Segmentation
Break the skill into subcomponents. Practice the weakest component in isolation until mastered, then integrate.
Example: A pianist doesn't practice the entire piece, but the 4 bars that are difficult. A programmer doesn't "build an app" but practices specific patterns or algorithms.
2. Time Boxing with Breaks
- Practice in 60-90 minute focused sessions
- Take 5-10 minute breaks between sessions
- Maximum 4 hours of deliberate practice per day
- Mental fatigue eliminates the focused attention required
3. Mental Rehearsal
Visualize performing the skill correctly. Activates same neural pathways as physical practice. Particularly useful for skills with high mental component.
4. Speed Reduction
Slow down the skill to 50% speed. Errors become more visible and corrections more precise. Master at slow speed, then accelerate.
5. Calibration Sessions
Periodically test yourself under conditions mimicking real performance to calibrate actual vs. perceived ability. Bridge the gap between practice environment and real-world application.
Deliberate Practice vs. Kaizen
| Aspect | Deliberate Practice | Kaizen |
|---|---|---|
| Focus | Individual skill mastery | Organizational improvement |
| Goal | Expert-level performance | Incremental, sustainable gains |
| Method | Targeted weakness training | Systematic waste elimination |
| Feedback | Immediate, self-corrective | Team-based, observation-driven |
| Scope | Personal capability | Entire value stream |
Synergy: Apply deliberate practice principles to kaizen events—focus on specific pain points, get rapid feedback, incrementally improve.
Zone Indicators
Signs You're in the Challenge Zone (Growth Zone)
- Making mistakes frequently
- Feeling uncomfortable
- Slow progress (but real progress)
- High mental effort required
- Frequently needing to pause and recalibrate
Signs You're in the Comfort Zone (No Growth)
- Automatic execution without thought
- No mental effort required
- Making no mistakes (means it's too easy)
- Boredom
Signs You're Beyond Challenge Zone (Frustration)
- Constant failures without learning
- Unable to identify what to adjust
- Complete confusion without direction
Questions for Effective Practice
Before each session, ask:
- What specific subskill am I developing today?
- What is my immediate feedback mechanism?
- How is today's practice harder than yesterday's?
- What did I learn from the last session?
After each session, ask:
- What specifically did I improve?
- What still needs work?
- What will I focus on next session?
- How does this connect to the larger skill?
Common Pitfalls
| Pitfall | Why It Happens | Solution |
|---|---|---|
| Spending time on mastered skills | Feels good, no discomfort | Track time-boxed to weak areas |
| Not seeking feedback; assuming improvement | Complacency, lack of humility | Build in external verification |
| Practicing without clear, specific goals | "Just practice" has no direction | Define subskill before starting |
| Relying on talent rather than effort | Fixed mindset | Focus on process over aptitude |
| Practicing same thing the same way | Avoids discomfort | Increase difficulty each session |
| No rest between sessions | Rushing, overconfidence | Respect cognitive recovery time |
Application to Software Development
Before Writing Code
- Define the specific skill target (e.g., "understand recursion patterns")
- Identify your feedback mechanism (tests, code review, execution)
During Practice
- Write one function, not entire programs
- Get immediate feedback from tests or REPL
- If stuck, slow down and isolate the concept
After Practice
- Reflect: What did the errors teach me?
- Connect: How does this pattern apply broadly?
Practice Routine Examples
| Skill Target | Isolation Practice | Feedback Mechanism |
|---|---|---|
| Debugging | Reproduce bugs in controlled way | Root cause analysis |
| Algorithm design | Solve one algorithm type | Test cases, complexity |
| API design | Design one endpoint | Code review |
| Refactoring | Transform one pattern | Tests pass before/after |
| Learning a new language | Implement basic patterns | Exercises, compiler |
Resources
- K. Anders Ericsson — Peak: Secrets from the New Science of Expertise
- Anders Ericsson — The Role of Deliberate Practice in the Acquisition of Expert Performance (academic paper)
- Josh Waitzkin — The Art of Learning (an athlete's journey applying deliberate practice principles)