To my mind, though, the thing that separates successful learners from unsuccessful is persistent constructive dissatisfaction. If you have some difficulty finding contentment—and are never happy to rest on your laurels for too long—then you will be determined to achieve more and more, and learning will happen as a by-product. The longer a plateau becomes, the more likely it is to stay a plateau; and the shorter you can make a plateau, the better for your progress.
Perhaps, as you say, this comes from not keeping track of learning progress. However, I think there is an important other side of it: you do want to keep track of progress toward some other goal, such as making a game. Then it becomes a matter of “I need to learn about networking in order to add multiplayer to my awesome game”. When learning stands between you and your dreams, you quickly learn to learn quickly.
If another person calls me “Evin”, I may have to stop using the name “evincar of autumn”. The reference is so easily lost.
Thanks for the encouragement and validation.
I stumbled across this incredible article reading Jeff Atwood's now-apparently-controversial post on that subject I'm avoiding like the plague.
Back to the point, it basically summarizes what I tell all of my friends who gain an interest and want to learn fast. I've been learning for over a decade out of interest now since I was 12 and I will never refer to myself as anything other than marginally competent. I akin programming to math in the sense that the ceiling is not really there because there is always more to learn and thats what the majority of your (programming) life is spent doing.
"If your goal is to get a little bit better every day, you’re constantly monitoring your progress. But your barometer for progress is so screwed up that it becomes extremely discouraging very quickly. This is the point where most people give up."
This second sentence is my favorite in the entire post.
When I started coding 15 years ago, all I cared about was having fun, learning and building something great. All you need is a fun project, emotional ignorance to the peaks and valleys in your perception, and a lot of practice.
This is very different from the current academic approach to teaching people how to code. The projects are usually boring and dull, you start by learning theoretical constructs and what not - instead of experiencing the joy of hacking.
Btw your post reminded me of a few books:
- The Talent Code
- Talent is Overrated
All fantastic books in the field of deliberate practice. Once you learn and internalize the process of deliberate practice, you become free of the emotional burden that comes with learning new stuff.
Like most things, awareness of the pain alleviates it substantially. Your post does a great job at creating awareness.