From a Non-Programmer’s Apology, Aaron produces one of the best articles I have read – “To be or not to be” a programmer.
Learning is like compound interest. A little bit of knowledge makes it easier to pick up more. Knowing what addition is and how to do it, you can then read a wide variety of things that use addition, thus knowing even more and being able to use that knowledge in a similar manner.5 And so, the growth in knowledge accelerates.6 This is why children who get started on something at a young age, as Mozart did, grow up to have such an advantage.
But there is another, more important motivator – interest.
And even if (highly implausibly) we were able to control the circumstances in which all children grew up so as to maximize their ability to perform the most important tasks, that still would not be enough, since in addition to aptitude there is also interest.
A quote in his notes, provides some clue on how to tackle such dilemmas – where you are good at one thing but would really like to do something else.
“when it comes to choosing a life path, you should do what you love — because if you don’t love it, you are unlikely to work hard enough to get very good. Most people naturally don’t like to do things they aren’t ‘good’ at. So they often give up, telling themselves they simply don’t possess the talent for math or skiing or the violin. But what they really lack is the desire to be good and to undertake the deliberate practice that would make them better.”
Related The Definition of Work (originally titled “It is hard to find work you love”)