Fog Creek Software
Discussion Board

Good programmers are born, not trained?

I had a discussion with a colleague of mine and he put forth a belief he has:  "Good programmers are born, not trained."  This is not to say that one can become a good programmer without effort - on the contrary, it takes a lifetime to become a master.  But just as in baseball, if you're not a natural, you can spend you're life trying and you'll still be mediocre.

I never thought about it, but it seems reasonable to me.  What do you guys & gals in internet-land think?  I'd love to see Joel do an article about his beliefs on this topic.  Any hard data on this?

Tuesday, April 29, 2003

IMO, programming is just like any other activity...

Anyone can do it with enough persistence and practice, but there are certainly people who have much more of an innate natural talent for it than others and these people will tend to progress faster and reach a much higher plateau than those for whom the subject comes harder. 

Same as any other career, whether you're talking about pro-athletes or accountants...

George McBay
Tuesday, April 29, 2003

That hardly seems unique to software development. Anything that takes a very high level of physical and/or mental capability will favor a select few. Many can participate, but those few will ever remain far and beyond the average.

Brad Wilson (
Tuesday, April 29, 2003

I'm not so sure.  Obviously, intelligence is a huge factor, but in my opinion, maybe even more important is the ability to focus and operate at peak mental capacity.  I know people who are much smarter then me, but can only concentrate for small periodsof time.  I have a feeling if someone can learn to concentrate, focus, and constantly be in the "zone", they'll be an out of this world programmer.

Vincent Marquez
Tuesday, April 29, 2003

One can train just about anybody to excel at just about anything.

However, it may take a lot of effort, and for some skills it is necessary to begin before the age of two.

There is quite a lot of academic research to support this.

Anonymous Coward
Tuesday, April 29, 2003

I grew up in a home where my father was involved in the beginning stages of data processing.  The skill that I think makes my life easier is logical reasoning. The ability to think in steps. 

I was a tutor for Introduction to Programming.  You remember the class?  First year of college and it seemed as if the goal was to drive students to another career choice.

It was there I began to appreciate that people think differently.  Not good, not bad, just differently.  The people who had trouble with "write down all the steps to getting the mail", would continue to have trouble.  They could be great at other things and with extra effort could work through the major, but it was never as easy as it was for some of us.

Born?  Probably not.  Environment?  Probably helped a lot.  Trained? Most difficult method.

Mike Gamerland
Tuesday, April 29, 2003

the main requirement for any computer related job is the ability to sit in a chair for 16 hours a day. another career with this requirement is airplane pilot. this is why so many retired programmers get pilot's licenses: they are both activities that can be done while seated.

Tuesday, April 29, 2003

Some people are smarter than others.  Some people are naturally more talented in a given area than others.  This is news?

"However, it may take a lot of effort, and for some skills it is necessary to begin before the age of two."

Be careful with this. I live in an area with a lot of over-achieving parents who try to cram education down their kids' throats. I couldn't believe some of the things my daughter's kindergarten teacher told me that parents force on their kids. You only get to be a kid once.  Adulthood comes fast enough.

Tuesday, April 29, 2003

I think it's wishful thinking.  Programmers like to pretend that they're special.

big bob
Tuesday, April 29, 2003

Leonardo Herrera
Tuesday, April 29, 2003

good programmers think they are special. Bad programmers think that good programmers think that they are special, but they are not.

Or something like that, anyways.

Tuesday, April 29, 2003

commanderSpock wrote, "Good programmers are born, not trained?"

You need to provide some type of context to your post because words like mediocre and good don't mean much by themselves. That said, some people do seem to have the innate ability to create a working software product from nothing better than others do. However, I believe this is only makes these individuals "good programmers" in specific work situations. For example, I know that I couldn't replicate what [insert whatever name famous name you wish here] Bill Gates and Paul Paul Allen did before they formed Microsoft. Now having said this, I don't believe someone like a Bill Gates would have lasted very long as an employee of IBM or some other large corporation where he was required to write custom business applications all day long. IMO, corporate management would have probably branded him a loner and a kook long before he had the chance to demonstrate his brilliance.

Among many other things to be very good at just about any work related activity requires:

* Time
* Some talent
* The right work environment
* Hard work
* Lots of practice
* Luck

I don't like comparing what I do for a living with people who work in other industries (or even in different areas of software development). Pro athletes and accountants for example, all have to follow the same set of rules. In the world I typically live in, each employer gets to make up whatever set of rules they feel are appropriate. Although there will always be some controversy involved in just about any human activity, I believe it is a heck of lot easier to figure out who is the best bowler on the team than it is for many employers to figure out who is the best programmer currently working for the company.

One Programmer's Opinion
Tuesday, April 29, 2003

Wait a minute, I understand CString*&.

I want to retract my original comment. 

I AM special.

big bob
Tuesday, April 29, 2003

Well, mathematicians are supposed to peak around 20. Musicians on the other hand tend to peak much later in life, around 70 or so (there's some research on this somewhere, dont have a link handy).

This seems to suggest to me that science is something you're born with, where as art is something that takes experience.

As programming is closer to mathematics than music, I'd suggest good programmers are more likely to be born than trained.

And the horse you rode in on
Tuesday, April 29, 2003

Perhaps there's a programming gene? Or is it more of a generic nerd gene we're talking about? But seriously, this is a biiiiiiig topic and goes well beyond the field of computer programming.

Why is it that some people seem to be more talented in certain areas than other? From what I can tell, the current scientific consensus is that there is no consensus, but it has something to do with genetics, something to do with physical development, and something to do with culture.

In my case, I got my first computer (a Tandy MC-10) at the age of ten and spent many blissful months coding games on it. This - I think it's fair to say - is a major reason why I'm a programmer today. Which implies that my talent is cultural in origin. But why did I go out of my way at a young age to acquire a computer when many other kids didn't? Were my hacker genetics compelling me towards that tiny keyboard?

I dunno.

Angus Glashier
Tuesday, April 29, 2003

Talent and drive.  People with drive can go as far as someone with talent and no drive.  People with both talent and drive CANNOT be surpassed by someone with only talent or only drive.  It is like momentum mv=p only here it is td=great programmer.

Tuesday, April 29, 2003

Talent and drive start to mean more, once you get over the notion that "skill" is everything. 

Skills can be developed, pretty much by anyone and that achieves a nice average programming widget... at least someone that can follow a "system's engineering" checklist/template without falling asleep too often and possibly hurting themselves.

Talent is not so common... and drive even less so...

Joe AA
Wednesday, April 30, 2003

Are good chess players trained or born?

Are good mathmeticians trained or born?

I submit that the questions above are analogous, and have been asked many, many times in the past.

Do a google search, write a research paper.  Heck, I'd read it!



Matt H.
Wednesday, April 30, 2003

Mr Spock, I fear you spend too much time on the ship.

If you mix around a bit, you will inevitably find that some people seem naturally better at various talents such as capturing 2D representations of the environment (drawing), representing complex material to different audiences (writing), perceiving the lie of the land ( infantry commander ), arranging audio signals in pleasurable ways (musician) and so on.

Perceiving and representing complexity is just another of those talents, and is the one that's important for natural software designers.

Must be a manager
Wednesday, April 30, 2003

Well heck, I'm great at programming and I even understand CString*&, but I sure as hell can't do a front flip (or any kind of flip)... and wouldn't even want to try.

I think it has to do with natural abilities and where your passions lie. It usually takes both to be great at something.

Wednesday, April 30, 2003

Someone said, (I think Bill Gates) that you will find some programmers with 10 years experience, and other programmers who have had 1 year of experience 10 times. I think he went on to say that if your going to be a good programmer, you going to do it in the first year.

I am finding this to be true in practice. It amazes me how many programmers I see that are still in the same mindset they had when they first started programming, it's like they learn just enough to get a program to compile and stop learning.

Friday, May 2, 2003

I want to be a programmer so i have that drive toward learning. i want to suceed and aquire more knowledge everyday. I think in order for someone to learn programming they have to work at it and if you enjoy it keep doing it. Yea, toward people having talent in different things is correct. Im considering people like things and have a drive to learn and it does make sence that programmers can be born to like coding. Enviornment does have a fit in this subject. To tell u the truth i dont know where my enviorment came to liking programming but i sure have the drive.     

Fern .S
Wednesday, January 28, 2004

*  Recent Topics

*  Fog Creek Home