The reason I learned to code at age 13 was so that I could automate slaying monsters in a text-based RPG that I loved. Today, I code for a number of other reasons: to earn a living, to make tasks in my life easier, to impress the ladies, etc.<p>Over the years I did eventually develop a deep passion for understanding data structures, algorithms, design patterns, and all the other “boring” aspects of software development. But one thing is certain — you could never have lured me into programming by teaching me about the knapsack problem or the strategy pattern.