If you are somewhat naturally inclined a few years of mucking around in a field can make you decently good at it. Good enough a get a job and start making a living out of it. That's exactly how far mucking around will typically take you.
From that point on you have two options:
- Keep looping: where you keep writing the same CRUD screens for seventy years and keep making a living out of it.
- Move to the next level one step at a time with Deliberate Practice.
Deliberate Practice is where you meticulously and carefully examine every aspect of what you do and what the best people in your field of work do.
For authors deliberate practice involves not just writing, but reading the works of other authors who happen to be better than them. For musicians, it involves listening to the music of other musicians. For software programmers it involves reading code and learning from other Alpha Geeks and kickass programmers around the world.
But deliberate practice doesn't end at meticulous observation. It involves stepping out of practice using your comfort zone and moving to practice using your learning zone.
A classic example of this would be, spending a week to figure out how to tube, tweak and improve your JQuery based Ajax calls to make them faster. Deliberate practice is hard work. Deliberate practice is painful. Deliberate practice is scary because the first step is a silent acceptance of how little you know.
Deliberate Practice, or lack of it thereof, might also be the reason behind why most programmers cannot program.
What did you do today? Complete your tasks the entire day? Or did you indulge in the act of deliberate practice using your learning mode for at least a couple of hours? Yes we know deliberate practice is hard and painful but that anything that is wroth doing, is. Go on. Keep a few hours a day aside for deliberate practice of your craft.
I wish you good luck.