Below is my answer to the question on Quora, How well does the age someone starts to learn programming correlate with their long-term technical ability and professional success?

I don’t believe there’s necessarily any correlation between starting programming when you’re young, and ultimately ending up a better programmer. However, I’d like to add one corollary. I believe an important aspect of being a good programmer is fearlessness.

To become a better programmer, you can’t be afraid to screw up. In my experience, the best way to learn was by making mistakes. By learning to program at a young age, you are learning to program when you are more fearless.

I analogize this to kids who learn to ski at a young age. I never ceased to be amazed at how fast these kids would barrel down the slopes, without even using poles. If the wiped out — and this certainly occurred — they got up, wiped the snow off their face, and continued barreling down the slope.

On the other hand, novice adult skiers proceeded with caution and trepidation, morbidly afraid of a wipeout.

To circle back to the answer, I believe the most important technical ability in a programmer is not being afraid to mess up. We all know those programmers who wait weeks to push their work to git, because they’re afraid there could be the slightest bug. And usually, after weeks of delay, there’s still a bug! So all the worrying and hand-wringing was for nothing.

tl;dr: Fearlessness, in general, is a personality trait. If you have it, you’ll be a superior programmer. It’s just easier to express and learn fearlessness when you’re younger.