Can anyone be a good programmer?

Started by
22 comments, last by Toji 18 years, 4 months ago
That's like asking if anyone can be a rocket scientist, and the answer is yes.
Advertisement
Quote:Original post by me22
Quote:In Freshman year CompSci, there are always about 200 kids at the beginning of the semester, all of whom wrote complex adventure games in BASIC for their Atari 800s when they were 4 years old. They are having a good ol'; time learning Pascal in college, until one day their professor introduces pointers, and suddenly, they don't get it. They just don't understand anything any more. 90% of the class goes off and becomes PoliSci majors, then they tell their friends that there weren't enough good looking members of the appropriate sex in their CompSci classes, that's why they switched. For some reason most people seem to be born without the part of the brain that understands pointers. This is an aptitude thing, not a skill thing – it requires a complex form of doubly-indirected thinking that some people just can't do.

~ The Guerrilla Guide to Interviewing by Joel Spolsky

Argumentum ad veracumdium and all, but :P

Interesting. I also find this angle of "math is not programming" interesting as well. It has long bothered me that people suggest that the best programmer will be the best mathematician. I personally have always done well with math, but I always knew that I would not be the best at it (certaintly not the fastest). I could understand the concepts immediately and apply them, but when it came to the part of working out actual problems I was sloppy. The negative sign dissappeared, or a 3 became a 2, or the decimal place moved on its own. However, the math that I wrote down always had the right process.

With programming I mostly have to worry about the actual process rather than the exacting execution. The math understanding comes in mostly for figuring out the final equations that will be applied to solve a particular problem. Personally in programming, I have never needed to take out a pencil and paper and work out equations that have numerical answers. I have done that for reducing an equation to something more simple but that was mostly alegebra and a little calculus. As for matricies, once I understand the method to appling operations the coding for it is easy and working out optimizations is possible.

I cannot lay claim to any proffessional experience but that is the result of my 11 years of personal tinkering.

As I see it math has two important parts to it.
1) The abstract working out equations side. - This is crucial
2) The concrete work of solving equations and finding numbers. - The importance of this depends on what your are solving the equations for. In engineering and physics this is crucial.

Those human calculator guys are the ones who are good at number 2. I on the other hand will always need to check my answers, so #1 will remain the stronger trait in me.

I do admit that practice has improved my accuracy. However, I always find a few errors after rechecking my answers and a few times I have missed them even after the second check. I also believe that many math teachers out their are poor at explaining their thinking processes to students.

Now, in programming classes I have yet to meet a student that produces working code as fast as I do. Although I am usually the only one in the room with 11 years experience asside from the instructor who is retired and writes code that sometimes makes me cringe :\
Programming since 1995.
Quote:Original post by I_Smell_Tuna
That's like asking if anyone can be a rocket scientist, and the answer is yes.

To be an astrodynamicist? If your not the fastest math student in your class you'll have a very long way to go. They're probably better uses for your time as well. You can be whatever you want but it's more sensible to pursue your true talents.

Anyway, I wanted to make one more comment on programming.

Programming is not math, programming is problem solving. The problem solving in programming often uses the methods of math to find the optimal solutions.
Programming since 1995.
I think that within the higher ranks of any profession/skill/art there are two types of people: Those with Talent and those with Skill.

Take, for example, music (it's a bit easier example to comprehend.) I have a friend whoe I swear came out of the womb with a keyboard attached. This kid can play ANYTHING on just about any instrument you give him, and he's been doing this since he was quite young. Now, that's not to say he hasn't worked at it. He's worked his ass off to get to where he is. Still, it's quite apparent that there is simply something about him and the way he thinks that helps everything "click" without much effort. He just "get's it". The construction of a chord is as natural and sensible to him as 1+1=2. He indisputably has talent when it comes to music, and I'm sure he'll go far with it.

Not everyone has that special "I get it!" part in their brain, though. At least not for most things. I can sit down with a guitar and strum some chords, play a few simple songs, and even play along with someone singing from time to time. I'm not anywhere near as good as my friend, but I'm also certain that if I were to devote to time and effort to it I could become nearly as good. I could become a skilled musician, one that came close to or matched a talented one. The only thing holding me back from that is lack of time and ambition. I'm a programmer, that's where I've found my talent. I grok pointers, objects, functions, and the like, while I have trouble figuring out why a chord progression works like it does. I'd rather continue to push myself at excelling at one thing than becoming "good" at several things.

So the short answer would be that anyone can become skilled at anything they set their mind to, while many people tend to be innately talented at some things, making it easier for them to excell at whatever it may be. Just because you lack talent shouldn't discourage you from persuing your interests though.

// The user formerly known as Tojiro67445, formerly known as Toji [smile]

This topic is closed to new replies.

Advertisement