Slashdot Mirror


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?"

9 of 767 comments (clear)

  1. Answer by Anonymous Coward · · Score: 5, Insightful

    No

    1. Re:Answer by man_of_mr_e · · Score: 5, Insightful

      Anyone can become a programmer. Not everyone can become a GOOD programmer, or even a competent one.

      Even fewer can become an exceptional programmer.

      It's not just practice. I've put far more than the 10,000 hours required to master a skill into learning to play Guitar, but I still suck. The reasons are probably many, but I've also come to understand I'm just not talented in this regard.

      Just like some people are natural artists, some people are natural programmers. Some people aren't natural programmers, but can become proficient with a lot of practice. Some people can't get it not matter how much or how long they practice.

      Some people think logically. Some people think intuitively. The former can become competent programmers. The latter, not so much.. because computer languages just don't make intuitive sense.

      The REALLY good programmers are ones that can both think logically AND intuitively. They can use logic and still intuitively jump to conclusions that would take far longer with logic alone.

      Now, whether or not you can change your way of thinking, or whether or not you are born with a certain way of thinking is unclear. Certainly, I think how a child is raised affects the way they will think as an adult, but it also requires aptitude.

    2. Re:Answer by benlwilson · · Score: 5, Insightful

      There is an important difference between
      - People who have no motivation and don't want to be a programmer so never find out if they're any good at it.
      - People who believe they're not smart enough to do programming.
      - People who don't not have the mental capacity necessary to follow logic.

      I reckon if you took a random sample of say 1000 people and put them through a decent 2 year programming course with the legit promise of 1 million dollars at the end if they pass you would find a pretty large percentage of them would be able to code reasonably by the end and get the money.
      After they got the money however, most of them would go back to their normal jobs since they wouldn't actually enjoy or want to do computer program as a career.

    3. Re:Answer by arth1 · · Score: 5, Insightful

      The mental capacity to follow logic does not mean you can be a good programmer. Codemonkey, perhaps, but not programmer. You need to be innovative too, and be able to make leaps of logic, not just follow logic.

  2. Absolutely not. by mark_reh · · Score: 5, Insightful

    Some people do not have the logical thinking skills that are required to be a successful programmer.

    1. Re:Absolutely not. by jc42 · · Score: 5, Insightful

      There's something else that's a significant barrier for most people: Pretty much every successful programmer will tell you about their first lesson when trying to write some small programs, and their discovery that no matter how hard they tried, their first efforts always had bugs. They quickly discovered that this was a permanent part of programming, accepted it, and studied debugging techniques.

      But most people can't get past this problem, because they can't admit to themselves that they will never be able to write a significant chunk of code without error. The good programmers are the people who can admit that they're hopelessly fallible, face the fact, and learn how to deal with it.

      Also, the good programmers tend to have a sense of humor about it all. One explanation I heard years ago from someone who was a very good programmer is that programming is actually a sort of computer game. The way the scoring works is that, every time you write something and the computer does what you wanted it to do, you get a point. But when something inside one of the many libraries in the computer finds a way to interpret something you wrote in a way that's different than what you expected, the programmer who wrote that chunk of code gets a point. A good programmer is one who can maintain a score that is usually positive in this game.

      Using this understanding, one way of explaining why I and many other programmers like unix-type systems is that we can usually win at the programming game. Things in such systems tend to (mostly) work the way the documentation says they work -- and the documentation exists. I've worked on a lot of other kinds of computer systems, and on all the others, I constantly lose points to things that work differently than I expected, but often what I expected was just a guess, because the documentation is so sketchy or 17 releases out of date ;-).

      Even this sort of humor is just an acknowledgement of the fact that the deck is stacked against us, we'll never get it right the first try, and the people who built the computers systems we're using like it that way. But I was willing to face my limitations in the face of a game that's biased against me from the start and has grown to be so complex that I know I can't keep track of all the gotchas in my conscious mind. Most people can't admit their own fallibility in this way, so they will never be good programmers.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  3. Re:You have removed all doubt by fwarren · · Score: 5, Insightful

    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 + /etc over regedit any day of the week.
  4. Re:There is nothing special about programming by WoLpH · · Score: 5, Insightful

    I agree. Everyone can learn to write basic programs. That isn't to say that everyone can become a good programmer.

  5. Re:There is nothing special about programming by serviscope_minor · · Score: 5, Insightful

    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.