This article can be summed up by point 1 of George Leonard's keys to Mastery, or Getting Good at Anything. All 5 major points are as follows:<p>1. Find good instruction. (Read good code, find a good programmer)
2. Love to practice. (Write code.)
3. Have the beginner's mindset. (Don't get cocky, observe with new eyes.)
4. Have a vision / goal. (You want to be an architect? Graphics guru? AI master?)
5. Push the boundaries. (Code beyond your perceived "abilities".)<p>A more succint and general version of that quote is by TS Elliot: Talent copies; genius steals!<p>Anyway good read!
Per the "read code" suggestion, I often come up with excuses to browse through the Linux kernel code: <a href="http://lxr.linux.no/linux" rel="nofollow">http://lxr.linux.no/linux</a><p>It's clean, discoverable and it does interesting things. Although it might help to first go through a book like Understanding the Linux Kernel: <a href="http://oreilly.com/catalog/9780596005658/" rel="nofollow">http://oreilly.com/catalog/9780596005658/</a>