Do Lots of Deliberate Practice
What is deliberate practice? It is not simply performing a task. If you ask yourself "why am I performing this task?" and your answer is simply "to complete the task" then you're not doing deliberate practice.
You do deliberate practice to improve your ability to perform a task. It's about skill and technique. Deliberate practice means repetition. It means performing the task with the aim of improving mastery of one or more aspects of the task. It means repeating the repetition over and over again until you achieve your desired level of mastery. For example, repeating the bowling game kata over and over again, each time focusing on a new aspect; improving the unit tests, or writing the code in a strict test-first manner, or practicing refactoring. You do deliberate practice not to complete the task but to master the task.
The aim of deliberate practice is to improve your performance whereas the aim of paid development is to finish a product. There might be some overlap (for example when pair programming) but they are not the same. Ask yourself, how much of your time do you spend
- developing a product?
- developing yourself?
How long does it take to acquire expertise?
- On his website http://norvig.com/21-days.html Peter Norvig writes: "It may be that 10,000 hours ... is the magic number."
- In her book Leading Lean Software Development: Results are Not the Point, Mary Poppendieck writes:"It's takes elite performers a minimum of 10,000 hours of deliberate focused practice to become experts."
This doesn't mean doing 10,000 hours of deliberate practice at which point the expertise arrives all at once. It arrives gradually over time. Nevertheless, 10,000 hours is a lot; about 10 years at 20 hours per week. Given this level of commitment you might be worrying you're just not expert material. You are. Greatness is largely a matter of conscious choice. Your conscious choice. Research over the last two decades has shown the main factor in acquiring expertise is time spent in deliberate practice. Innate ability is NOT the main factor. Over to Mary again:
- "There is broad consensus among researchers of expert performance that inborn talent does not account for much more than a threshold; you have to have a minimum amount of natural ability to get started in a sport or profession. After that, the people who excel are the ones who work the hardest."
There is no point deliberately practicing something you are already an expert at. Deliberate practice means selecting something you are not good at. Over to Peter and Mary again:
- Peter - "The key [to developing expertise] is deliberative practice: ... challenging yourself with a task that is just beyond your current ability ..."
- Mary - "Deliberate practice does not mean doing what you are good at; it means challenging yourself, doing what you are not good at. So it's not necessarily fun."
Deliberate practice is about learning. About learning that changes you; that changes your behaviour. As Mary warns, change is often accompanied by discomfort. 10,000 hours is a lot so it's important to you choose something you do find moderately fun. You need a fun balance.
By Jon Jagger
This work is licensed under a Creative Commons Attribution 3
Back to 97 Things Every Programmer Should Know home page