
When kids first learn to ride a bike, the first thing they want is to do it “one more time!” They have accomplished a complex combination of skills and want to make sure it wasn’t just luck. They want to know that they have really figured out how to do this new thing. In learning software development skills, we need to do the same.
Once you’ve succeeded in figuring out a new skill, lock it in. Make sure it wasn’t just luck. Once you reach that new level of speed and accuracy in typing, do it again – until you can repeat it consistently. Once you’ve figured out how to implement a design pattern or a refactoring method, throw away the code and do it again. Once you’ve learned a new language idiom, write a different function and try it again. Really lock it in!
There is an idea called “micro-skills” that says that every skill we learn is based on some number of micro-skills that we have to know before we can really master the main skill. For instance, riding a bicycle requires the ability to balance your body, coordinate the movement of your feet, observe your surrounding environment, control the steering, and many other skills. Each of these skills is built on many sub-skills as well. Balancing your body on a bicycle is different from balancing when you stand or walk. Just ask a toddler!
So by repeating a new skill, you not only understand how to accomplish that skill, you start to understand the details of the micro-skills that went into accomplishing that skill. When you understand the pieces you had to combine and coordinate, and how that all had to be done, you really know that you have that skill mastered.
So do it! And then do it again!
What are some of the micro-skills that you have to master so that you can get to the next level of learning in your practice?

