Forgot your password?
typodupeerror
Education Programming

Can Anyone Become a Programmer? 767

Posted by samzenpus
from the special-and-unique-snowflakes dept.
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?"
This discussion has been archived. No new comments can be posted.

Can Anyone Become a Programmer?

Comments Filter:
  • Answer (Score:5, Insightful)

    by Anonymous Coward on Sunday September 16, 2012 @02:53PM (#41354625)

    No

  • Absolutely not. (Score:5, Insightful)

    by mark_reh (2015546) on Sunday September 16, 2012 @02:54PM (#41354631) Journal

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

  • I dunno (Score:4, Insightful)

    by MightyMartian (840721) on Sunday September 16, 2012 @02:55PM (#41354643) Journal

    I've had this conversation in many different formats over the years, and I keep coming back to the peculiar nature of programming, or at least good programming. There is no doubt that technical background or training is highly desirable, but there is also an intuitive aspect that makes it more than just fitting blocks together. Given the right tools, I think anyone can code, but programming beyond basic HTML form processing or Excel macros takes something more.

  • Anyone can Do It (Score:0, Insightful)

    by Anonymous Coward on Sunday September 16, 2012 @02:57PM (#41354659)

    With simplified programming languages like Java, that take care of the "hard stuff", anyone can string together some code and do tasks.

    It's just like anything else that can be learned. Everyone can do it, but few people can do it well.

  • by Anonymous Coward on Sunday September 16, 2012 @02:58PM (#41354671)

    Programming (a.k.a. Coding) has many levels, but yes, most people are able to handle the logic necessary and can acquire the skills in time.

    Development is another level which many programmers either don't attain or are not willing to go to, but it is a step that makes a big difference in the code produced.

    Unfortunately, the terms seem to be used interchangeably, thus diluting the developer's value and putting expectations on programmers that they cannot live up to.

  • Motivation (Score:4, Insightful)

    by Tablizer (95088) on Sunday September 16, 2012 @02:58PM (#41354673) Homepage Journal

    If you don't enjoy something, then usually you don't have motivation to learn and perfect the art. Perhaps anyone can be a satisfactory opera singer with enough training, but that doesn't mean they WANT to be an opera singer.

    It's also true some pick up on programming and learning new languages faster. While anybody can probably learn with enough practice, it may not make economic sense to you and the company to take a long time to get into the flow of things. Possible, yes. Practical, no.

  • unfortunately (Score:5, Insightful)

    by circletimessquare (444983) <circletimessquare@NOSpAm.gmail.com> on Sunday September 16, 2012 @02:58PM (#41354675) Homepage Journal

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

  • by wdef (1050680) on Sunday September 16, 2012 @03:01PM (#41354715)

    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.

  • by ryen (684684) on Sunday September 16, 2012 @03:02PM (#41354719)
    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
  • by TheRealMindChild (743925) on Sunday September 16, 2012 @03:02PM (#41354727) Homepage Journal
    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"
  • by Joce640k (829181) on Sunday September 16, 2012 @03:03PM (#41354749) Homepage

    Your whole post left my mouth agape.

    It's called "trolling"...

  • Anyone... (Score:5, Insightful)

    by Wattos (2268108) on Sunday September 16, 2012 @03:04PM (#41354763)

    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.

  • by kelemvor4 (1980226) on Sunday September 16, 2012 @03:05PM (#41354769)

    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.

  • Re:I dunno (Score:4, Insightful)

    by Joce640k (829181) on Sunday September 16, 2012 @03:09PM (#41354811) Homepage

    A bit like playing the guitar then. Anybody can learn a few chords but being a professional musician takes a thing called "talent".

    (Or substitute any other skill for playing the guitar...)

    To answer the original question: I refer you to Betteridge's Law [wikipedia.org]

  • by rolfwind (528248) on Sunday September 16, 2012 @03:11PM (#41354833)

    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.

  • by Zero__Kelvin (151819) on Sunday September 16, 2012 @03:12PM (#41354841) Homepage

    "I don't know where this self-importance stance comes from, but there really is nothing special in being a programmer. It doesn't really require much, nor does it require anything special."

    Well, you hit the nail of the problem right on the head. We have met the enemy, and it is you and people like you. The fact that you make this statement shows that you are one of the 80+ percent in the industry that don't belong who are destroying the software ecosystem and making garbage software the norm.

    "What is the programmers job in reality? To put out code as fast as possible."

    You should have just put an end to your post after the first question, since you clearly don't know the answer.

    "Programming itself doesn't require anything special. Designing does."

    And there it is. The winning answer in this round of Final Stupidity. The fact that you don't think that designing everything from internal data structures to quality unit tests for your code shows how much you truly have no idea what you are talking about. Abraham Lincoln could have told you that tis' better to remain silent and be thought a fool than to speak and remove all doubt.

  • Re:unfortunately (Score:5, Insightful)

    by Zero__Kelvin (151819) on Sunday September 16, 2012 @03:19PM (#41354957) Homepage
    Bullshit. I am aware that not everyone has what it takes to be a car mechanic. In fact a relatively small part of the population has what it takes. Does that mean you think I hero-worship car mechanics?
  • Re:Like Algebra 1 (Score:4, Insightful)

    by mark_reh (2015546) on Sunday September 16, 2012 @03:19PM (#41354959) Journal

    Almost anyone can grasp algebra 1. The way you make them "get it" is to quit handing out medals just for showing up to class and reintroduce some competition for high grades among students. Kids need to do homework (AKA practice) just like any other endeavor. Right now, in schools, there is no consequence for doing poorly. You'll get passed to the next grade level whether you've mastered the current one or not. Teacher and parents keep patting you on the back just for showing up.

    I estimate that maybe 80% of my adult patients born after 1975 are on some form of antidepressant drug. I'm starting to think that they were that early/first generation of kids whose self-esteem was made the prime importance in school, rather than learning and achievement. They finish school and get thrown out into the real world where they are expected to perform to some minimum standards and they can't do it and can't understand why, especially in light of the history of being patted on the back for underachievement. The next step is to get prescribed an antidepressant to help their bruised self-esteem cope with the fact that they never learned anything in school and are likely to remain unemployable for the rest of their lives.

  • by guruevi (827432) <evi@NOSpam.smokingcube.be> on Sunday September 16, 2012 @03:26PM (#41355037) Homepage

    But not everyone is going to be a good programmer. I think the 80/20 rule applies here too. 80% of programmers can program, 20% can do it efficiently.

    I see examples of bad programming all the time (or you can just read thedailywtf.com) and currently it doesn't matter all that much whether you spend 100,000 extra cycles in a loop. But we're heading once again to a level where efficient programming is going to become more important (low-end, cheap devices like Arduino and Raspberry for the consumer-end and high-end multi-processor systems like GPGPU and shared clusters on a pay-per-cycle on the other end).

    In a GPGPU scientific environment (where I work) shaving 10ms off a single looped calculation can easily end up giving you a result 7 days faster. Finding out that a buffer gets flushed every 64-bytes or every 100 microseconds and understanding why filling up a buffer with 0's (and how to do it efficiently) is faster than waiting for a timer to expire is real programmer's work but none of the documentation or even advanced classes on the subjects don't explain such things.

  • Re:Bent of mind (Score:5, Insightful)

    by Tyler Durden (136036) on Sunday September 16, 2012 @03:45PM (#41355253)

    They're usually not. In fact, mathematicians can be the worst: they think computer science is a subset of math and it really isn't.

    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.

  • by fwarren (579763) on Sunday September 16, 2012 @03:53PM (#41355319) Homepage

    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.

  • Re:Answer (Score:5, Insightful)

    by man_of_mr_e (217855) on Sunday September 16, 2012 @03:58PM (#41355395)

    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.

  • Re:Absolutely not. (Score:5, Insightful)

    by jc42 (318812) on Sunday September 16, 2012 @04:05PM (#41355475) Homepage Journal

    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.

  • Re:Absolutely not. (Score:4, Insightful)

    by b4dc0d3r (1268512) on Sunday September 16, 2012 @04:06PM (#41355489)

    I worked with a guy who did a lot of VBA and a little ASP code. He usually got about 90% right, and then mental blocked on some syntax.

    I'd give him a few hints, and eventually he would solve it. But the next time it came up, he just couldn't grasp it.

    I'm not saying he can't become a successful programmer. But without some very careful guidance, study, and experience, he won't. And because he won't take the time, he can't become a programmer.

    He needs to understand things like where a function is. Is it in a static class? Is it a global function? Is it a class method? And why does it work one way but not another? Given time, he could learn these things.

    He also can't spell worth a damn and knows it. With a language with as many broken rules as English, you have to develop some sort of intuition about which letters go together in this context, and with programming you need the same kind of intuition, Maybe they are related, maybe not. But hopefully it made more sense than a car analogy. If you don't understand why the parts don't fit together the way you think they should, you can't make progress.

    So regardless of whether people have the logic skills and abstract thinking, you can have the skills but not the tools to use them. I'll leave the flamewar about people who completely lack the skills to somewhere else.

  • Re:Absolutely not. (Score:5, Insightful)

    by rgbatduke (1231380) <rgb@phy.duke.COWedu minus herbivore> on Sunday September 16, 2012 @04:39PM (#41355787) Homepage
    And don't forget the Flynn Effect. It isn't even a constant 100, so 100 this decade doesn't mean what 100 meant last decade.

    But still, no, it is not true that my brother (with Down's Syndrome) could have ever become a programmer, whereas I, with an IQ (FWIW) several standard deviations over the mean have gigabytes of source in my source directory, a rather large fraction of which I actually wrote, in several languages.

    So the question is still a stupid question, as the answer is obviously no. Worse, it is basically trollbait BEYOND being a stupid question, as somebody of "normal" intelligence can probably write "a program" in a sufficiently simple environment without ever in their lifetime being capable of writing a 50,000 line program with 100 functional modules written on top of various APIs (some of which they created) running over the network on top of UDP socket layer code. Actually, a lot of fairly ABOVE average intelligence well-trained programmers might fail there, or do a poor job if they succeeded.

    So the proper answer is "No, to be a good programmer you have to be smarter than the average human, and probably better educated too. Propensity to skip showers and live on Jolt Cola optional. Troll."

    rgb
  • by WoLpH (699064) on Sunday September 16, 2012 @04:56PM (#41355925)

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

  • by narcc (412956) on Sunday September 16, 2012 @05:01PM (#41355969) Journal

    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.

  • by jellomizer (103300) on Sunday September 16, 2012 @05:09PM (#41356033)

    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.

  • Re:Bent of mind (Score:4, Insightful)

    by mellon (7048) on Sunday September 16, 2012 @05:38PM (#41356253) Homepage

    Oh for heaven's sake. If you aren't a computer scientist (and the above statement demonstrates that you are not), don't make assertions about computer science. And if you aren't a mathematician, don't make assertions about math. "Math is continuous?" That's about as meaningful as saying "pink is ten." What you are talking about is a difference in notation. Look up lambda calculus on wikipedia, and get back to us when you've cleaned up the brain cells that dribbled out your ears when your brain exploded. Don't even get me started on type theory...

  • Not really (Score:4, Insightful)

    by SuperKendall (25149) on Sunday September 16, 2012 @05:44PM (#41356293)

    Programming is like cooking.

    When your oven starts emitting cryptic messages because you put the spatula back in the wrong drawer, I might agree.

    Moving to programming from cooking is a far vaster bridge than just "interest".

    Now a car mechanic on the other hand, is used to dealing with the kind of malign electronic entities programmers face often.

    Perhaps that in the end is the real reason we see so few women programmers, they are not as willing to fight virtual evils just for the sake of victory when complete.

  • by SuperKendall (25149) on Sunday September 16, 2012 @05:46PM (#41356307)

    Creating an algorithm for a specific outcome is not like drooling on a rocket scientist, but describes cooking and programming.

    Cooks are FOLLOWING the algorithm. Most cooks are in fact computers, not programmers.

    Chiefs and programmers yes create algorithms to follow. But how many people create dishes from scratch often?

  • by ryanw (131814) on Sunday September 16, 2012 @06:03PM (#41356419)

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

  • by narcc (412956) on Sunday September 16, 2012 @06:41PM (#41356717) Journal

    Programmers, the big daddy programmers are special and unique. Just like the engineers who created a ferrari or any other major achievement.

    No, they're not. They are not special and unique.

    Skill comes from experience -- it's as simple as that. The engineers who created a Ferrari? They're not special either -- engineering is a learned skill that, yes, anyone can learn. Grab the average auto mechanic and plop them in to a university engineering program and you'll have a competent engineer in a few years. A decade or so or work after that, and you'll have a great engineer. Some will be better than others, sure, but it's not a matter of intelligence -- it's a matter of dedication.

    No one is born with a natural ability to write code or design car engines.

    Programming itself doesn't require anything special. Designing does.

    Guess what else is a learned skill? Design! Even better, it's a skill that can be taught! It doesn't take anything special -- just some education and experience.

  • by Weaselmancer (533834) on Sunday September 16, 2012 @06:42PM (#41356727)

    There you have it. You think being able to program makes you special in some way or indicates that you're above average.

    Think of everyone you knew from high school. Now imagine each one of them piloting an airplane you are a passenger in. Not everyone is cut out for every job. Some jobs do require the right person to do the job correctly.

    And if you think any idiot can write code you clearly haven't ever been given the task of maintaining some other idiot's code base before. If you really think anyone can do the job I recommend you peruse this site some. [thedailywtf.com]

    Unlike brain surgery, you can be self taught and be good at programming. But just like brain surgery not everyone should be doing it.

  • Re:Answer (Score:5, Insightful)

    by benlwilson (983210) on Sunday September 16, 2012 @06:55PM (#41356835)

    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.

  • Re:Absolutely not. (Score:5, Insightful)

    by pla (258480) on Sunday September 16, 2012 @06:57PM (#41356853) Journal
    Your joke aside, I don't think you've really missed the mark by much, here...

    I firmly believe that somewhere around half (possibly much higher) the population cannot ever learn programming to any meaningful level. Perhaps really simple Excel formulas, but they learn them more by rote than through any true understanding of what really goes on to make the magic happen.

    Of the other half of the population, who have a sufficient grasp of logic and can grasp the idea of breaking a problem down into tiny steps to solve it methodically - The vast majority, well over 95%, hate doing so. Hate it. They would rather have a root canal than do that for a living. They might have managed to suffer through an intro-to-programming course or two in college, but they really would go completely bonkers if you asked them to program on any regular basis.


    Programmers, on the other hand, tend to view our art almost as a form of meditation - The real "skill" of our art doesn't involve the ability to handle boolean logic or memorize APIs (those just count as a sort of prerequisite), but rather, the ability to go into a deep alpha state and stay there for hours at a time.


    So... No. Not anyone can become a programmer. And of those who can - Most don't want to, not for any amount of money.
  • by loom_weaver (527816) on Sunday September 16, 2012 @07:03PM (#41356893)

    You can put anyone through music school but they aren't going to necessarily come out as a Mozart.

  • by narcc (412956) on Sunday September 16, 2012 @07:24PM (#41357071) Journal

    You're being purposefully obtuse.

    You know where that WTF code comes from? You, 10-20 years ago. You know, the inexperienced developer. If you have the opportunity, take a look at some code you wrote 5, 10, 15 years ago -- you'll be disgusted with yourself.

    I've run in to quite a few of the idiots with whom I went to high-school. You know what? Some of them are surgeons. Some of them are pilots (or "airplane drivers"). Some of them are business owners or other business professionals.

    Yes, and some of them are unskilled laborers -- the very category I would have put all of them in those many years ago. (When I was young, I thought myself exceptional as well. I chalk that up to youthful arrogance. I got over it. My self-worth is no longer defined by what I fancy myself as "good at".)

    No, not everyone should write code or perform brain surgery. But that doesn't mean that most people are incapable of writing code or becoming skilled surgeons. Education and experience are what made the difference.

    Programmers are not exceptional. You are not special because you're a programmer -- it's just a skill that you've learned and improved over time. Had you decided to pursue some other interest, you'd likely think yourself exceptional because of *that* skill.

    Get over yourself. Really. It's not that impressive. Hell, most Slashdot users fancy themselves to be good programmers -- and many are better than you are or I am -- even a good number that are not or are no longer professional developers.

  • by narcc (412956) on Sunday September 16, 2012 @07:39PM (#41357187) Journal

    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.

  • by Weaselmancer (533834) on Sunday September 16, 2012 @07:53PM (#41357307)

    No, not everyone should write code or perform brain surgery.

    My exact point. Now, who is being obtuse again?

    But that doesn't mean that most people are incapable of writing code or becoming skilled surgeons.

    Really? Most people can become surgeons? Are you sure about that? 3 out of 8 people that take the GED flunk it. [nytimes.com] You're saying that all these people need to do is knuckle down and study, and you'd happily let them inside your head with a scalpel?

    Sure you would.

    The simple fact is that some people are more capable than others for a given set of tasks. There isn't any "getting over" it. We are all different from one another.

    And some jobs simply are not for some people. No matter how much you work out or how many pushups a day you do, you will never be an NFL quarterback. No matter how many books on quantum mechanics you read, you will never come up with a brilliant paradigm changing theory. And to a lesser degree, most of humanity no matter how hard they try would never be able to write a working and useable computer program.

    Sorry, but that's how it is. If anyone could do it the market would be full of skilled programmers making Taco Bell wages. But it isn't.

  • Re:Not really (Score:4, Insightful)

    by SuperKendall (25149) on Sunday September 16, 2012 @08:06PM (#41357409)

    Apparently, cooking can be very technical

    Following directions properly is not a technical skill. If someone got the ingredients out of order and blew a soufflé, they would not seek to find the root cause - they would follow the directions again, more carefully. Or give up.

    In order of the oven to emit a cryptic message because the spatula has been misplaced, it would require that either the oven, drawer, and spatula be somehow linked and programmed (maybe via RFID) or that there's something magical happening that's enabling the oven to care about where the spatula is.

    And yet similar seemingly utterly unrelated things end up mattering all the time in programming. It's not "magical thinking" so much as "decades of real world experience with real computers and development platforms".

    Why is the computer so mean?

    It is not mean. It is uncaring, and slightly evil.

    The real reason that women do not tend to become successful at programming, I think , is because they're told from day one that women are more social and more socially-oriented

    BULLSHIT. That nonsense has been peddled for decades now and I'll not have you blow another ten years of the industry repeating it. Many approaches have been tried to counteract this "programming" if you will that women have supposedly faced, with less than zero impact (the percentage of women in CS fields has fallen over the years from where it used to be).

    Let's face it. Women are more religious and more prone to social reasoning and magical thinking.

    If that were true they would be quite a bit better at programming, since the ability to create models in your head that are not real yet reflect what is happening is quite important to being a top programmer. Indeed I would say if anything MEN are quite a bit more able to live in self-made fantasy worlds than women, women seem generally more practically minded.

    I do not think though that men or women have any difference in ability to be good programmers. I think possibly the way we approach teaching it may currently not be as good for women as men. Since we've tried and failed to "deprogram" women to make them think like men for many years to utter failure, we really should try something different.

  • Re:Answer (Score:5, Insightful)

    by man_of_mr_e (217855) on Sunday September 16, 2012 @08:24PM (#41357531)

    That's simply not true.

    Speaking of auto mechanics. There's this thing called "Mechanical Aptitude", which good auto mechanics have. They can visualize how the machinery operates in their head. Not everyone can do that.

    Having knowledge does not make one good at their job. Having failed 200 times doesn't mean you won't fail on the 201st time. Some people fail to learn from experience.

    I'm not saying you need to be a genius. I'm not saying you need to be a genius to be good at programming... But some people do not have an aptitude for logical and critical thinking.

    You accuse me of being an egomaniac, but you are guilty of the opposite. You expect everyone to be like you.

    I think you will find yourself constantly disappointed in others.

  • Re:Answer (Score:5, Insightful)

    by arth1 (260657) on Sunday September 16, 2012 @08:26PM (#41357543) Homepage Journal

    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.

  • by Smauler (915644) on Sunday September 16, 2012 @10:47PM (#41358399)

    I've got no problem in saying I have no musical talent. I learnt the saxophone for 3 years when at school. By the end, I was still worse than most people after their first year, and I was never going to get very good at it.

    Why would this be different with coding?

  • by multimediavt (965608) on Sunday September 16, 2012 @10:57PM (#41358475)

    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.

    AFAIK every professional, in every field I know, says almost the exact same thing, and you know what? The ones who say it are usually insecure about something. Anyone can learn. You did get one thing right, it takes interest, but more importantly it takes motivation (necessity) and inspiration. Unless there is something genetically or mentally wrong with you due to trauma, anyone can learn anything and apply it. We as a species are innately creative. It's why we made tools and developed technology as a species. Now, some people have genetic dispositions for learning things like syntax, morphology, and may even have strong mathematical skills. Awesome for them! They will learn things like programming, foreign languages, music theory, physics and chemistry quicker than others and may be able to develop improvisations quicker to address challenges when applying what is known, but as long as there are no issues with brain function, yes, anyone can learn whatever they want, even programming. Whether they will be able to turn it into a vocation is an entirely different issue unrelated to learning having more to do with the speed of applying what was learned relative to competitors in a market.

  • by arth1 (260657) on Sunday September 16, 2012 @11:58PM (#41358805) Homepage Journal

    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.

  • by somersault (912633) on Monday September 17, 2012 @07:22AM (#41360621) Homepage Journal

    They will, however, be a competent and skilled musician.

    No, they won't. Some people just don't have rhythm, or can't even tell when something is "in tune".

    I think you have spent too much time around talented and driven people to realise how many people there are out there that just wouldn't be able to handle writing anything more than a trivial piece of software.

    Programmers aren't "special" as in "better than others", but they are "different" in the same way that a lot of engineers are. More likely to be on the autistic spectrum for a start, which generally means they are more logical, focused and able to solve problems systematically.

  • by u38cg (607297) <calum@callingthetune.co.uk> on Monday September 17, 2012 @07:48AM (#41360745) Homepage
    You didn't want to learn it and you never applied yourself to learning it. It's hardly surprising that you then didn't learn it.
  • by serviscope_minor (664417) on Monday September 17, 2012 @07:56AM (#41360799) Journal

    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.

  • by Dareth (47614) on Monday September 17, 2012 @09:21AM (#41361595)

    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.

If you think the system is working, ask someone who's waiting for a prompt.

Working...