Can Anyone Become a Programmer?
another random user writes "A Q&A on Ars Technica asks about an old adage that many programmers stick to: 'It takes a certain type of mind to learn programming, and not everyone can do it.' Users at Stack Exchange are wading in with their answers, but what do Slashdot users think?"
No
Some people do not have the logical thinking skills that are required to be a successful programmer.
the only answers you will find in this thread will answer a different question:
"what prejudicial preconceptions of yours about the field of programming tweaks your ego?"
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Being into computers since 1990, I had thought coding may be a career. In 1999, my first shot at college, and coding, I came to see it was not for me.
I aced the C Programming course, but it wasn't the technicalities of the language that repelled me... it was the environment.
I realized a day's work of coding meant sitting in one spot, staring at chars/text, thinking, and then more of the same. Even the 2-3 hours of coding "lab" was absurd, to me. I was NOT ok with this style of work.
I realized the CS path was clearly for someone else and moved on.
I think it requires a certain level of intelligence as a minimum. Nothing incredibly special but above average and an interest in learning how to control that box. Interest can drive aptitude. But a low IQ is going to hamper working in, say, C. Object-oriented and the workings of inheritance in C++ are going to be hard to work with if you're plain dumb.
Documentation for libraries is not infrequently poor or even wrong and there seems to be some tacit assumption that programmers will work out how things work anyway, even if that just means knowing where to get help.
And it depends what you call "programming". If that includes designing solutions to complex or novel (hence no off-the-shelf libraries) solutions, then you have to design complex algorithms, which requires creativity. You need to be able to evaluate and select the right solution, too, something even very smart programmers get wrong.
I think a distinction should be made between a programmer and a *good* programmer. My CS program had a number of *really* smart kids - 1600 SAT scores and the like - but many of them really struggled at the concepts and barely made it through the curriculum. I think a good programmer takes 1. Creativity to think about problems from different angles 2. Drive to hunker down and get through hard problems (be it starting a new language, that pesky compile error, starting a large project from scratch). 3. I'm sure fellow slashdotters can think of many more
Your whole post left my mouth agape. The standpoint that you are coming from, all programming can be simplified into dragging and dropping visual widgets and throwing in a bit of high-level platform code to tie it all together. If that is your view of what programming is, no wonder you think it isn't special. You aren't always programming on Windows. You don't always have desktop-sized amounts of memory. Sometimes YOU need to write one of those libraries that are NOT "already coded".
And no, an astronaut doesn't just "drive the shuttle"
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
Anyone can become a programmer, just like anyone can become a painter.
It does not mean that the person would be a good programmer though. I could be an artists, but I would not be a good painter if my life dependent on it.
Your whole post left my mouth agape. The standpoint that you are coming from, all programming can be simplified into dragging and dropping visual widgets and throwing in a bit of high-level platform code to tie it all together. If that is your view of what programming is, no wonder you think it isn't special. You aren't always programming on Windows. You don't always have desktop-sized amounts of memory. Sometimes YOU need to write one of those libraries that are NOT "already coded". And no, an astronaut doesn't just "drive the shuttle"
You have to keep in mind, the post seems to have come from a designer. It just sounds like a lot of sour grapes to me.
Just like anybody can learn to draw. Or to swim.
But that doesn't mean anybody can be the next John Carmack, Leonardo Da Vinci, or Michael Phelps.
Even if we reduce it to the nonphysical work and remove the naturally talented aspect, there is the simple matter of time and drive -- which few people have.
I don't know about sour grapes, since it is a reasonable a priori position, but it is wrong as far as I can tell from the literature.
Abstract. A test was designed that apparently examined a student’s knowledge of assignment
and sequence before a first course in programming but in fact was designed to capture their rea-
soning strategies. An experiment found two distinct populations of students: one could build and
consistently apply a mental model of program execution; the other appeared either unable to build
a model or to apply one consistently. The first group performed very much better in their end-of-
course examination than the second in terms of success or failure. The test does not very accurately
predict levels of performance, but by combining the result of six replications of the experiment,
five in UK and one in Australia. we show that consistency does have a strong effect on success in
early learning to program but background programming experience, on the other hand, has little
or no effect.
I like to think I'm a more-than-competent SQL programmer, and I don't hurt myself too badly at Web and Windows Forms programming.
I work with somebody who does some great stuff in C# who can't warp his head 'round set theory and therefore has real problems with SQL.
I know somebody else who's a real monster with Cisco stuff (a Cisco employee with certifications coming out his ears), and I'd argue that creating networking and firewall rulesets is every bit a form of programming as anything I do...but he'd need some serious handholding just to do a "Hello World" program in Visual Studio.
I know another guy who can make COBOL sing and is not bad at SQL (though he prefers to write his SQL with more procedural code and less set theory than is good), but he wouldn't have much luck doing more than tweaking a Web form.
We're all programmers, all of us good at what we do, some of us great at what we do...and, yet, making any one of us look like rank amateurs at huge swaths of basic programming tasks wouldn't be hard at all.
Could we become good programmers outside our areas of expertise? Probably. But it took me quite a while to figure out how to truly think in set theory, and I'm not sure I'm capable of more than a handful such masteries in any given field in my lifetime.
Cheers,
b&
All but God can prove this sentence true.
Based on my experience as a professional software developer dealing with many other programmers, I have to say yes! Anyone can become a programmer. You don't even have to learn how to program!
Computer science is, practically by definition, a subset of math. But there are many branches of mathematics out there, and being great at one doesn't necessarily mean a person is great at all of them.
Also, just because someone happens to be a great computer scientist doesn't mean they must also be a great programmer.
Happy people make bad consumers.
Can anyone learn to play the piano? What about playing the piano compently? What about playing it excelently? Can you read sheet music? Can you read sheet music in one key and tranpose it to another while you play? That last part is easy. All you have to do is teach yourself to read sheet music in such a way that you say "Oh this is in the key of C, so this note is the 3rd intreval in C" and tell your hands "you are playing in G, play the third intreval in G".
It takes dedication, undestandeing, and practice. Oh and natural ability. How good is your ear? How much dexterity do you posess? How well can you listen to other things, read sheet music, conrtol your hands and maintain a tempo? Each person has limits. You might always suck, maybe you can be acceptable. Even then, somone who has many limitations but lots of dedication undertandind and pactice can outdo someone with a natural nack, but does not apply themselves.
Most people don't apply themselves to learn to play the piano or to program.
How much self import should someone have who has learned to play the piano, crack a safe, walk a hiwire, dircet air-traffic, put out an oil rig fire, implode a building, cut a diamond or progam have? Be a little nicer to the 80+ percent of us who have invested enough to have the chops to do this kind of work.
vi +
I believe everyone can code, but obviously some people are going to be intrinsically better at it.
A few weeks ago, in less than half an hour, I taught about 20 2nd grade kids (generally 7-8 years old) how to count in binary as well as add any length of binary number.
Wondering whether I could beat that, I repeated the feat last week by teaching about 20 1st grade kids (6-7 years old) exactly the same thing. The 1st graders had more trouble keeping their attention than the 2nd graders, but they were all the more enthusiastic to learn.
In case you're wondering how to teach kids of an arbitrarily young age how to learn binary, here was how I did it in three rounds of kids raising their hands to answer my questions:
1. Raise your hand if you like to play video games.
2. How many of you would like to make a video game?
3. Who would like to know the three secrets to making a great video game?
By the third question, I think I could have staged a coup with the eager little mobs.
I've got my eyes on a local pre-school next.
That came out wrong.
PS. Teaching kids how to count and do math in binary is way, way easier than teaching them how to do it in decimal. It should come first IMHO.
one could build and consistently apply a mental model of program execution; the other appeared either unable to build a model or to apply one consistently
So..Programmers and Managers.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
I agree. Everyone can learn to write basic programs. That isn't to say that everyone can become a good programmer.
I think it requires a certain level of intelligence as a minimum. Nothing incredibly special but above average
There you have it. You think being able to program makes you special in some way or indicates that you're above average.
Here's the truth: Any idiot can write code. Hell, half of Slashdot taught themselves to program when they were between the ages of 8-13.
All it takes is the will to learn something new. It's no different than learning to work on cars. Do you think auto-mechanics have these same discussions? No. They're more emotionally stable, apparently, than the average developer.
Yeah, just about anyone can learn to write computer programs. Just like every who has ever learned to write code, they'll get better and better as they gain experience
Being able to write computer programs does not make you special. Get over yourself.
Required reading for internet skeptics
Anyone can draw, most people can draw pictures, the really good ones make art.
Nearly anyone can be taught to code. Most of the coders can make programs to solve problems, but a few of them can make software.
A lot of the skills are similar to art, a lot of touchy feely stuff learned thru skill and practice. We can learn the skills but it takes real practice to be good at it.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
There are 10 kinds of people in the world. Those who understand binary and those who don't.
That joke ceased being funny, 10 years ago...
HSJ$$*&#^!#+++ATH0
NO CARRIER
I think it requires a certain level of intelligence as a minimum. Nothing incredibly special but above average
There you have it. You think being able to program makes you special in some way or indicates that you're above average.
Here's the truth: Any idiot can write code. Hell, half of Slashdot taught themselves to program when they were between the ages of 8-13.
All it takes is the will to learn something new. It's no different than learning to work on cars. Do you think auto-mechanics have these same discussions? No. They're more emotionally stable, apparently, than the average developer.
Yeah, just about anyone can learn to write computer programs. Just like every who has ever learned to write code, they'll get better and better as they gain experience
Being able to write computer programs does not make you special. Get over yourself.
I think the problem is that people are trying to answer the question with a "one size fits all" approach to answering the question. Sure anybody who can make toast can program. But not everybody can make a toaster.
What I mean by that is you mentioned that the average joe mechanics don't have these conversations, but you have to consider that the average mechanic is not making the advancements or creating the car from pouring casts and machining the parts. They're assembling or disassembling. There is creativity in finding a problem with a car before taking the whole thing apart but otherwise it's fairly laid out.
Programmers, the big daddy programmers are special and unique. Just like the engineers who created a ferrari or any other major achievement. Any body can program, but not everybody has the patience, confidence or desire to take on massive tasks by themselves.
I have programmed for many years and I have never found a good workflow of working with a large team of developers to create a specific product. So far what I have seen is one or two highly motivated individuals to create the bulk of the product and the rest become break/fix contributors or continuing development after the product is well underway.
It's just what I have seen. And those examples could make me an exception not the rule but that's what I've seen.
Were projects like MySQL or PostgreSQL initially effects of one or two highly motivated and focused individuals? I know that unix was and about evey project I have ever seen at the early stages.
Being that these efforts are largely surrounded by individual contributors I think it enables these individual's to feel special and different. And to be honesty, anyone who takes on these massive feats and succeeds is unique and different. The rest are "programmers".
No, they won't. They will, however, be a competent and skilled musician.
The problem with developers who think themselves exceptional because they can program is that they all fancy themselves a Mozart.
Required reading for internet skeptics
"Listen up, maggots."
"You are not special."
"You are not a beautiful or unique snowflake."
"You're the same decaying organic matter as everything else."
-Tyler Durden
O lord, bless this thy holy hand grenade, that with it thou mayest blow thine enemies to tiny bits, in thy mercy.
Actually, there are 10 kinds of people in the world, those who understand binary, those who don't, and those who can't recognize a base-3 joke when the see it.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
No one is born with a natural ability to write code or design car engines.
No, but a great many people have a natural inability. In the case of car engines, the resulting products will never hit the road. In the case of programs, they do, as we all witness every day.
Programming skill isn't the same as an ability to string small pieces of code together, any more than writing skill is the ability to touch type. It takes both perception andperspiration to be a decent programmer or decent author. Having an English literature grade may be useful, but it doesn't impart the ability to captivate your audience with your words. And taking programming classes won't hurt, but also won't make you come up with new elegant and efficient algorithms.
At best, you can become a codemonkey, who is to programming as an assembly man is to an engineer, or a typist is to an author.
Disclaimer: I am a senior sysadmin. I deal with both programmers and codemonkeys on a daily basis. In my long experience, there are hard-working and otherwise smart individuals who will never produce good code, and there are naturals who could, but are too lazy or careless. And there are a few who both have the ability and the drive to do so. Those are programmers, and I respect their profession.
Why would this be different with coding?
Quite so. This kind of comment seems to be missing from the thread.
Being good at programming does make you special in as much as you can sell that skill for money, and the better you are the more you can sell it for.
I don't think there's much wrong with many slashdot residents claiming to be skilled at programming. It is a tech forum after all.
I claim to be skilled at programming. There's nothing wrong with that and without arrogance I am happy claiming that most people (not most programmers) simply won't be as good as me because I have a natural aptitude and a natural drive which makes putting in the requisite 10,000 hours pretty much effortless.
But that's OK. I would bet that almost everyone is better than average at something.
I'm a terrible musician. I'm a terrible writer---I could never write a novel. I would suck as a politician. I can't dance. I would be a terrible administrator, organiser or logistics kind of person. I could never teach school below 16 and even then only good, motivated students, without flipping out or giving up. I probably could run a marathon if I trained, but I would never be good at it. I suck at chess despite a fair amount of playing. I'm a poor actor. I'm bad with kids.
I can never be good at any of those things above. I lack the innate talent and I lack the ability to make myself work at them enough.
I don't claim this makes me better than other people (except of course at programming) because clearly programming isn't the be-all and end-all of things.
So, I think that almost anyone could learn to assemble a few statements of code together. But programming is more than that, and I don't think many people could be programmers, much like most people can't be artists even though splatting down paint from a brush is trivial.
SJW n. One who posts facts.
I played saxophone in the band for 6 years. I have no special musical ability. I played alto sax with the regular band and tenor sax with the jazz ensemble. I was much better at the "jazz" than the regular band music. The difference was that I really enjoyed the jazz ensemble's music selection and I practiced it a couple hours a day, much to the dismay of my neighbors. If you find an interest and practice you can be okay. If someone has an interest in coding/programming they can practice and be okay even if minimally talented.
I only look human.
My mother is a halfling and my dad is an ogre, so that makes me an Ogreling