Definition
Deliberate practice in code means picking specific weaknesses (algorithm patterns, language idioms, debugging skills) and practising them with feedback beyond your current level.
Why it matters
Coding proficiency grows fastest when practice is targeted at weak components rather than at the comfortable subset of a language.
Scientific basis
Programming-expertise research shows that experts differ from novices more in pattern libraries and chunking than in raw language features.
How to apply it
- Identify a weak area (e.g. dynamic programming, generics) and complete graded exercises in it.
- Use small, contained problems so feedback is fast.
- Mix easy and hard problems to keep motivation while pushing the edge.
Common mistakes
- Practising only the parts of a language you are already comfortable with.
- Treating tutorial-following as deliberate practice without feedback.
- Letting the practice be too long between feedback signals.
Examples
- A developer spending a week on a curated set of recursion problems after recognising a weakness.
- A junior practising TDD on small kata until the red-green-refactor cycle feels automatic.
Related concepts
- Deliberate Practice (is an instance of)
Code practice is a domain-specific form of deliberate practice. - Feedback Loops (is a foundation for)
Fast test results are the feedback loop code practice needs.
Where it shows up
Domains: programming. Appears in the Programming & Skill Acquisition cluster alongside 2 other concepts.
Source books
- Make It Stick: Brown, Roediger & McDaniel
- Ultralearning: Scott Young
Articles that use this concept (2)
- Deliberate Code Practice: deliberate practice coding
- Deliberate Practice in Coding: deliberate practice coding guide