• Forum
  • Lounge
  • Art of Programming: Learned or natural t

 
Art of Programming: Learned or natural talent?

Pages: 123
So, there seems to be some people out there who like to debate whether good programmers are just born that way, or they had to work hard at it. I'm not saying some people are just born writing solid programs, but some people seem to think that people are either destined to be a good programmer, or they aren't. Bill Gates is actually one of these people with this opinion.

What is your guys' opinions? I personally agree with both sides. I think logical people are going to have an easier time picking it up, but I also think with enough work anyone can be just as skilled as anyone else
I don't believe in talent.
Why not? It's not exactly far fetched to think that some people are born with the ability to learn and do something particular a lot more easily than others.
That's kind of my opinion. Some people are naturally logical thinkers and will probably have an easier time with it, than the more artistic thinkers. But, I don't think in the long run one will be better than the other. If I could find that Bill Gates quote about this, I would link it.
I agree with xander here. I do believe that some people are able to systemize things in certain fields easier than others may. Not willing to offend anyone with this, but isn't autism some form of talent in that sense? Because the extremes are there in the real world, why wouldn't there be other talented people as well?
http://www.codinghorror.com/blog/2007/01/how-to-become-a-better-programmer-by-not-programming.html

First quote on the page, Bill Gates. I didn't read the rest of this article

EDIT:
Just skimming through the article, it's very much so "You're born with talent and can't learn the skill" oriented. Interesting none the less
Last edited on
@xander337,
I'm kind of torn over it. On the one hand, part of me doesn't believe in the concept of someone being automatically good at something. On the other hand, I certainly would agree that some people find certain things more intuitive than other people. I like to think that I pick up new concepts very quickly.

Some people (warning: weasel words [warning: alliteration]) think that it's to do with passion and dedication. Even if you spend 6 hours a day reading about something, unless you're passionate about it I don't think you'll ever get anywhere with it. Why would your brain remember that information? I've read (more weasel words) that the brain is more likely to remember information that is connected with emotion (or passion).

p.s. I feel like I'm rambling here and that my brain's not working properly, so if I take back everything I just said tomorrow, my excuse is that I don't seem to be thinking straight.

@Kyon,
Don't autistic people tend to be good at solving problems because their brains focus on just that problem and drown out distractions (like social interaction and emotions)? My source is "I read it somewhere" (there's those weasel words again)... My excuse is that the human brain doesn't tend to remember sources of information, just the information itself (I read it somewhere).
Last edited on
Now that I've thought about it some more, I've changed my mind, and I think that talent probably does exist.
The main problem is, as you already noted briefly, defining whatever talent is. I think talent has two main approaches which lead up to the same result:
1. Every single person is unique (generally speaking). Everybody is different too, from the out- and inside. It's only logical to presume that the human brain is "unique" too, this could lead to either pre-programmed behavioral changes or having some talent.

2. The second point is pretty much about dedication and interest. If you're willing and able to learn, you will. This is especially effective in your early life, as your brain is still developing during that stage of your life.

I believe both of these kinds of talents exist, genetic (if you will) and learned.

Whether one is better than the other is heavily dependent on the person in question. I would generally say that the person with the "genetic talent" would systemize the problems easier than the person with "learned talent". Keep in mind though that with practice, almost any system can be analyzed to such an extent that it can be fully understood by anyone. I hope I didn't lose anyone there (it's quite hard to explain what I think about it).

But that's just my thoughts.
Back to the topic proper... It's kind of worrying for me because no matter what it nets me, being considered a mediocre programmer would be depressing. I've been programming probably for around 3 years, so I'm nearing the cut-off point (according to Gates), and I still consider myself pretty mediocre.
@chrisname,
I wouldn't worry about what Bill Gates says there. He's not the supreme ruler of the technology world, nor does he know everything. I believe practice and dedication will always yield benefits
No, I agree with that, but it's still slightly worrying. At the same time, I think the fact that I care so much means I won't stagnate, because I programming is, for me, an actual passion. Maybe passion is where the difference between the mediocre programmer ("this is just what I do for a living") and the great programmer ("this is one of my biggest hobbies/interests/whatever") lies.
I totally agree with that. When I first stumbled on this quote (like a year or so ago now) I too was kind of worried. I have a fear of being "average". I always strive to be the best at whatever I'm doing. Especially in this field.
I only have it with things I care about, and this is one of them.
I believe it is both. Some are just naturally able to program, while others have to work hard to program. I hate when people tell someone they aren't cut out for programming just because they have trouble with a language. I know a few friends that can code like nothing in Visual Basic and some in Assembler but can't seem to catch on to C/C++/C#/etc and they are always told they aren't cut out for programming.
I've only ever seen people told they weren't cut out for programming in situations such as continually asking people to explain things to them, even after being directed to sources. Even then, saying they're not cut out for programming is unfair, they just need to learn to do their own searching and reading. I guess frustration just gets the better of people.

As for being naturally able to program, I don't know if that applies to anyone. Some people probably learn considerably faster, though. For me, it took a few weeks of fruitlessly reading C++ articles and then actually giving up before I went back to C++ and it suddenly just sort of clicked.
I remember reading a research paper about the apparent Dichotomy in computer science students, and which defines a test that can show with some level of accuracy whether or not a student is destined to fail or can actually program before they've seen code before in their life.

An article on the matter:
http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html

A page for the actual research paper:
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/
I believe it is also how you were raised... If you are raised in an environment where you don't have to solve any problems (around 2-6 I would say) then it will be harder to learn how to problem solve, IMO
The conclusion that people have difficulty with the idea of accepting "meaningless" rules is not a personal trait -- it is taught.

Even university students have a hard time in math class with logical consistency. That is, they have not been formally taught that you must apply the same logic to solving a subclass of problems every time they solve them. Logic, it seems, is not carefully taught except as an elective course in post-elementary education.

I actually had a friend who once complained to me that he wanted people to be logical. The problem was, he didn't actually mean logical, he meant that he wanted people to think and behave like he would. Alas, he was not very logical -- at least not in the formal sense of the word -- he presumed that his view of the universe was, well, universal. Hence his frustration.

We see this inconsistency all the time in real life. Remember a few years back when Toyota was getting flack for stuck accelerator pedals? Turns out that very few models had an actual problem. A great many of the pedals were stuck because people would put too many floormats in the car, and the floormat would jam the pedal. Even when confronted with this knowledge, many people will not remove their extra mats. (This continues to be an issue for mechanics worldwide.)

My father wrote a big Access database program to manage someone's business. At one point the customer called my father back because the program began behaving incorrectly. As my father looked through the code, he eventually came upon a whole bunch of stuff he didn't write, smack dab in the middle of one of the important routines. When he asked about it, the response was to the effect that the change had been necessary to accommodate some minor business need. Whomever did it, though, broke the program. Dad had to spend some time cleaning up, and adding the minor change the proper way. (In a nutshell, "I changed the code, but now your code is not working right.")


A great assumption in all education is that people connect information consistently, and there is very little effort to directly acknowledge the reality that this is not true. Instead we focus on individual, circumstantial things -- yet more meaningless rules that cannot be remembered about some fact of process. People make thousands selling mnemonic devices for improving memory, when it is really just a patch for the underlying problem:

Some people learn to connect consistently and some do not. Those that do excel. Those that do not "just have to find the right thing in life," or some such.

All of us have some deficiency in many areas of our lives, but programmers have learned to think about logical process consistently before they leave grade school. Hence, they seem somehow magically predisposed to be able to program correctly. Of course, by the time it becomes an issue, it is a very difficult thing to remodel the way a person thinks.

My $0.02.
Going off of Myers-Briggs typology, T's are supposed to make better programmers than F's, and N's also make better programmers than S's. So there's no question that some people are inherently better programmers than other people (of course, this is all assuming that Myers-Briggs typology is well founded, which I think most people would agree with). I personally believe in nurture over nature, and it is agreed upon that MBTI traits are determined around the ages of 0-6, so I think it's reasonable to say that the "art of programming," is learned, specifically at the ages of 0-6.

None of this is to say, however, that any SF type will always be an inferior programmer to an NT.
Pages: 123