Paul Curzon, Queen Mary University of London

Here is the next in our series of tips about learning to learn (to program).


10,000 hours of practice is often given as a rule of thumb to become an expert. However, if it is the wrong kind of practice then all those hours may not help. An effective kind of practice is “deliberate practice”. This is one of the top 10 or so educational approaches known to be effective as a way to improve learning, and is based on research in a lot of areas from elite sportspeople, virtuoso violinists, top medics and more. It is what elite people do to become one of the elite. It can help with learning to program too.

Some skills are more appropriate to apply deliberate practice to than others. However, even an incomplete version may make practice more effective.

Deliberate practice involves:

  • Identify the sub-skills that experts have; the ones that make them better than everyone else and practice those skills.
  • Aim to build accurate versions of the same “mental models” as the experts have for those sub-skills (early).

  • Practice doing things just beyond your current comfort zone until you have mastered them. Then move on.
  • Practice in a way that gives you immediate feedback on whether you are doing it right or wrong.
  • If you get it wrong (that’s good, its a chance to improve), focus on why you got it wrong (based on that accurate mental model) and practice until you can do it.

We will look at the separate elements of this in subsequent tips.

To learn to program you need not just to write program, but to do deliberate practice of the sub-skills.

If you are a:

  • student
    • Learn about deliberate practice and put it into practice when you learn, including as you learn to program.
  • teacher:
    • Set up learning resources and situations to support deliberate practice of programming skills.

Further reading: Ericsson, A & Pool, R, 2016, Peak: Secrets from the new science of expertise. The Bodley Head.

More on Learning to Learn (to program)

IoC logo on white

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.