This one is going on my permanent list of links to recommend.<p>When it comes to learning these sorts processes, there is a hierarchy of related phenomena required to succeed:<p>motivation > intuition (experience) > patience/persistence/determination > skill (aptitude) > tools<p>When people are learning to program, I always tell them that regardless of their preference between books, videos, classes or peyote, the most important thing they need to persevere is a problem or project that they passionately want to see through to the end. This urgency translates directly to giving a shit, which is something I believe is critically missing when implementing a TODO clone in language framework X.<p>My hierarchy above can be viewed from another lens: in what order does having ample supply of this trait <i>open the aperture</i> for all of the others that follow?<p>Being really patient and having access to Stack Overflow can make up for a lack of skill. Doing something for a long time can occasionally make short work of a project if you see the answer quickly. However, nothing else in the chain matters if you aren't urgently motivated to reach the conclusion. When you feel genuine <i>need</i> to see something through, everything else clicks into place.