By Michael Kaiser-Nyman, Epicodus President
Over the years of teaching people to code, I often get asked what kinds of people make good programmers, or how to know if somebody's cut out to be a developer. I've certainly noticed that some people have natural talent for coding and can pick it up remarkably quickly, but I'm also convinced that it's much less important than many people think.
There are three things I've seen that determine how quickly someone can pick up coding: aptitude, attitude, and experience. Aptitude is someone's natural, unearned talent. Attitude is the way someone approaches learning to code. And experience is simply how much time they've already spent learning how to code.
Aptitude is of course important, but for most people, their attitude and experience have a much greater impact on their learning curve. Someone who can stay positive while pushing through frustration is going to learn more quickly than another person who gets discouraged. Someone who isn't afraid of learning from their mistakes will figure things out faster than another who is scared of messing up. Someone who can slow down and pay attention to the details will succeed more quickly than someone who tries to blaze through problems without really understanding what's going on.
And besides your attitude, there's just no substitute for experience. What looks like wizardry to someone who's been coding for a month often feels like boilerplate to someone with just a few more weeks of experience. And just as importantly as actual coding knowledge, most developers build good attitudes as they gain experience.
If you're a new programmer, my advice is to not worry about your aptitude - there's nothing you can do about it. Far more important is the way you approach your learning, and the amount of time you spend. Cultivate healthy attitudes, be patient with yourself, and spend lots of time coding. For most people, attitude and experience are far more important than whatever natural skills you were born with.