Programming requires a certain kind of thinking about things and methods of approaching problems. As with anything there are people who are inherently inclined to think about things in this way, but i do believe that anyone has the ability to learn the skills to be at least a half decent programmer.
Learning to break down a problem into smaller pieces, recognizing different situations in which something can occur, and being able to determine steps to accomplish a goal are some of the main components of programming and are used be most people on a daily basis to varying levels of success.
Now this being said there are a lot of fairly abstract concepts that need to be understood in order to be able to produce clean, scalable code that would be needed at most mid to high end companies. These concepts can be very dense for people to understand as there often are no good real world comparisons for them, and so these can prevent someone from becoming a highly skilled programmer.
So can anyone learn to program? For sure. Can anyone learn to program to the level required for a lot of jobs now a days? Probably not.
From what I have observed in myself and others, I suspect coding is something that anyone can learn to do. Some people may be particularly predisposed, but for others, effort can go a very long way to compensate. A lot of programming knowledge can be built up in small steps, and I don't think there is any innate pre-requisite for being able to make these steps.
I compare it to trying to learn a musical instrument:
- most people can learn to some degree
- hard work and dedication can compensate for a lack of ability
- for those of little talent, their end-point ability will always be very limited
- the truly talented can make mastery of their instrument look truly supernatural
As not all people should be musicians professionally, not all people should be programmers professionally. It's hard to put my finger on it, but in both cases some people just don't 'get it'.
Of course, if you are talking about having fun on your own - writing apps or making music - or 'jamming' code or music with your friends - you can do whatever you like.
how do you define "talent"? what is that "talent" thing you mention? where does it come from?
I'm asking because I don't believe in talent, I believe in practice (and everything you need to practice a lot – stuff like dedication and perseverance).
That being said, sometimes I'd love to believe in that concept called "talent", because "I've got no talent for music" would be such a comfortable excuse.
I volunteer as a tutor in a community college computer lab. I've seen people of all ages, intelligence levels and computer proficiency learn to program. In C, which isn't exactly the kindest language for beginners.
I've seen 50-60 year old men without college degrees, guys who work in construction, HVAC repair, physical jobs, learn C. I've taught them how to cut and paste, because they didn't know how. They hunt and peck, and they take awhile to. But they learn.
[+] [-] stevenameyer|13 years ago|reply
Learning to break down a problem into smaller pieces, recognizing different situations in which something can occur, and being able to determine steps to accomplish a goal are some of the main components of programming and are used be most people on a daily basis to varying levels of success.
Now this being said there are a lot of fairly abstract concepts that need to be understood in order to be able to produce clean, scalable code that would be needed at most mid to high end companies. These concepts can be very dense for people to understand as there often are no good real world comparisons for them, and so these can prevent someone from becoming a highly skilled programmer.
So can anyone learn to program? For sure. Can anyone learn to program to the level required for a lot of jobs now a days? Probably not.
[+] [-] mingpan|13 years ago|reply
[+] [-] mb_72|13 years ago|reply
As not all people should be musicians professionally, not all people should be programmers professionally. It's hard to put my finger on it, but in both cases some people just don't 'get it'.
Of course, if you are talking about having fun on your own - writing apps or making music - or 'jamming' code or music with your friends - you can do whatever you like.
[+] [-] rinrae|13 years ago|reply
I'm asking because I don't believe in talent, I believe in practice (and everything you need to practice a lot – stuff like dedication and perseverance).
That being said, sometimes I'd love to believe in that concept called "talent", because "I've got no talent for music" would be such a comfortable excuse.
[+] [-] lsiebert|13 years ago|reply
I've seen 50-60 year old men without college degrees, guys who work in construction, HVAC repair, physical jobs, learn C. I've taught them how to cut and paste, because they didn't know how. They hunt and peck, and they take awhile to. But they learn.
If they can do it, pretty much anybody can.
[+] [-] syberslidder|13 years ago|reply
[+] [-] jkaykin|13 years ago|reply
[+] [-] rinrae|13 years ago|reply
your question suggests that somebody who can learn to code can be a programmer; I don't think that's the case.
[+] [-] sonabinu|13 years ago|reply
[+] [-] shivrajrath|13 years ago|reply
[deleted]