Slashdot Mirror


The Programming Talent Myth

HughPickens.com writes: Jake Edge writes at LWN.net that there is a myth that programming skill is somehow distributed on a U-shaped curve and that people either "suck at programming" or that they "rock at programming", without leaving any room for those in between. Everyone is either an amazing programmer or "a worthless use of a seat" which doesn't make much sense. If you could measure programming ability somehow, its curve would look like the normal distribution. According to Edge this belief that programming ability fits into a bi-modal distribution is both "dangerous and a myth". "This myth sets up a world where you can only program if you are a rock star or a ninja. It is actively harmful in that is keeping people from learning programming, driving people out of programming, and it is preventing most of the growth and the improvement we'd like to see." If the only options are to be amazing or terrible, it leads people to believe they must be passionate about their career, that they must think about programming every waking moment of their life. If they take their eye off the ball even for a minute, they will slide right from amazing to terrible again leading people to be working crazy hours at work, to be constantly studying programming topics on their own time, and so on.

The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned. Programming isn't even one thing, though people talk about it as if it were; it requires all sorts of skills and coding is just a small part of that. Things like design, communication, writing, and debugging are needed. If we embrace this idea that "it's cool to be okay at these skills"—that being average is fine—it will make programming less intimidating for newcomers. If the bar for success is set "at okay, rather than exceptional", the bar seems a lot easier to clear for those new to the community. According to Edge the tech industry is rife with sexism, racism, homophobia, and discrimination and although it is a multi-faceted problem, the talent myth is part of the problem. "In our industry, we recast the talent myth as "the myth of the brilliant asshole", says Jacob Kaplan-Moss. "This is the "10x programmer" who is so good at his job that people have to work with him even though his behavior is toxic. In reality, given the normal distribution, it's likely that these people aren't actually exceptional, but even if you grant that they are, how many developers does a 10x programmer have to drive away before it is a wash?"

425 comments

  1. News? by Anonymous Coward · · Score: 1

    Outside SF, I can't imagine that this surprises anyone.

    1. Re:News? by BarbaraHudson · · Score: 4, Informative

      "there is a myth that programming skill is somehow distributed on a U-shaped curve"

      Never heard of this "myth." I always thought it was a slope - a lot of bad ones, a fair amount of decent ones, and some really good ones - and that it was in many ways dependent upon experience - the more experience you have, the better you get - or you go into something else after a few years.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    2. Re:News? by jythie · · Score: 3, Interesting

      Both variants are floating around. I mostly see the 'U' view of things in younger west coast programmers with fat wallets and a superiority complex, thus anyone who thinks like them is a superstar while anyone different 'sucks.

    3. Re: News? by Anonymous Coward · · Score: 2, Insightful

      It's not bimodal but 10x rule still applies. Skills may follow a normal distribution but the task (any non-trivial programming) is a strongly nonlinear task. There are things only 5% of programmers wil be able to do and you cannot replace them even with 10 average ones.

    4. Re: News? by Anonymous Coward · · Score: 1

      Completely agree. I have worked with many average programmers, some bad ones, and some that are notably better than others in both speed and code quality. Just my anecdote. Fwiw I never heard someone lump programmers into two categories like this. If anything, I would expect it to be more of a bell curve.

    5. Re:News? by Anonymous Coward · · Score: 1

      Never heard of this myth either.

    6. Re: News? by Anonymous Coward · · Score: 0

      I'm inclined to believe that it's sloped too but it's looking like a steeper slope every day.

    7. Re: News? by Anonymous Coward · · Score: 5, Insightful

      What annoys me is that despite the Mythical Man Month still being the only vaguely scientific analysis, and despite the fact that it demolished a bunch of received wisdom and only created ONE fact of its own - the existence of the 10x programmer - somehow because it was written a long time ago that means it "no longer applies".

      Of course your misrepresentation of the 10x rule isn't helping. The 10x rule is that the best developers are 10x as productive as the worst 10 developers. That's all it says. So you can replace them with 10 worse developers, that's the whole frickin' point of the 10x rule.

      If you wish to invent another rule, that some tasks are so hard that only some programmers can succeed at them, you can go gather your own evidence, but don't pretend it's "the 10x rule" because it isn't, and your rule did not come out of the only vaguely scientific analysis that's been done, and you shouldn't pretend that it did.

    8. Re:News? by Anonymous Coward · · Score: 0

      I'm one of the good ones! Oops, I meant cout "I'm the best!" endl;

    9. Re:News? by bondsbw · · Score: 4, Insightful

      I love this tidbit:

      If you could measure programming ability somehow, its curve would look like the normal distribution.

      So, they're saying that they know the result of the measurement despite admitting that they don't even know how to perform the measurement. I see.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    10. Re:News? by ceoyoyo · · Score: 4, Interesting

      Just read the rest of the comments. Slashdot is a hotbed of programmers who think they're god and everyone else sucks. They also argue that programming is some kind of talent you're born with.

      I teach programming mostly to people you wouldn't expect. Anybody can learn and, just like any other skill, their ability is mostly determined by the time and motivation they put in. Learning programming is even easier than a lot of academic subjects because there's instant, fairly unambiguous feedback.

    11. Re:News? by Shortguy881 · · Score: 5, Insightful

      A downward slope would just be non-normalized data. If there are a lot of bad ones, bad just becomes the mean. Programming talent, like most things, probably falls neatly into a bell curve.

      The U curve the article is referring to is a bimodel distribution, which is rare even in nature. It occurs for something like a disease that effects immune compromised people. Thus the age distribution of infected would be the very old and very young.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    12. Re:News? by Richard+Dick+Head · · Score: 1

      I always thought it was a slope - a lot of bad ones, a fair amount of decent ones, and some really good ones

      EXACTLY this. Those "10x more productive than anyone else" programmers people rave about are simply abusing methamphetamine. Not altogether uncommon in startups. Without the drug you'd probably observe an average to below average productivity level in the same individual.

    13. Re:News? by Viol8 · · Score: 4, Interesting

      Most people can do most things averagely well given enough time and practice. However to be exceptional at something takes an innate talent. Mozart was born, not made. Ditto einstein. And the same applies to programmers (and no, I don't count myself as one these elite).

    14. Re:News? by Anonymous Coward · · Score: 0

      Programming isn't a talent you're born with, but like any other talent, some people are simply better suited to develop it. It doesn't matter how much basketball I practiced, I was never going to make it to the NBA. I feel like programming requires an "Ah ha!" moment, when you first start to realize exactly what you're doing and how it works, and I know some people who have tried and just never get that.

    15. Re:News? by Art+Challenor · · Score: 5, Interesting

      I would agree with this in the same way I would agree that anyone can learn to play a musical instrument. However, I still think it take an innate talent as well a (lot of) training to become an orchestral soloist.

      Not to overwork the metaphor, but there are also people who would work in menial jobs so that they could program at night if it weren't for the fact you can make a living programming - the same people who have jobs coding and write software, say for open source projects, on weekends.

      The real problem is weeding out the people who have no interest but still try to make a living writing code. I can only assume that those people write some of the websites out there, such as the ones that insist you enter credit card numbers without spaces or other punctuation. It's a 16 digit number, you can ignore anything that isn't a digit and feed it through the payment service to see if it's valid.

    16. Re:News? by narcc · · Score: 1

      A variation of it is quite prominent on Slashdot, with many users inexplicably believing that programming requires a "special mind", dividing people in to two groups: "can program" and "can never program".

    17. Re:News? by jellomizer · · Score: 4, Interesting

      I think it is in terms of observations.
      The Rock Stars, the company will go out of its way to try to keep them
      The under performers, will just stay at the same place as they have a hard time getting a job elsewhere.
      So the organization has the long timers as the Rock Stars or the Under performers.
      The middle people will often stay there for a few years and move on. So they are in flux, and that makes it hard for our observations to see the middle ground, as the majority.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    18. Re:News? by Anonymous Coward · · Score: 0

      So all Students have the potential to become a Math Genius? A great Author? A Pioneering Chemist?
      Most students can learn the subject. Whether they like it, or can master it is, a different subject.

    19. Re:News? by ShanghaiBill · · Score: 3, Insightful

      I mostly see the 'U' view of things in younger west coast programmers with fat wallets and a superiority complex

      I am a west coaster, and have never heard of the "U" shape myth, and what you say makes no sense. What the "U" shape means is that there are many bad programmers, many great programmers, and almost no average programmers. Believing that greatness is common is the opposite of a "superiority complex".

      I doubt that the "U" myth existed before the author of TFA made it up.

    20. Re:News? by ShanghaiBill · · Score: 5, Insightful

      many users inexplicably believing that programming requires a "special mind", dividing people in to two groups: "can program" and "can never program".

      This is not "inexplicable". It is obvious to anyone who has taught programming to beginners, or any type of introductory abstract math. About a third of the population is simply incapable of abstract reasoning. If you think otherwise, I invite you to come to my house, and I will give you a free dinner while you explain "vectors" to my 15 year old daughter. Good luck with that.

    21. Re:News? by UnderCoverPenguin · · Score: 1

      A downward slope would just be non-normalized data. If there are a lot of bad ones, bad just becomes the mean. Programming talent, like most things, probably falls neatly into a bell curve.

      In terms of programmers most of the employers I know would deem employable, they are only looking at the best programmers so they only see a few percent at one end of the slope. The rest are just increasing numbers of increasingly unacceptable programmers. The shape of the curve doesn't matter to them.

      --
      Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
    22. Re:News? by aNonnyMouseCowered · · Score: 1

      It's definitely a myth since there are different kinds of programming. Just like in music or sports, someone great at playing the piano might suck a playing the violin. Michael Jordan was a mediocre baseball player at best. Of course your might get those rare all-prodigies, the Mozarts who excel at everything in the field. How would Linus rate as a COBOL programmer?

    23. Re: News? by Anonymous Coward · · Score: 1

      For me the main point of the Mythical Man Month was actually:
      "adding more programmers to a late project will make it even later".
      That is actually the main insight - the communication pathways between people limits the efficient scaling of projects.

    24. Re:News? by Anonymous Coward · · Score: 2, Insightful

      It is obvious to anyone who has taught programming to beginners, or any type of introductory abstract math.

      Having spent time in grad school as a TA and tutoring dozens of high school & university students on the side for extra money, I disagree, and don't think it is anywhere close to obvious. Many of the tutoring students were people pegged as the can't learn it types, but needed to get through math, physics or CS topics for one reason or another.

      Just about any student or person can be reached, it just takes time and effort. Often it takes multiple, varied approaches to teach someone a new topic, when the course material and professor only have time to try one way, before needing to move on. It might take enough time that majoring in the subject would be completely impractical, but I had not seen someone who couldn't be made to pass an intro level course as long as they tried and made it a priority. Sometimes it isn't even an issue with the material in general, but because they failed to grasp a topic that is a foundation for later topics, and I've seen a few students "suddenly" catch up and able to keep up on their own once they fixed a few problems with the basics.

    25. Re: News? by dilvish_the_damned · · Score: 1

      I expect the next one to be on the "?" Shape of myths.

      --
      I think you underestimate just how much I just dont care.
    26. Re:News? by pr0fessor · · Score: 5, Interesting

      My wife the business woman {who does more math than I do on any given day} has bailed out and now I'm only one left to help my son with his freshman algebra because "Algebra!?!?!?"

      Anyway I found very quickly that the key to helping him understand algebra is to pry the cell phone from his hands and turn it off.

    27. Re: News? by dilvish_the_damned · · Score: 1

      I dont think that view is exclusive to programmers, it could probably apply to any skilled labor profession.

      --
      I think you underestimate just how much I just dont care.
    28. Re: News? by Cederic · · Score: 3, Interesting

      What gets me about the summary is the assumption that 10x programmers are arseholes.

      Some programmers are significantly more productive than others.
      Some programmers are twats.

      The two communities intersect, so focus on hiring members of the first group that aren't in the second. They exist. They're worth some extra pay.

      Drive the twats out of the industry.

    29. Re: News? by Anonymous Coward · · Score: 0

      Not sure what's your point but apparently you've understood nothing so here is some clarification. Skills are following a normal distribution but productivity often is not. In other words, there is usually no linear relation between skills and productivity. MMM rule is a good approximation for the linear relation (tasks like writing API wrappers or painting a fence). It is popular because it allows managers to add up effort contributions. Bimodal _productivity_ distribution occurs when the task is too difficult for less skilled employees. Somewhere in between you get your 10x rule except that there is nothing special about "10", other than it looks nice in a blog post.

    30. Re:News? by CaptainLard · · Score: 1

      Yeah but how many people have enough innate skill to be a household name 300 years after their death? If you're running a company who's business is to write and maintain millions of lines of code, you're going to have a problem finding 100's or 1000's of people with elite innate skill. Especially since you're competing against 100's of other companies that are doing basically the same thing.

      The point is you don't need to be Einstein to be a programmer. Like you said, enough time and practice and you'll probably be at least average no matter who you are. Most programming jobs are like any job, they don't need (or pay for) exceptional so average is usually good enough. My guess is the real issue is letting the average joe into the club.

    31. Re: News? by ememisya · · Score: 1

      This is a lot like the drawing talent myth. Everybody starts with lines, stick figures, and a fews years later paintings.

    32. Re: News? by Bengie · · Score: 1

      Of course your misrepresentation of the 10x rule isn't helping. The 10x rule is that the best developers are 10x as productive as the worst 10 developers. That's all it says. So you can replace them with 10 worse developers, that's the whole frickin' point of the 10x rule.

      The 10x rule assumes you have a lower limit on your worst.. No matter how many people you throw at a problem, if they do not understand the problem, you won't get the job done. When it comes to programming, nearly all problems seem simple at first. A big part of my job is arguing with people to keep them from painting themselves in a corner. Feature creep happens, you need well defined designs and functionality. I want my code to not only break, I was it to break early, break loudly, and tell me exactly what the issue is. I spend more time designing my code to break than to work.

    33. Re:News? by ljw1004 · · Score: 1

      I love this tidbit: "If you could measure programming ability somehow, its curve would look like the normal distribution." So, they're saying that they know the result of the measurement despite admitting that they don't even know how to perform the measurement. I see.

      Well, yes. It's justified earlier in the article: "Almost every skill that we know how to measure ends up showing a distribution that looks like that curve."

      There would have to be solid evidence that programming is different from most other skills. In the absence of such evidence, of course it makes sense to assume a bell curve.

    34. Re:News? by Darinbob · · Score: 1

      I never even heard the u-shaped theory. In professional life, most programmers are mediocre and the "rock stars" are rare. Although the self proclaimed rock stars are common.

    35. Re:News? by narcc · · Score: 4, Interesting

      I've taught plenty of intro programming classes. You're likely just a terrible instructor. I've not found a single student that was incapable.

      . About a third of the population is simply incapable of abstract reasoning.

      Citation needed. What backwater pay-to-publish journal did you find someone that denies that 1/3 of the population fails to reach the the formal operational stage of development?

      If you think otherwise, I invite you to come to my house, and I will give you a free dinner while you explain "vectors" to my 15 year old daughter. Good luck with that.

      I have a few teaching tricks I've picked-up for that. I have little doubt I could teach your otherwise normal child the basics of vectors in an evening. Well, at least well enough to get her through calc.

      Teaching, like programming, is a skill. If you want to better help her, do some reading on formative assessment.

    36. Re:News? by avandesande · · Score: 1

      I see a big disconnect between performance art and programming, they aren't even closely related. I play the viola and am a programmer if this matters.

      Software just has to work properly and be maintainable for it to acceptable and nobody cares how you got it to that point. Music is on a much higher level.

      --
      love is just extroverted narcissism
    37. Re:News? by Anonymous Coward · · Score: 0

      Your daughter is lucky to have a father who has dismissed her as being incapable of cognitive function, rather than understanding that explaining vectors to a 15 year old girl requires a different methodology than explaining vectors to a 21 year old.

      I hope she knows how highly you think of your dumb little girl.

    38. Re: News? by Capt.Albatross · · Score: 1

      The 10x rule is that the best developers are 10x as productive as the worst 10 developers. That's all it says. So you can replace them with 10 worse developers, that's the whole frickin' point of the 10x rule.

      I am not aware of any study that shows that arbitrarily complex tasks (a distributed operating system, an AI project such as Watson, an airplane fly-by-wire system...) can be completed solely by a sufficient number of bottom-of-the-barrel programmers. I don't recall any such claim in The Mythical Man-Month, but it has been a while since I read it - perhaps you could cite the chapter that references such a study, so I can look it up in my copy?

    39. Re:News? by sfcat · · Score: 1

      I see a big disconnect between performance art and programming, they aren't even closely related. I play the viola and am a programmer if this matters.

      Software just has to work properly and be maintainable for it to acceptable and nobody cares how you got it to that point. Music is on a much higher level.

      I work in software and do music production on the side. I would say it has to do with the type of music and programming you are doing. Writing a database optimizer is much much much harder than producing an EDM track. And I would say there are far more people who could produce an EDM track than write a database optimizer. And the quality of each are going to be obvious to anyone that uses/hears either of those things. I think if you compared writing a corp web app and playing in a symphony you would find the converse to be true, that is there are fewer people who could play well enough to be in a symphony vs write a corp web app. So I think the real answer is it depends. If you think either music or software is harder or easier than the other, you probably are just more skilled at one of those things.

      --
      "Those that start by burning books, will end by burning men."
    40. Re:News? by Bengie · · Score: 1

      I think my problem is when I say "programmer", I mean someone who understands everything, full stack. what does the distribution curve look like when you limit it only to people who can design, build, maintain, and successfully secure a high performance datacenter all on their own, but only from the aspect of the computers, network, and programming, not datacenter layout, power planning, etc?

    41. Re: News? by Anonymous Coward · · Score: 0

      Citations? (Perfectly serious here).

    42. Re:News? by bondsbw · · Score: 1

      The burden of proof lies on the person making the claim.

      If they said "its curve would probably look like the normal distribution", I can go with that. It might have some merit considering what you quoted. But to make the claim that it is Gaussian, without having an acceptable amount of evidence to back up the claim, is misleading and potentially wrong.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    43. Re:News? by Art+Challenor · · Score: 1

      I chose music because most people can relate at some level, but I think that the logic is true for just about any human endeavour. You could teach any kid to skateboard, but not every one could reach the Tony Hawk level. I don't think that just anyone could reach Zhihao Chen's level in Dota or chess grand master level.

      Just as anyone can participate adequately in any of those activities, not every programming task requires extreme talent. However, if you do have a task that requires someone from the top end of the bell curve, I don't think that any amount of training will move someone from the bottom end to the top (or most of the middle to the top).

    44. Re:News? by Bengie · · Score: 1

      determined by the time and motivation they put in

      And if you're not born with this motivation? Unless you're saying people can be motivated at gun point to become great programmers. Self motivation to want to learn is a mental trait of a programmer. Everyone else will eventually be automated out of a job.

    45. Re:News? by Half-pint+HAL · · Score: 1

      many users inexplicably believing that programming requires a "special mind", dividing people in to two groups: "can program" and "can never program".

      This is not "inexplicable". It is obvious to anyone who has taught programming to beginners, or any type of introductory abstract math. About a third of the population is simply incapable of abstract reasoning.

      Nope, all that this proves is that you and many of your colleagues haven't been able to teach programming or abstract maths to them. To generalise that it is "obvious" that they are "incapable" is a lazy shortcut. Now I'm not suggesting that you personally are inadequate as a teacher -- all of us have limited time and resources to deal with our classes, and we can't do everything.

      However, we must always bear in mind that students ability to pick up new things is limited by the prior knowledge they enter the classroom with. We bear that in mind, but we accept that we do not have the time to address all the failings of their previous teachers or of their home environment. In doing so, we leave ourselves open to identifying some of the most prominent knowledge gaps, and we can slowly, year after year, find ways of making things clearer to the struggling students, without slowing down the successful students at all.

      And no, I've never taught programming. But if there's any other subject that's affected as strong as programming with the talent myth, it's human languages, and that's what I teach.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    46. Re:News? by Anonymous Coward · · Score: 0

      Uninterested doesn't mean incapable. I've known plenty of people who claim to have no talent for mathematics or programming, but have no difficulty understanding complex abstract concepts in other areas that they happen to be interested in. Shit, some people can apparently take the bible and turn it into an internally-consistent and logical world view!

    47. Re:News? by Gavagai80 · · Score: 2

      Actually, Michael Jordan was still a better baseball player than 99.99% of the population. Let's see you hit .200 and drive in 50 runs in AA pro baseball.

      --
      This space intentionally left blank
    48. Re:News? by Anonymous Coward · · Score: 0

      There is a quote, attributed to Einstein, but which I fail to source properly, which suggests that Einstein disagrees with you: "It's not that I'm so smart, it's just that I stay with problems longer." Mozart and Einstein made themselves, by being interested and mindful.

    49. Re: News? by Bengie · · Score: 1

      Drawing talent was replaced with cameras or Photoshop filters. If you want art, you need to get to that 0.01% of the population.

    50. Re:News? by Bengie · · Score: 1

      Yes and no. Yes, we shouldn't give up on them. No, someone getting an A on a programming assignment, but takes them 3 days, when I can finish the assignment in 1 hour, it not what I consider "getting it".

      Making a program work is only 20% of the job. It's great they have a better understanding and appreciation for the work that goes into programming, but keep them away from me.

    51. Re:News? by Bengie · · Score: 1

      They were born interested and mindful. I believe that intelligence is a bell curve, but interest is not. Anyone can be smart, but most people's personalities won't let them.

    52. Re:News? by BarbaraHudson · · Score: 1

      I'm one of the good ones! Oops, I meant cout "I'm the best!" endl;

      \ Let me fix that for you

      cout << "No, I'm the best!" << endl;

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    53. Re:News? by Anonymous Coward · · Score: 0

      It's much cheaper to validate both on the client and server than have the server process all invalid inputs and send appropriate responses back to the client.

      You don't need to weed people out if their code is fine. Do you use open source programs? Most of them are crap. The open software developed by paid workers is better.

    54. Re:News? by ultranova · · Score: 1

      About a third of the population is simply incapable of abstract reasoning. If you think otherwise, I invite you to come to my house, and I will give you a free dinner while you explain "vectors" to my 15 year old daughter.

      "15 year old" and "daughter" are abstract concepts. It's not possible to use English, or any language for that matter, without capability for abstract reasoning. So if your daughter can talk, she can reason; whether she wants to is another matter.

      Most people simply have no use whatsoever for abstract math, so they won't put in the effort needed to become good or even passable at it. That's all there is to it.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    55. Re: News? by Anonymous Coward · · Score: 0

      Unfortunately, in certain cases 10x developers cannot be replaced by any number of developers. Sometimes you do need good developers to solve difficult problems.

    56. Re:News? by Anonymous Coward · · Score: 0

      Ditto. I'm a reasonable programmer, but prima donnas piss me off with their "I am a programming god" attitude. It destroys teams that otherwise can produce very good coding if left alone.

    57. Re: News? by MadKeithV · · Score: 1

      When it comes to programming, nearly all problems seem simple at first.

      I think this is one of the most important things to hammer into software engineers - never assume anything is simple. There are a great many things that seem extremely simple to humans but turn out to be much less simple when trying to get a computer to do it. The example I tend to use is shoelaces - e.g. do you know how you tie your shoelaces?.

      I've long lost count of the number of times a customer has said something along the lines of "but you can just see how it's done!" when describing a difficult problem, often involving parsing of vision and heuristics to find a probable solution.

    58. Re: News? by Bengie · · Score: 1

      /agree I can't tell you how many times I've had a simple problem get complicated fast, and I don't mean feature creep. I just mean handling all of the cases that could happen given the desired requirements. I don't just handle the working cases, I handle all of the failure cases. Those things are pesky.

    59. Re:News? by ceoyoyo · · Score: 1

      People develop, or lose, motivation all the time. You're born with the motivation to do things like look at faces, imitate people around you and eat. More complex motivations are born out of experience and necessity. Lots of people are motivated to do things if there's a sufficient reward involved.

    60. Re:News? by ale2011 · · Score: 1

      [...] as long as they tried and made it a priority.

      That's the key point!

      While it is commonly agreed, nowadays, that computing is as revolutionary as the invention of writing, global alphabetization is not being addressed. Jacob Kaplan-Moss seems to derive the U-shape myth from the assumption that people don't even try to understand programming unless they aim for top notch. Perhaps, that's the real myth he meant to address. Look at this snippet.

    61. Re:News? by Bengie · · Score: 1

      Motivation is not enough, you need interest, obsessive curiosity.

    62. Re:News? by ceoyoyo · · Score: 1

      No, you don't. Despite the geek mythos, programming is not some wunderskill that only the genetically gifted can learn. If you're willing to put in the effort, you'll learn, just like anything else.

    63. Re:News? by Bengie · · Score: 1

      Of course effort, but rarely does anyone put in the effort unless they're motivated, and few people are motivated by anything except curiosity. My point is unless you're curious, you will not put in enough time or effort to be good. figurative "you": Ohh nice, you've been programming for 8 hours per day for 10 years. I've been putting in 16 hour days for 20 years and I'm younger than you. Good luck.

      Plus, they younger you start, the more advantage you have because your brain is more plastic. If I started doing basic problem solving stuff when I was 2, how does that compare to someone who started when they turned 18? 2? yes. My mom tells me of when I was taking apart electronics and attempting to put them back together when I was 2, but close to 3.

      I'm not special, I'm just different. I'm not good at most things people consider easy. Like an Olympian, I'm not gifted, I just put in more time.

  2. Depends how you evaluate the curve by xtal · · Score: 4, Insightful

    If you're looking for people who generate a profit from their time, the curve is almost certainly U-shaped based on my now not-so-light 30+ years in the trenches.

    Why is this any different than the population of other skilled professionals? You will see the same curve for musicians, for example; it's not necessarily about being able to eventually get the skill, but it's about doing so in a reasonable efficient amount of time proportional to the effort expended.

    In terms of actually learning, the guy probably has a point - eventually, I could learn to play the violin - but having tried, I'm never going to do it professionally.

    Ask me to develop OMAP firmware or drivers, otoh..

    --
    ..don't panic
    1. Re:Depends how you evaluate the curve by Sique · · Score: 5, Informative

      Actually, you don't have this U-curve with musicians. But many people just see the low end (the child of the neighbours screeching away on the violin when you want to take a nap), and the top end (the star violinist in the news). This creates the false impression of an U-curve. But there are hundreds and thousands of violinists you usually don't see, because they play in some university orchester in a small town you've never visited, or they play at marriages and 50th birthday parties, or they earn their money as bar violinists. And most of them are average.

      --
      .sig: Sique *sigh*
    2. Re:Depends how you evaluate the curve by xtal · · Score: 1

      ..that's why I put the quantitative measure on those who generate a profit from their skill, or produce a profit on their time for others.

      I am quite certain that curve is U-shaped.

      --
      ..don't panic
    3. Re:Depends how you evaluate the curve by Chrisq · · Score: 1

      ..that's why I put the quantitative measure on those who generate a profit from their skill, or produce a profit on their time for others.

      I am quite certain that curve is U-shaped.

      Even ignoring those wh don't generate any profit I'd be surprised if it wan't a slope, with hundreds of buskers, small orchestra players, music teachers, fiddlers in folk bands playing the Irish pub circuit etc. and very few high paid violinists.

    4. Re:Depends how you evaluate the curve by trout007 · · Score: 1

      Nearly anyone can generate a profit if the pay is commensurate.

      --
      I love Jesus, except for his foreign policy.
    5. Re:Depends how you evaluate the curve by websitebroke · · Score: 1

      Comparing the professional musician market to the professional programming market seems dubious at best because the demand for those two services is radically different. Being a professional musician has always been about somehow standing out from the other millions of kids who want to be a star too. On the other hand, we're pretty much tripping over work to do in the programming world. If you can write code, and you don't absolutely suck, you will have work of some sort. It won't be rock star work, but it'll be an honest job that pays a comfortable living wage.

    6. Re:Depends how you evaluate the curve by Sique · · Score: 2

      Actually, data available from the Künstlersozialkasse, a health insurance for musicians and other artists in Germany, suggests that that curve is a hyperbola, as expected from a phenomenom in a social context.

      --
      .sig: Sique *sigh*
    7. Re:Depends how you evaluate the curve by operagost · · Score: 1

      So you think only the best AND the absolute WORST musicians make money?

      I'm at a loss as to what line of reasoning could be used to come to such a conclusion.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    8. Re:Depends how you evaluate the curve by captain_sweatpants · · Score: 1

      I believe he is graphing quantity(profit or skill), not profit(skill). Of course he is probably assuming profit ~= skill which in my experience is a poor assumption.

    9. Re:Depends how you evaluate the curve by CastrTroy · · Score: 5, Informative

      I agree that many people can play instruments if they work hard enough at it, but I don't think that you can draw a direct comparison between something like playing violin and programming.

      I think that the music equivalent of programming would be something like song writing or composing. With playing a song, your are really just following the instructions that somebody else gave you, like following a recipe in a cook book. Most people can learn to do this well. However, composing an original piece of music is more like making up a recipe of your own from scratch and having it turn out well. I know people who are very good at following recipes and make amazing food, but who are unable to figure out which spice to substitute for another when they are out of an ingredient. Or are unable to take a random bunch of stuff they have left over in their cupboard and turn it into something good.

      Relating this back to programming, I think that programming is quite hard to grasp for a lot of people. It's easy enough for them to grasp the basics. Tell them the exact specifications of small function, such as "write a function that removes all the vowels from a string", and they could probably do a pretty good job of it. However, give them a larger problem without a direct answer, like for instance, "write an application that allows 2 users to send messages to eachother" and they are completely lost. They have no idea how to plan out the application and will probably take 10 times longer to complete the project than a good programmer would.

      There's a huge problem, even with people already working in the field, who can't do something as complicated as Fizz Buzz. That should be a simple function, and yet a lot of people fail even this simple test.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    10. Re:Depends how you evaluate the curve by DerekLyons · · Score: 1

      Why is this any different than the population of other skilled professionals?

      That's the thing - the (claimed) distribution is different from what we see in other professionals.

    11. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      Thanks for the insight; yeah that makes sense. Now, what's a hyperbola?

    12. Re:Depends how you evaluate the curve by Minwee · · Score: 5, Funny

      Now, what's a hyperbola?

      It's something that people on the other end of that U-curve of math knowledge from you all know about.

    13. Re:Depends how you evaluate the curve by radtea · · Score: 4, Insightful

      If you're looking for people who generate a profit from their time, the curve is almost certainly U-shaped based on my now not-so-light 30+ years in the trenches.

      The skill distribution doesn't have to be U-shaped to produce a U-shaped distribution. All there has to be is a threshold of skill that must be reached to perform effectively: http://www.tjradcliffe.com/?p=...

      I liken this to a wall-climbing task in an obstacle course: some combination of height/weight/strength is necessary to get over the wall. If you measure them individually you'll see broad distributions with soft correlations with ability to get over the wall (because short/strong/light people will be able to do it and tall/strong/heavy people will be able to do it, but short/strong/heavy people won't and tall/weak/light people won't, etc). The wall-climbing task requires the right combination of a small number of such skills to be over some threshold. This trivially (as the simple model in the link shows) generates the observed U-shaped distribution in programming outcomes.

      People who claim that anyone can be taught to code well enough to pass a first year computer science course have the opportunity to make a very simple, compelling argument in favour of their thesis: tell us how to teach people to program! If you can do that--if you can get rid of the U-shaped mark distribution that has been documented in first year computing for decades despite all kinds of efforts to understand and deal with it, your argument will be made. Everything else is just hot air: ideological and unconvincing.

      There are certain things we know do not cause the bimodal mark distribution in first year computing:

      1) Bad teaching (because the issue has been researched and any number of caring, intelligent teachers have thrown themselves at it, and anyone's sucky first year computing prof does not disprove this)

      2) Language (because the bimodal mark distribution persists in all languages)

      3) Years of coding experience of incoming students (because if that were the case it would have been identified as the differentiator in the decades of research that have gone into this: someone with no coding experience can do as well as someone with years... if they are over some threshold of skill.)

      So while it's fun to watch equalitarian ideologues tub-thump this issue, they unfortunately bring nothing to the discussion but ideological blather. The U-shaped, bimodal, mark distribution in first-year computing is robust evidence of a threshold of some kind that people have to be over to code well. There may be other thresholds higher up the scale (I've seen estimates that 25% of coders will never get OO... god knows what the figure is for FP, which I'm still struggling with myself.) But the claim "It would be dreadful if everyone can't code!" is not an argument, it's an emotional outburst, and we need to focus on the data, not the way we wish the world is.

      Personally, I would love it if we could figure out how to teach coding better. I see journalists, economists, politicians, business-people, all sorts who are dependent on coders to help them out on the most rudimentary questions. If we could teach everyone to code the level of data-driven discourse would go through the roof. But I'm not counting on that happening any time soon.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    14. Re:Depends how you evaluate the curve by narcc · · Score: 4, Funny

      I tuned the radio to the local top-40 station. It would appear that the worst musicians do indeed make money.

    15. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      That would be, any high-school-level algebra student, in this case.

    16. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      How you evaluate the curve? The curve is a distribution. Are you referring to the distribution of who makes money, versus how much skill / productivity they have? Well then you are talking about something entirely different then the article.

    17. Re:Depends how you evaluate the curve by AthanasiusKircher · · Score: 4, Insightful
      I agree with you that the analogy with music and programming is not exact. HOWEVER...

      I think that the music equivalent of programming would be something like song writing or composing. With playing a song, your are really just following the instructions that somebody else gave you, like following a recipe in a cook book.

      I think that's a bit of a misunderstanding of how one gets to the "top tier" of musicians, and for that matter, how one becomes a great chef.

      It what you say were true, no violinist would ever bother recording another version of some piece of music. In fact, nobody would ever bother even going to see a concert of a standard piece, since there would be nothing new -- it would just be the same "script" or "recipe," and most well-known pieces already have arguably a number of "perfect" recordings (at least in terms of "playing all the notes in the right rhythm and in tune" or whatever your standard is).

      No pop star would ever bother recording a cover of an older song. After all, a great singer already did it.

      But of course that isn't true. Composers don't generally write every single detail of interpretation in a score, just like there's a lot of "unwritten knowledge" in most recipes about how to actually produce good results. Beyond that, music is a process that happens in real-time. A skilled performer will be sensitive to everything from how their instrument sounds that day to the quality of acoustics in the playing environment to the fact that today they just happened to play the high note in that first theme a little stronger, and maybe they'll bring that note out again a little later because it creates a cool connection (which listeners may not consciously be aware of, but it suddenly brings out an emotion or creates a feeling of continuity which changes the piece).

      Performance is an artform at the highest levels. You may not be interested in such nuances, and that's fine. But people who spend hours and hours every day of their lives practicing instruments aren't just "learning notes." They are developing techniques, learning ways to produce better interpretations of music (beyond the basic blueprint in the score), gaining a facility to make real-time adjustments that will create a better experience for listeners at a live event, etc. Similarly, a skilled chef may follow the same instructions you do from a cookbook, but the result in quality may be vastly different. The execution often makes the difference between mediocre and truly great.

      I've had people tell me that a particular piece of music was worthless, even when played by top performers who can do flawless execution of the notes. I've then played them a recording of the exact same piece (with all the same notes, played from the same score) played by another performer -- and I've had people say they suddenly thought the piece was amazing... they heard things they never did before, or it had a kind of "energy" that made it enjoyable or whatever.

      Anyhow -- this isn't just about music. It's recognizing the value of performance in all walks of life. It's also about recognizing how great artists, whether they generate a product or whether they perform on a stage, are able to tap into dynamic and creative processes to produce effects that are much better than others. You may have been given the greatest set of Powerpoint slides in the world, and you may basically follow a script for a presentation -- but there can still be a huge difference between a completely engaging live presentation and a crappy one that "just follows the instructions that somebody else gave you."

      I know you probably didn't mean to denigrate performers, but I think we often tend to think of what's written down as the "primary stuff," no matter what line of work you're in. But there is a lot of knowledge and skill that's passed down orally and learned verbally or through tactile/kinesthetic engagement which makes the difference between following a rec

    18. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      If you can do that--if you can get rid of the U-shaped mark distribution that has been documented in first year computing for decades despite all kinds of efforts to understand and deal with it,

      That is quite simple: spend ten years bashing them with a clue bat until they have the basics down. Then let them do all first year computing assignments. Repeat exponentially for every increase in complexity. I don't care if its lack of "talent", dedication or just motivation there are people who are just resistant to being taught.

      I had to deal with "experienced" programmers that couldn't find files if you told them they where in one of two directories. Others would miss the point of a project and produce an unusable program after having the error of their ways repeatedly pointed out, repeat that for several projects and then complain when they lost their job.

    19. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      >but who are unable to figure out which spice to substitute for another when they are out of an ingredient. Or are unable to take a random bunch of stuff they have left over in their cupboard and turn it into something good.

      These skills can't be learned?

    20. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      You probably don't want to use the high paid violinist as an example since most orchestras are bankrupt. As for software companies, most are close to bankrupcy as well. Amazon, google, facebook are all teetering on the edge. Small companies are definitely a month or two from insolvency.

    21. Re:Depends how you evaluate the curve by shoor · · Score: 1

      Well, you had me scared after reading about fizzbuzz. How many slashdotters besides me had to try writing it? I wish I'd timed myself but I think it was less than 5 minutes. I think it was the first program I've written in at least a year. (Had to do a sudo apt-get install build-essential to even get it to compile.)

      --
      In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
    22. Re:Depends how you evaluate the curve by jedidiah · · Score: 1

      A person has to be willing to learn them. This seems to be even more of a problem then "innate ability". Even following the most rudimentary recipe can be a problem for the same kind of "special snowflakes" that should be kept away from your source code repository.

      Again, some people know just enough to be dangerous. It's not that they are less productive than "Rock Stars". They are a net loss.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    23. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      Isn't this an artefact of the bimodal test (and teaching) in math?

    24. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      I suppose you can argue the point, however my experience is that the excellent programmer is 10x more valuable than the average. So its a constant search for that hidden talent. The click that unlocks that hidden talent is the mystery. I think some part of it has to do with coders who find pleasure in the mere act of program writing.

    25. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      I agree that many people can play instruments if they work hard enough at it, but I don't think that you can draw a direct comparison between something like playing violin and programming.

      Well that's another popular myth. That you have to be "wired differently" to learn to program. The reality is that math education sucks and programming requires a skill that isn't being taught well to most people. This makes the success cases hard to explain because they're not strongly correlated with the attempts to teach them, and so superstition fills in the gaps.

    26. Re:Depends how you evaluate the curve by Hognoxious · · Score: 1

      Assuming that nobody is born able to program, play music or do any other artificial skill, then people must travelling from the left arm to the right one as they pick up experience.

      So why is the "bridge" so low? There must be people on that part of the curve to top up the elites as they retire, die, join communes in Vermont etc. Do they pass through it very fast? I don't see a plausible case for that. It's not like there's one or two magic things you need to grok and voila, you're Dennis Ritchie.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    27. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      If your company can't make a profit, in 2015, from the time of capable but non-brilliant programmers, then the problem is your management team. Find a new employer. My company is full of capable "B players" (and I don't say that derisively) who contribute handily to customer satisfaction and company profit.

    28. Re:Depends how you evaluate the curve by Bengie · · Score: 1

      Your examples are of top tier "rock stars". That's the same argument about programmers that we're having. There is "I made a program", and there is "I made a great program". The difference is in programming, there is a thing called technical debt. Average programmers create technical debt almost faster than I can fix it.

      i'm just happy the primary people that I work with can understand what I'm talking about and can understand my vision and know when to ask me questions. But get some other programmers from other departments, and they don't ask questions. You ask them to do something, they make it work and nothing more. Pass in something unexpected and their code goes to shit. Brittle code with lots of undefined states. Pure crap.

    29. Re:Depends how you evaluate the curve by tigersha · · Score: 1

      Out of a mathematical interest, do you have any data or a link here? If the article is in german, no problems, I speak the language.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    30. Re:Depends how you evaluate the curve by bingoUV · · Score: 1

      The conclusion is easy to reach. The worst can tell you to pay up for them to stop playing the music. The best can tell you to pay up for them to play the music.

      You wouldn't pay the average musicians for jack shit.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    31. Re:Depends how you evaluate the curve by Sun · · Score: 1

      Just to add to your comment, there are beginning of studies that claim they can distinguish between those who can from those who can't as early as first day of school.

      Shachar

    32. Re:Depends how you evaluate the curve by siliconsmiley · · Score: 1

      The problem with this is that the "rock star" or "ninja" developers perceive the talent pool this way because everybody other than themselves is a talentless hack.

    33. Re:Depends how you evaluate the curve by siliconsmiley · · Score: 1

      However, give them a larger problem without a direct answer, like for instance, "write an application that allows 2 users to send messages to eachother" and they are completely lost.

      Which is where division of labor and teamwork come in.

    34. Re:Depends how you evaluate the curve by siliconsmiley · · Score: 1

      You ask them to do something, they make it work and nothing more. Pass in something unexpected and their code goes to shit. Brittle code with lots of undefined states. Pure crap.

      This statement could be made about any profession in any line of business. The real question is, whose fault is it? Is it the less skill developer's fault for not perceiving and accounting for every possible scenario or is it yours for not properly communicating?

    35. Re:Depends how you evaluate the curve by Ol+Olsoc · · Score: 1

      If you're looking for people who generate a profit from their time, the curve is almost certainly U-shaped based on my now not-so-light 30+ years in the trenches.

      Why is this any different than the population of other skilled professionals?

      Yeah, isn't it weird? Every profession has a varying competence level, but apparently anyone can code with the best.

      And yet, the shit I've seen.......

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    36. Re:Depends how you evaluate the curve by Bengie · · Score: 1

      If I have to hold their hand, I may was well do it myself, it would be faster and exactly what I want. The programmers on my team are generally very good at spotting issues before they happen or knowing something is wrong and discuss the context and what they feel may be off. A lot of our job is consulting and design. Not only do I need to make something work, I also need to understand the implications that come along with a given design, Constantly thinking of edge cases.

      In general, if you can't keep up, then you're in my way. I'm not perfect myself and I go to others to ask them questions when I get stumped, but the one thing in common among all of us is we realize when something is wrong. We all seem to have a very good intuition. We can't say exactly what is wrong, but we know something is wrong, it's a gut feeling.

    37. Re:Depends how you evaluate the curve by niftymitch · · Score: 1

      If you're looking for people who generate a profit from their time, the curve is almost certainly......

      The shape of the curve has statistical value and analysis value but most companies are too small
      to care about the curve. They are saddled with finding the necessary skill set and also stay
      within budget. Some suffer sticker shock.

      In my limited lifetime the best model for programmers is book authors.

      A programmer must communicate with clarity to the machine and with
      management. So as a minimum two context sensitive language constructs
      must be mastered.

      Skills and details can be learned but the set of necessary detailed skills is moving so fast that
      a hiring manager has no clue anymore. When I first put a deck of cards on the in window
      for the new 1401 I had a short list of languages to work in. Today I need wc to count them and
      all the ways they can be cross linked. N! comes to mind and as the number of coding methods
      expands to embrace more languages and vastly more libraries the ability to find a match
      becomes astonishingly small.

      One might see a list of words unique to one university recolored by the language of the
      last programming team. This is seen in patent applications where an examiner has no
      encyclopedic knowledge that allows him to see that this is the same as ______.

      I have suffered through at least four iterations of RAID technology and tools.
      They all had the same underlying "stuff" but the language and tool names
      made them incomparable without a magic decoder ring.

      The authorship thing is interesting... A look at the NYT best seller list and there
      is not enough data to describe the curve. Amazon might have a modern data set
      that can describe this but they may not have more than noise.

      Good authors of books and programs are simply uncommon.
      Editors reviewers and typesetters much more common.

      --
      Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
    38. Re:Depends how you evaluate the curve by Anonymous Coward · · Score: 0

      What? People can be NEGATED to programming by birth, but NEGATED! They will simply CANNOT. Then programmers BARELY can do the thing, and this is true! We made it simple for them, but they can _barely_ do the thing. Then people who do have the ability OUTPERFORM. It simply comes naturally, independent of learning and other considerations. You can teach how to make a menu, but programmers are the ones who THINK of menues as a programming task. I think it is very dangerous not to acknowledge these differences. You overswamp the scape with program/mer clones that do not advance over anything else and do not solve the problem, then you overlook innate abilities can be inherited and cultivated. Most programmers can do something because it is already included in the APIs! Most problems seem to be communicating and enlisting and that s it. When will we see true and real graphing algorithms? That s research, not programming, and merely programmers will not solve them beyond what someone else already did! So distribution is not normal but very skewed, with average only diverging from null by a small distance. I think I can teach my mother to write web pages, even animated ones, but most pro students did not even consider... inventing web pages! I was already integrating the web, without connectivity, in Apple II applesoft basic in 1981, when the middle of the distribution started BANGING, sic, and have not stopped BANG-ING since then, so go figure if you convince the masses they can be more than just **read-write-program** but can actually become **full library-Tolkien-CNC**: they will feel so much pressure you ll swamp all programmers. Sic.

  3. The Curve on Academic Courses by Anonymous Coward · · Score: 5, Informative

    On academic programming courses - of which I've taught on many - the grade distribution is definitely bimodal and there is a clear gap between those who can and those who can't. Of course, there is variance among those who can but the difference is largely that those who can largely get better whilst those who can't never get even get it.

    1. Re:The Curve on Academic Courses by Bongo · · Score: 4, Interesting

      Maybe then there is something about how to really teach programming that everyone is missing. With drawing, people are either good at drawing or awful at it, regardless of classes, until teachers figure out what drawing really is and what the mind is doing when it is drawing. The people who have been seen to do well "in class" are just the ones who happen to have already got that mind skill. So I would wonder whether education has this figured out with programming, and that you'll see bimodal until it does.

    2. Re:The Curve on Academic Courses by jythie · · Score: 4, Insightful

      I think it is less a problem with how programming is taught, and more one with how programming is evaluated. Programmers, as a subculture, have serious issues separating stylistic from functional differences, with people looking for things that scan the way they write, with tests for readability and correctness really coming down to 'did the person do it the way I would?'.

    3. Re:The Curve on Academic Courses by Orgasmatron · · Score: 2

      One of my friends (who now has a masters in CS) was asking me why his programming 101 course was so heavy on pointers when nearly everything in the 200+ range was taught using pointerless, or nearly pointerless, languages.

      The reason, of course, is to figure out as early as possible which camp each student was in.

      I've used a similar technique with cousins and nephews who have come to me, as the adult in the family that works with computers, for advice when trying to decide to start (or sometimes quit) a CS course.

      --
      See that "Preview" button?
    4. Re:The Curve on Academic Courses by tompaulco · · Score: 3, Insightful

      One of my friends (who now has a masters in CS) was asking me why his programming 101 course was so heavy on pointers when nearly everything in the 200+ range was taught using pointerless, or nearly pointerless, languages. The reason, of course, is to figure out as early as possible which camp each student was in.

      I would think that the reason was the same reason that we teach people to add before we teach them to use a calculator. After understanding the basics, one can make better use of the tools.
      Unfortunately, most 4GLs (and even some 3GLs) obfuscate what is really going on in the background such that you either can't write efficiently or at least the effort involved would be ludicrous, so we end up with bloated monstrosities.

      --
      If you are not allowed to question your government then the government has answered your question.
    5. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 1

      I've been programming since I was a very small child, and I found that the first 15 years, I didn't feel like I was a good programmer at all. 15 years before I felt like I was really decent at it. I've been coding for ~23 years now.

      Programming, talent or not, still takes an immense amount of work to develop as a skillset.

    6. Re:The Curve on Academic Courses by pla · · Score: 4, Interesting

      I can appreciate the difference between "I don't like this code because it looks different than how I would have written it", and "I don't like this code because the author clearly has no clue how to accomplish the required task and only barely managed to cobble together enough crap to get the desired outputs on a handful of test cases".

      The former, I can work with (and sometimes learn from). The latter, I know that I will eventually need to waste more time "helping" the author repair it when it breaks, than I would have just doing it correctly the first time myself.

      The real problem here comes not from professional programmers, for the most part (though yes, truly awful "professionals" do exist). The problem comes from having most of the people "programming" in a modern office environment not actually programmers. You have accountants writing god-awful VBA, you have help deskers writing crappy web forms to automate part of their work, you have business analysts who know juuust enough SQL to get an answer, albeit a completely wrong answer, from the data.

      This has nothing to do with style, and everything to do with "programming" as an increasingly required bullet point on the average office worker's resume. Yeah, you know some VBA, good for you - Now learn when you can accomplish the same thing with normal Excel formulas, and quit turning every spreadsheet you touch into a smouldering heap of unmaintainable side effects.

    7. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      Weird, I've never seen big grade issues related to stylistic things in programming courses. This is especially at the lower level courses, before "those who can't never get it" would have left. Beyond very simple constraints, like requiring the use of recursion when teaching about recursion, if their program/function works, they get full credit. There might be some notes on how to improve readability, but that doesn't go against the grade, but otherwise there are often multiple ways to solve a problem.

      It is a lot like math courses, where if your proof is sound, you usually get full credit. There might be a bunch of red ink if you took off on a tangent or have something redundant in there, but that doesn't mean the grade is impacted. The only issue in both cases is if you get the wrong result, and the grader needs to evaluate what you did for partial credit.

      Readability matters, but I've found most students figure this out pretty quickly when they need to present partial work for help, or as things get more complicated, regardless of if it is code, a breadboard or a proof. But maybe I've been lucky, and that is why in courses, both that I took way back when and in ones I've taught, seem to almost always end up with a normal or skewed distribution, not bimodal.

    8. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      Maybe then there is something about how to really teach programming that everyone is missing. With drawing, people are either good at drawing or awful at it, regardless of classes, until teachers figure out what drawing really is and what the mind is doing when it is drawing. The people who have been seen to do well "in class" are just the ones who happen to have already got that mind skill. So I would wonder whether education has this figured out with programming, and that you'll see bimodal until it does.

      Exactly! In a programming class it's more likely that you encounter people who are adding a similar skill rather than learning from scratch. Don't know if this is true for younger programmers, but in my day everyone had a Commodore 64 or TRS-80, GW-BASIC or something that introduced them to programming prior to any schooling.

      I've also seen people who are in computer science because it a "good career" without having done any programming at all. They're behind the curve, technologically speaking. They become my managers.

    9. Re:The Curve on Academic Courses by phantomfive · · Score: 2

      until teachers figure out what drawing really is and what the mind is doing when it is drawing.

      FWIW it's been figured out (at least, the teaching aspect has been figured out, even if we still don't know what's actually going on inside the brain).

      --
      "First they came for the slanderers and i said nothing."
    10. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      On academic programming courses - of which I've taught on many - the grade distribution is definitely bimodal and there is a clear gap between those who can and those who can't. Of course, there is variance among those who can but the difference is largely that those who can largely get better whilst those who can't never get even get it.

      Those who can, do...and those that can't, teach?

    11. Re:The Curve on Academic Courses by goose-incarnated · · Score: 2

      Maybe then there is something about how to really teach programming that everyone is missing. With drawing, people are either good at drawing or awful at it, regardless of classes, until teachers figure out what drawing really is and what the mind is doing when it is drawing.

      While I agree with your premise I disagree with your analogy; drawing, specifically, can be taught. There are purely mechanical rules to producing a reasonably high quality sketch of a face, or scene or object. I can (and have) taught the basics of drawing, sketching and shading in pencil.

      --
      I'm a minority race. Save your vitriol for white people.
    12. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      I would hope that that isn't the reason. IMHO understanding pointers and understanding the high level concepts of pointerless languages is one and the same. Pointers are indirection. Programmers need to be able to tell the difference between something that is referred to and something that refers to something else, between copies of references to something and copies of that something. This concept appears everywhere in programming, even where actual addresses aren't used. Storing array indices in a variable? That variable is a "pointer".

    13. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      Those "mechanical rules" are just techniques that can be applied in any scenario, ignoring many edge cases where the technique used might not be fully sufficient. You could similarly teach programming techniques that could be used for many scenarios that don't fully cover every potential problem. Drawing and programming are similar enough for a comparison to stand as a comparison.

    14. Re:The Curve on Academic Courses by Bongo · · Score: 1

      Yes, sorry about the poor use of tenses, that is what I had in mind.

    15. Re:The Curve on Academic Courses by meta-monkey · · Score: 1

      It's critical, too. When you learn the low-level stuff, you develop a more intuitive sense of algorithms. Or you understand why "equality" becomes a contextual problem when dealing with reference objects. And dealing with character buffers and malloc calls in C gives you a better insight into why strings are immutable in Java, Python, .NET, others.

      But when you've never had to think about how the code is represented at a lower level, well that's when you get the somebody writing horror shows like:

      public static class Logger
      {
              string log;

              public void AddToLog(string newEntry)
              {
                      log = log + newEntry;
              }
      }

      --
      We don't have a state-run media we have a media-run state.
    16. Re:The Curve on Academic Courses by Bongo · · Score: 1

      OK well let's say that programming is more like architectural design, ie. it involves drawing, but what you draw comes as a result of thinking over a large set of technical, aesthetic, cultural, psychological, risk, and practical issues, and being able to organise them, puzzle out the contradictions, and find a balance which is about right for the particular site and client and costs and timescales. But again, it is a certain mode of thinking involved, or a set of modes, and if they can't teach people how to get into those modes, then students can't design stuff. Actually, there was a debate about architecture back in 1890 or something, when they were proposing to formalise architectural education, and many architects/master builders of the day, argued that it wasn't something which could be taught. You either had the skills, or you didn't, and no amount of teaching or testing could give them to you. The only way to learn was by apprenticeship, where you'd soon find out if you had the right stuff or not. Personally, I tend to think they had a point. So maybe like architecture, programming isn't about simply executing a mechanical skill, like drawing or coding, but being able to handle all the other stuff. Whether that stuff can be taught, that's the question.

    17. Re:The Curve on Academic Courses by grantsellis · · Score: 2

      As someone who was briefly an art major, drawing is largely a matter of practice and having the proper foundation (which is gained by practice). Classes increase the rate that practice helps. If you practice, art education teachers have already figured out how to help you improve. What you see in high school art classes is the division between people who care and people who don't. People who don't care don't practice and consequently don't have the foundation to practice further. Because there's no future in art, in college the only people who take art classes are the ones who care and who have the proper foundation, so (allowing for the typical small class size) there is a much more normal distribution in skill.

    18. Re:The Curve on Academic Courses by mark-t · · Score: 1

      I've always suspected that the reason for such a bimodal distribution in academia is that the people who would otherwise be in the middle of the curve, are clued in enough to realize that they may not necessarily completely getting it in ways beyond what their grades alone might attest to and end up dropping the course.

    19. Re:The Curve on Academic Courses by Beetle+B. · · Score: 2

      On academic programming courses - of which I've taught on many - the grade distribution is definitely bimodal and there is a clear gap between those who can and those who can't.

      I'm guessing those who can't will not go on to become professional programmers. If you look at active and professional programmers, is it still bimodal?

      --
      Beetle B.
    20. Re:The Curve on Academic Courses by narcc · · Score: 2

      I've said this before. Having taught many programming classes myself, I've never once encountered one of these mysterious "can't" students.

      It's possible that you're just not a very good instructor.

    21. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      Excel is an idiot's substitute for R/NumPy and MongoDB. Python is so easy there is no excuse to be using Excel/Google Sheets formulas for anything more persistent than a one-off analysis. If your workflow depends on recycling spreadsheets you're doing it wrong. Octave / mplot3d to visualize the processed outputs.

      You see, because I'm an ego-maniac who has made capital investments in acquiring these competencies, I need to justify those investments/amortize their expense by using them as a giant hammer to solve any and all problems that cross my path. This involves ignoring the significant time/labor overhead expense incurred in the process of using "heavy" methodologies to solve problems of limited financial value.

      https://xkcd.com/1205/

      By being terrified of any of my work being perceived as "low quality", I embezzle value in the form of skill and expertise investments in my own education at the expense of productivity in the short term. This enhances my own capabilities at the expense of my task-master's ability to liquidate my credibility for their own self-advancement.

    22. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      Nope. It's the first one.
      http://en.wikipedia.org/wiki/Cooling_out

    23. Re:The Curve on Academic Courses by drrilll · · Score: 1

      In my experience, this is not even remotely true. Whether a program works or not is often binary, or broken into binary components. Stylistic marks do exist, but only minimally, and I have never seen a failing grade based on style.

    24. Re:The Curve on Academic Courses by quantaman · · Score: 1

      On academic programming courses - of which I've taught on many - the grade distribution is definitely bimodal and there is a clear gap between those who can and those who can't. Of course, there is variance among those who can but the difference is largely that those who can largely get better whilst those who can't never get even get it.

      There does seem to be people who are permanently clueless but I suspect you're also seeing a limitation/feature of the academic setting.

      If you are in fact teaching them something then things that were difficult at the start of the course will become easy at the end, in some cases you could even take a student who finished the course one semester and have them TA the next. But when you get into industry you've filtered out everyone who can't, at that point I find a lot of the remaining variance has to do with experience and motivation.

      --
      I stole this Sig
    25. Re:The Curve on Academic Courses by BarbaraHudson · · Score: 1

      On academic programming courses - of which I've taught on many - the grade distribution is definitely bimodal and there is a clear gap between those who can and those who can't. Of course, there is variance among those who can but the difference is largely that those who can largely get better whilst those who can't never get even get it.

      Those who can, do...and those that can't, teach?

      Good programmers make themselves available to help (teach) their cube-mates - not get into pissing contests by withholding information.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    26. Re:The Curve on Academic Courses by Anonymous Coward · · Score: 0

      I think it is less a problem with how programming is taught, and more one with how programming is evaluated. Programmers, as a subculture, have serious issues separating stylistic from functional differences, with people looking for things that scan the way they write, with tests for readability and correctness really coming down to 'did the person do it the way I would?'.

      Except just getting the right answer, even if it does it on almost all test cases isn't necessarily good code. In practice most programs will be worked on by many people over its lifetime, so being able to right correct, readable and maintainable code is important.

      Otherwise when programmer Y who is sent in to fix corner case Z that the original programmer never thought of ends up wasting huge amounts of time trying to grasp why something that should be relatively simple is written in such weird and roundabout way.

    27. Re:The Curve on Academic Courses by mr_mischief · · Score: 1

      This isn't because there's a natural U-curve. It's a resource restriction, maximizing the talent chosen for further instruction because far more people were accepted into the program than the school ever intended on having graduate from that program. It's not a "rock stars" vs. "useless programmers" distinction. It's that there's a limited number of seats in the 200 levels, so you may as well thin the herd by throwing something hard but useful out as an obstacle.

      The camps here are "worthy of further investment" and "we're sorry but you didn't make the cut". Not everyone who makes the cut is at the very top, and not everyone who missed the cut couldn't have been taught the whole curriculum. There's just a need for the school to focus its resources, and the cutoff is arbitrary for external real-world reasons.

      Quality online courses and tutoring services may actually help with this sort of either/or selection. No school is likely to want to graduate the 0.2 X programmer, but most would be happy to graduate a good deal many more 1.5 X to 4.5 X folks along with their 6 X to 9 X developers.

  4. Rock Star = by Anonymous Coward · · Score: 0

    free time and level of interest.

    That's pretty much all it takes to get ahead.

    1. Re:Rock Star = by jythie · · Score: 2

      More like personality. Being a rock star in programming has nothing to do with output or quality, but of convincing peers and managers that you are good. The greatest trait to have for becoming a rock star is narcissism and the social skills (even if they fashionably broken) to pass that off as competence. Most 'rock stars' I have worked with generally needed drones to clean up their work, but they were great at giving the impression they walked on water to anyone who mattered.

    2. Re:Rock Star = by eulernet · · Score: 4, Interesting

      While you are partly true (in France, we use the term "savoir faire" -expertise- opposed to "faire savoir" -publicize-), I think another factor is more meaningful: intrinsic interest.

      If you let me program something interesting, I'll be the best programmer in the world, following the strictest guidelines without complaining.

      But if you let me program some boring shit, I'll be as useless as any lazy guy.

      In your case, this can be expressed as: the rockstar does all the interesting work, and delegates all the menial tasks to other people.
      When you are a beginner, everything is interesting.
      As you grow older, a lot of things become boring.

    3. Re:Rock Star = by jythie · · Score: 1

      Heh. That is another good way putting it too.

    4. Re:Rock Star = by eulernet · · Score: 1

      I'm not a rockstar, but my daily programming job is boring like hell.
      You can imagine how much I'm productive ;-)

    5. Re:Rock Star = by Anonymous Coward · · Score: 0

      There's a corollary and it's career death if you admit it: Some people don't want to be rockstars. I'm a mid-level developer. I have no desires to architect anything, design anything. Learning "new skills" is a matter of professional courtesy rather than "OH MY GOD LOOK AT THIS WE MUST HAVE THIS!". I excel in established code-bases doing maintenance and bug fixes. At 6PM, I want to go home to do the other 10 things I'm interested in. I've worked in many shops and I'm *exactly* what they need, except if I actually just say "Look, I don't have any ambition to be Project Manager, System Architect, or whatever" it's career suicide. Everyone pretends to want the rockstar, even though the rockstar has no desire to work on the menial or the maintenance. The rockstars want to always do "new shiny" stuff, but don't stick around to suffer the consequences. I'm that guy. I'm the guy that hates looking for a job and isn't out lookihg for a 20% bump every 6 months because, frankly, I hate job hunting and I'm just not that mercenary. I like stability. But nope, if I actually *say* that I just want to be a mid-level developer, the whispers begin. "Hey, that guy's not a go-getter, he's not one of US." And maybe they're right. I'm not competitive. I just want to show up on time, do my work, leave at the prescribed hour, and go home to do other, more interesting things. Yeah yeah "you should get out of the industry!". Been thinking about it, but the fact remains I've seen some of the code these "rockstars" are banging out and frankly, many of them suck. If that "rockstar" can bang out garbage, I can be paid to maintain that garbage, indefinitely if your company is stable enough to provide long term employment. Unless, of course, you want to outsource that whole middle tier and leave only the rockstars in the US, but that'll only last long enough for the Indian rockstars to hit the shores to displace them, too.

    6. Re:Rock Star = by Bengie · · Score: 1

      I can work with people who recognize this in themselves. not everyone loves to program, but the most important thing is having team members I can rely on. You do your fun stuff at home, I do my fun stuff at work. I got someone at my work who doesn't really aspire to do anything more than he's told to do, but he's there when you need him. I just have to remind him not to burn himself out. I wouldn't say it to his face, but we do need people to do the boring work.

      My favorite thing to do as a programmer is to make tools for people like him. I like to make his job less boring and less annoying. I want to automate as much work, and leave him with data to make better decisions with. Then he spends more time making informed decisions on what to do, which is more enjoyable.

  5. The programmer's taco. by Anonymous Coward · · Score: 0

    Choose your bytes carefully.

    1. Re:The programmer's taco. by Anonymous Coward · · Score: 1

      Dibs on parity byte.

  6. Measurements by phantomfive · · Score: 4, Insightful

    If you could measure programming ability somehow, its curve would look like the normal distribution.

    This guy doesn't know how to measure programming ability, but somehow manages to spend 3000 words writing about it.

    So he doesn't know......programmer ability might actually be a bi-modal distribution. If he had collected data to support his hypothesis, then that would have been an interesting article.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Measurements by Anonymous Coward · · Score: 1, Interesting

      The article was just an excuse to cram more SJW bullshit down our throats and call every programmer a sexist homophobe.

    2. Re:Measurements by Anonymous Coward · · Score: 0

      3000 words ..... I miss Bennett ....

    3. Re:Measurements by Anonymous Coward · · Score: 0

      Citation needed.

    4. Re:Measurements by Anonymous Coward · · Score: 0

      programmer ability might actually be a bi-modal distribution.

      It might - but that appears quite unlikely to me. Surely it has a normal distribution with the majority being somewhere in the middle

      There are certainly not many very good programmers. The only reason I can think of for skewing the bottom of the curve are people who simply aren't programmers, will never be programmers, but went into CS because "jobs". So once you remove the subset of people who will wash out of the field sooner or later, the distribution remains normal.

    5. Re:Measurements by Registered+Coward+v2 · · Score: 4, Insightful

      If you could measure programming ability somehow, its curve would look like the normal distribution.

      This guy doesn't know how to measure programming ability, but somehow manages to spend 3000 words writing about it.

      Defining programming ability is a real challenge and the definition probably varies based on what is being programmed. I had a teacher who defined it as being able to complete a task in as few lines of code as possible. OTOH, is it worth spending 2x the hours to get rid of 2 lines of code when a quicker solution works just fine? Maybe ability is being able to produce working code that meets the design specifications. Ability, IMHO, depends on the capability to complete the tasks at hand; and thus what constitutes ability will vary. I guess instead of being a 2D U curve or some such thing it is really a 3 D space with peaks and valleys.And thus I reveal my true ability: To change the parameters and drive a discussion to the end I want; which is why I am a consultant.

      --
      I'm a consultant - I convert gibberish into cash-flow.
    6. Re:Measurements by AmiMoJo · · Score: 1

      Are there any examples of other skills where the distribution is bi-modal? It would be extremely atypical. I think the default assumption has to be that the curve is the classic bell shape, like most skills, unless there is evidence to the contrary.

      More over, I think the point that programming skills can be learned is an important one. In the west we tend to think people have certain innate abilities and weaknesses, like some people are just bad at maths and can't be helped. In some places the assumption is that almost anyone can master almost any skill with enough studying and practice. If someone wants to do programming, or any engineering, to achieve some other goal they can learn to do it well, even if they don't love programming for the sake of programming like some nerds do.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:Measurements by phantomfive · · Score: 3, Interesting

      It might - but that appears quite unlikely to me. Surely it has a normal distribution with the majority being somewhere in the middle

      There is a reason for it to be bimodal.......those are the kinds of programmers companies demand.

      Essentially there are two types of companies:
      * Startups (etc) who want the best programmers and are willing to pay.
      * Others who want to pay as little as possible to get the job done.

      Those conflicting motivations could easily create a bimodal distribution (between programmers who are passionate, and those who are just doing a job). I don't know if that's happened because I haven't measured, but it seems plausible to me.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:Measurements by lgw · · Score: 3, Insightful

      Further, he's perpetrating the myth that the most talented programmers "drive away others, but you have to put up with them", which falls outside the definition of "talented" that most people would accept. Sure, you do very rarely hear about that cliche - the guy who you only give solo projects, but he's hyper-productive - but that's maybe 1 in 1000?

      The truth is, for most companies with full-career technical tracks and VP-equivalent top technical pay grades, the more senior you are, the less you code (though hopefully it never goes to zero), and the larger the organization you must have technical influence over. Since you have to build that influence yourself through a combination of leadership skills and writing code everyone uses, you'll never make it if you "drive people away".

      OTOH, you don't belong in this industry if you take code reviews personally. Every day the compiler will call you illegal, invalid, and wrong, and you co-workers might say the same about your code in CR. If you start taking that as personal criticism, you're not going to last. We're not writing opinion pieces here.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re:Measurements by Anonymous Coward · · Score: 0

      If you could measure programming ability somehow, its curve would look like the normal distribution.

      This guy doesn't know how to measure programming ability, but somehow manages to spend 3000 words writing about it.

      So he doesn't know......programmer ability might actually be a bi-modal distribution. If he had collected data to support his hypothesis, then that would have been an interesting article.

      If programming ability depends on multiple, randomly distributed variables, then it *is* normally distributed. (http://en.wikipedia.org/wiki/Central_limit_theorem)
      I think most of us would accept this premise at face value.

    10. Re:Measurements by Jerry+Atrick · · Score: 1

      Bi-modal or not, the less skilled you are as a programmer the more frustrating some parts of programming become. For the more skilled it's fighting boredom on easy work, but they stay productive and looking skilled.

      That could be pushing average programmers to find something more rewarding to do, rather than facing frustration regularly. Some of the merely above average ones are mostly above average in being more prepared to fight through that frustration - I'm one of them, the rest probably just quit.

    11. Re:Measurements by Anonymous Coward · · Score: 2, Informative

      According to Edge the tech industry is rife with sexism, racism, homophobia, and discrimination and although it is a multi-faceted problem, the talent myth is part of the problem.

      Let me know if you have any other questions.

    12. Re:Measurements by tompaulco · · Score: 4, Insightful

      Essentially there are two types of companies: * Startups (etc) who want the best programmers and are willing to pay. * Others who want to pay as little as possible to get the job done.

      In my experience the two types of companies are:
      * Startups (etc) who want the best programmers and want to pay as little as possible to get the job done.
      * Others who want to pay as little as possible to get the job done.

      --
      If you are not allowed to question your government then the government has answered your question.
    13. Re:Measurements by Anonymous Coward · · Score: 0

      Don't get fooled. This is not an article about programmer's quality. It's not even a motivational speech to programmers to become better. It is a *demotivational* speech to keep you *mediocre*.

      It basically boils down to: "You're not very clever, but it's OK. Just take your pay check and go home. After all, great coders do not exist."

      Which is FALSE (for a fair amount of people in the audience, at least). There is a significant amount of potential GREAT coders out there.

      But the worst part is when you realize that this comes from someone that HIRES programmers, and thus has an incentive to keep salaries down. What a load of bullshit, if you ask me.

    14. Re:Measurements by tnk1 · · Score: 2

      There are few more useful tools than a code review. After all, another opinion is useful in just about any field and a team needs to make sure they keep up with how other people are doing things in their modules. You find a lot of things to fix when someone is looking over your shoulder.

      However, people can be dickish about how they do them. I'm not a big fan of going through elaborate rituals to make people feel better about their code, but at the same time, when you're a dick to someone in a CR, you're making them feel defensive when you want them to be more open to accept constructive criticism.

      If people are being defensive about criticism of their code, then they need to change that, but let's not pretend that it's all on the person whose code is being reviewed.

    15. Re:Measurements by nine-times · · Score: 1

      Those conflicting motivations could easily create a bimodal distribution (between programmers who are passionate, and those who are just doing a job). I don't know if that's happened because I haven't measured, but it seems plausible to me.

      That would be a great argument if you're talking about measuring programmers' attitudes, or maybe even the quality of their code. It seems that what's being talked about here is "talent", which is often (generally?) thought to mean a kind of innate ability.

    16. Re: Measurements by Anonymous Coward · · Score: 0

      So he doesn't know how to measure programmer ability, but he knows it is a normal distribution. I doubt it is. After all, our industry practically doubles every five years, which should have some impact on the bell curve. Finally, the poorer programmers drop out of the workplace, leading to less variance in the more experienced end.

    17. Re:Measurements by sribe · · Score: 1

      This guy doesn't know how to measure programming ability, but somehow manages to spend 3000 words writing about it.

      Wow. I spent so many more words below deconstructing his argument, before I noticed how much more efficiently you had done it.

      You've proven that the mythical "25x curmudgeon" actually exists ;-)

    18. Re:Measurements by phantomfive · · Score: 1

      It seems that what's being talked about here is "talent", which is often (generally?) thought to mean a kind of innate ability.

      It doesn't exist (or if you think it does, please explain what kind of ability those with 'talent' have which those without 'talent' do not have, and we can continue the conversation).

      --
      "First they came for the slanderers and i said nothing."
    19. Re:Measurements by Anonymous Coward · · Score: 0

      Hell, I wish most places did code review. Feedback on fuckups is the best way to improve.

    20. Re:Measurements by phantomfive · · Score: 1

      To be fair, your comment was interesting to read too.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:Measurements by phantomfive · · Score: 1

      What variables does programming ability depend on? Are they really randomly distributed?

      --
      "First they came for the slanderers and i said nothing."
    22. Re:Measurements by phantomfive · · Score: 1

      Yeap, glad you got modded up for that comment.

      --
      "First they came for the slanderers and i said nothing."
    23. Re:Measurements by Anonymous Coward · · Score: 0

      ? You're very quick to play the victim card. The summary just mentioned racism and sexism still exist. But, don't let me stop you from feeling victimized and oppressed by someone mentioned that the tech industry isn't a utopia.

    24. Re:Measurements by Anonymous Coward · · Score: 0

      The required talent isn't unique to programming, but people who don't have it make bad "programmers". The most important aspect of software development is the identification, isolation and structuring of the problem that needs to be solved. To be able to do this, programmers need certain cognitive abilities that are not attainable through training. One measure of cognitive abilities (which may not be perfectly aligned with the abilities needed for software development) is the IQ. It is well established that one can only improve one's IQ in relatively tight margins. If everyone could be trained to be good at anything, then clearly a narrow test like an IQ test should not be virtually impossible to master for most people. Instead of postulating that everyone can learn to code, which is a comparatively complex skill, maybe show that everyone can learn to have a Mensa-level IQ.

    25. Re: Measurements by Anonymous Coward · · Score: 0

      That's bullshit. When the code reviewers are inferior, every criticism delivered by them is borne of either stupidity or malice. I will absolutely take it personally if my productivity is ripped to shreds by their meddling.

    26. Re:Measurements by Anonymous Coward · · Score: 0

      I've always found it to be the exact opposite:

      * Startups who want the best programmers to build their awesome new idea but aren't willing to pay so just hire a bunch of hipsters who know and inevitably fail

      * The middle ground- companies who are doing okay, they pay average salaries regardless of whether you're shit or awesome

      * The big companies that pay silly money, also regardless of competence

      I'm sure what you say is true of some startups, that have been given silly money by investors and have no idea what else to spend it on, but by and large startups are a big cash risk for a developer. You're normally taking a low wage in the hope of a high pay off if it gets big because you'll be one of the first in in a rapidly growing company if it succeeds. The problem is, most startups still fail, so you end up with low salary and redundancy.

      I've lost count of the number of startups I've turned down because their salary offerings have been laughable and their benefits non-existent coupled with the high risk of outright company failure.

      I prefer to stick with the big guys- job security, higher pay, and awesome benefits even if it is frustrating knowing some people around you are paid way beyond their worth.

    27. Re:Measurements by phantomfive · · Score: 1

      Are there any examples of other skills where the distribution is bi-modal?

      Good question. Maybe something where you have to get into a guild to be really good, and if you don't get in, you're going to be one of the lesser group.

      Something like accountants.....there are the guys who make it to CPA; anyone can do it, but it's a lot of effort, and getting half-way there doesn't count for much. So there is one group of CPAs who are really good, and all the non-CPAs are just expendable or something.

      --
      "First they came for the slanderers and i said nothing."
    28. Re:Measurements by Anonymous Coward · · Score: 0

      Uncorrelated is a word you're missing in there. Now, can you really make the 'uncorrelated' assumption at face value? Is the ability to write uncorrelated with the ability to read?

    29. Re:Measurements by drinkypoo · · Score: 1

      Further, he's perpetrating the myth that the most talented programmers "drive away others, but you have to put up with them", which falls outside the definition of "talented" that most people would accept.

      It would? Since when? The common definition is "having talent or special ability; gifted." which is in no way contradicted by a special snowflake who rubs people the wrong way.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    30. Re:Measurements by tompaulco · · Score: 3, Interesting

      I've lost count of the number of startups I've turned down because their salary offerings have been laughable and their benefits non-existent coupled with the high risk of outright company failure.

      Yeah, I learned my lesson with startups as well. I was getting underpaid by about 33% according to industry average. They considered me to be overpaid because they could get brand new people fresh out of college for about half what I was getting paid who were able to do about 1/4 as much work with lots of handholding and rewriting. But I digress. They kept going on about how I was going to get shares in the company and get a big payoff when we sold. However, after years of coding, when I finally got everything done, they let me go.
      So from now on, I am no longer going to be a source of credit dollars for employers. Cash up front only. If you want to give me shares, that is fine. But I also want industry standard wages.

      --
      If you are not allowed to question your government then the government has answered your question.
    31. Re: Measurements by Anonymous Coward · · Score: 0

      Yep. I'm not saying I'm a 10x programmer but I am certainly one of the most productive on the team. But I recently found out we were paid similarly, and I'm pretty sure I've missed out on promotions for being too good of a programmer.

      I imagine if someone is a 10x programmer, the company loves you because they are not paying you 10x the other programmers' salary.

    32. Re:Measurements by tlhIngan · · Score: 1

      Defining programming ability is a real challenge and the definition probably varies based on what is being programmed. I had a teacher who defined it as being able to complete a task in as few lines of code as possible. OTOH, is it worth spending 2x the hours to get rid of 2 lines of code when a quicker solution works just fine?

      And that is the crux.

      Lines of code is already a poor measure since you can take a few lines and turn them into one giant compound un-analyziable hard-to-debug line, or leave them in several lines and save yourself a lot of trouble in a month's time when it comes to revisit the code and be able to pick it up far quicker.

      I mean, if we take bubble sort, and inside it's core is a routine to swap two variables. (Well, I guess most sorts have this property). You could save yourself a line of code by not declaring a temporary variable and just do manipulations on the two variables you have to swap them. But is this better than using a temporary variable and using a bog standard, trivially analyzable and idiomatic method to swap the variables?.

      Similarly, there are "clever" ways of doing things that may rank higher up on the "skill" level, but make it a PITA to analyze later on when you're either debugging some future issue or just trying to figure out what you wrote a month or more ago.

      So yeah, measurement is hard. Is someone who takes the easier route but writes easier to analyze code less skilled than someone that could write the code in the fewest lines possible, but the lines are horrendously complex and difficult to analyze or debug? The code is clever, fast, and does work...

    33. Re:Measurements by Anonymous Coward · · Score: 0

      Pretty much this. Brilliant minds can see the bi-modal distribution quite clearly. It is very similar to car driving ability: everyone driving slower than me is a pussy, and everyone driving faster than me is a lunatic.

      If you're better than me: you must be a god, and if you're even slightly worse then you're unworthy of being allowed to use a keyboard.

      Self-deprecating Narcissism: because when dealing with NPD you either learn a sense of humor about your perceptive filters/delusions or you go crazy with narcissistic rage. Black and white thinking FTW.

    34. Re: Measurements by Anonymous Coward · · Score: 0

      Or lawyers. Passing the bar exam. Anyone can do it with enough study time with the materials

    35. Re:Measurements by lgw · · Score: 1

      Oh, what's the "talent" of a software developer then? It's shipping working software as a team. Banging out code isn't the majority of the job.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    36. Re:Measurements by drinkypoo · · Score: 1

      Oh, what's the "talent" of a software developer then? It's shipping working software as a team.

      Developer, programmer, and engineer all have their own meanings, and cannot be used interchangeably.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    37. Re: Measurements by tompaulco · · Score: 1

      I've been in the same position countless times. They can't promote you because it would leave an unfillable void. Yet, they can't pay you more because HR has read Harrison Bergeron or Communist Manifesto or some such thing that says that everybody should be paid within a few percent of each other. Also, corporate policy doesn't allow hiring somebody to train up to replace you because they can only hire somebody if you can prove that there is too much work for the team to do now or if somebody recently quit or got fired.

      --
      If you are not allowed to question your government then the government has answered your question.
    38. Re:Measurements by lgw · · Score: 1

      So which one is a "software development engineer"? It's all the same job, modulo seniority. Banging out code is the core of it, to be sure, but it's not what most of us spend our time doing, unless you throw in "design" and "testing" into "programming" - which is fine, but then we're back into people skills being part of it.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    39. Re:Measurements by drinkypoo · · Score: 1

      So which one is a "software development engineer"?

      That depends on the country, and whether engineer means anything there.

      Banging out code is the core of it, to be sure, but it's not what most of us spend our time doing, unless you throw in "design" and "testing" into "programming" - which is fine, but then we're back into people skills being part of it.

      Right, but we've all worked for places that had people who made other people want to leave, but that you couldn't fire because they were indispensable because of their brilliance. It's not a good plan, but it is a common one.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    40. Re:Measurements by mr_mischief · · Score: 1

      As a hybrid solution, take shares quarterly along with your pay, and no BS about having to stay there through a layoff to get them vested.

    41. Re:Measurements by Anonymous Coward · · Score: 0

      Passion is not related to skill. Too many people make that mistake.

    42. Re:Measurements by sjames · · Score: 1

      I think the answer is in there somewhere. At one time, the answer to your question was YES! 1000 times YES! Those two lines make the difference between the program fitting in memory and completing by the deadline and failure. At that time, the bar to successful programming was much higher than now. There may have been merely average programmers but their programs didn't fit into RAM. Besides that, the machines were very expensive and so was runtime on them. Much too expensive to burn on a merely average program.

  7. similar industries by Anonymous Coward · · Score: 0

    I've worked in many places, but this description also aptly describes clinical/ adjunct faculty vs. tenure-track/ tenured professors. It's pretty nasty in higher ed when the perception is a liberal bastion of socialist shangri-la.

    I can't wait to get out of higher ed. Bunch of insecure assholes.

  8. Not Mutually Exclusive by ohnocitizen · · Score: 4, Interesting

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Lost me here. Programming can definitely be a passion, and it can also be a talent. One might have a natural aptitude at programming. That doesn't mean one cannot learn the skill of programming, or that someone who finds it difficult in the beginning will not become an expert.

    In my career I've noticed that there are developers who are brilliant, and developers who struggle. The ones who struggle can succeed through mentoring and training.

    There are also developers who are kind and have great social skills, as well as those who do not. This is true of any employee at a company, including managers. Social skills can also be a passion, a talent, and a skill. That is also something that can be improved through mentoring and training.

    The primary reasons we don't see this happen for social skills are office politics and the false view that personalities and behaviors are fixed.

    If you are reading this and your programming skills or social skills are lacking - invest in yourself and work on them. It will pay off handsomely.

    1. Re:Not Mutually Exclusive by bluefoxlucid · · Score: 1

      There is no such thing as talent; there *is* such a thing as motivation, fueled by deep interest, often called passion, which leads a person to perceive vastly lowered effort in developing a skill, and thus put more time and energy into it, developing it further. Geniuses have piles of cognitive techniques--they learn to use the brain as a tool in the same way a woodworker learns to use a router to cut intricate joints and designs for carpentry--one of which includes dissecting and examining any topic to associate it with some goal they find *extremely* interesting, thus creating this motivation, eliminating the effort involved in learning anything.

      Nobody has in-born talent. People are exposed to environment; if you give your kid watercolors as a tiny, tiny child and praise them for their artwork, they will feel important because of their painting ability, and will base their self-worth on visual and graphic art. Their whole life's motivation will be art, and they'll paint and draw and do all kinds of things, and develop incredible skills, and be said to be some kind of savant-level virtuoso with God-given talent implanted at birth.

    2. Re:Not Mutually Exclusive by jittles · · Score: 1

      Lost me here. Programming can definitely be a passion, and it can also be a talent. One might have a natural aptitude at programming. That doesn't mean one cannot learn the skill of programming, or that someone who finds it difficult in the beginning will not become an expert.

      When non-technical people try to tell me that I must be a genius to be able to program, I always tell them that anyone can learn to write software. I do believe that certain mindsets are able to grasp the material and apply it better, but that does not prevent someone without that mindset from learning to program well. It's all just logic and some people grasp logic better than others.

    3. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      Of course there exists talent.
      Everyone's brain is wired differently, physics are different as well.

      I for example have dyslexia, which most people know as that you can't read/write well, actually it means that you have difficulty in storing disconnected information, such as arbitrary rules of a language, lists of phone numbers, any other kind of list.

      My brain over compensates on the other side, I can see structure and store structured information very well, also my spatial processing is heightened.

      I like writing stories, I even wrote a movie script, I wrote for my job. I am really passionate about it.
      However I am a better programmer.

    4. Re:Not Mutually Exclusive by drinkypoo · · Score: 1

      There is no such thing as talent;

      That is a lot of shit. We've actually discovered that your activities change your DNA, and that this can be handed down to your offspring. Keep up.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      You're dead wrong. The word talent is in the dictionary for a reason. Some people have a natural aptitude for certain skills. That's not to say motivation + passion doesn't equal success! It just means some minds have an advantage or learn a skill a bit faster to start.

    6. Re:Not Mutually Exclusive by king+neckbeard · · Score: 1

      What about someone who understands something easily without having interest in it? There are tasks that I can perform at a high level with little training that I don't care about at all.

      --
      This is my signature. There are many like it, but this one is mine.
    7. Re:Not Mutually Exclusive by bluefoxlucid · · Score: 1

      Modern cognitive science and genetic science both say there's no such thing as innate talent, in the same way that science says faith healing is a crock of shit.

    8. Re:Not Mutually Exclusive by bluefoxlucid · · Score: 1

      How much of those tasks are familiar to you because of their similarity to other things you're already familiar with? How much f(c) do you have to back up all that shit? Are you claiming that something utterly alien and highly complex can be learned immediately with no effort, or just that a new task recognizable and understandable using your existing knowledge is also easy to understand?

    9. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      Very progressive of you.

      http://www.scientificamerican.com/article/muscles-genes-cheats-2012-olympics-london/
      http://en.wikipedia.org/wiki/Heritability_of_IQ
      http://www.newscientist.com/article/dn17474-artistic-tendencies-linked-to-schizophrenia-gene.html

      Claiming that we're all god's children born with equal opportunity is a popular opinion to espouse because it's empowering and plays in to people's "just-world fallacies" and desire to live in a meritocracy.

      I have failed upwards my entire life because of a heuristic where people are always looking to acquire something valuable at a discount because of some perceived trivial blemish which can be polished out.

      IE. Everyone wants to play Robin Williams to some Will Hunting troubled genius to where they can leverage their common sense and street smarts to guide some babe in the woods out of trouble and in to the success. That is, the success they believe they would have achieved had they been born with talent(which you pretend does not exist). Living vicariously through the fuck-up is an opportunity to potentially leave their mark on an otherwise immutable world by leveraging a force-multiplier.

      Outcome: some students become buckets of investment and caring which feed on their own success, while other students are left to the wolves as bad ROI time investments.
      http://education.jhu.edu/PD/newhorizons/Transforming%20Education/Articles/How%20Teacher%20Thinking%20Shapes%20Education/
      IE. Exponential differentiation in advantage/privilege. Good students drift up, bad students are dragged to graduation as limp corpses. Sounds pretty bi-modal to me.

      Claiming that all buckets are equally full and denying that some buckets leak worse than others is merely an attempt by progressives to achieve equitable outcomes as measured by a normal distribution using self-deception to compensate for and mitigate their perceptive biases.

      Teach your kids to resemble a very large bucket and people will line up around the block to pay tribute regardless of how insufferable the packaging. So sad for the poor kids who resembled a negative stereotype a little too closely! Very profitable for the ones who resembled a positive one though.

    10. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      I think you left intelligence out of your list of traits that produce talent. In programmer recruitment, general intelligence assessment is actually a pretty good indicator of future employee capability, even when attempts to assess programmer skill often fail.

      And, this may be anecdotal but I have known too many outliers to think that motivation to task and intelligence are correlated. I've known very positive, motivated, hard-working folks who hit the limit of what they can comprehend and fail to solve problems that others would find easy. I've known intelligent, insightful freaks who can quickly tear apart problems in new (to them) domains but who have very poor work ethic.

      At a meta level, I actually think that social feedback is another kind of motivation that helps shape people. We develop our abilities well enough to fit in, and then there can actually be a negative pressure not to excel too far past our peers, for fear of having none left. In fact, I'd say it is quite common to see someone relying on one or the other innate capacity while functioning in the middle of the pack. It is a truly rare combination to see someone with both intellect and motivation in full flower.

    11. Re:Not Mutually Exclusive by king+neckbeard · · Score: 1

      Are you claiming that something utterly alien and highly complex can be learned immediately with no effort,

      I am claiming that this is more or less the case on occasion. The extreme version of this would be having actual savant-level skills. I do have autism, and have on occasion demonstrated exceptional memory regarding certain things, and sometimes manage to understand systems with very little effort. Some things that are easy for others are very difficult for me. Some things that are easy for me are very difficult for me. Which category something falls into isn't heavily dependent upon whether or not I find something interesting. In the neurotypical population, you almost certainly have similar things, just typically a lot less to the extremes. That would seem to fit well within the definition of talent.

      --
      This is my signature. There are many like it, but this one is mine.
    12. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      Maybe you just haven't found your talent? The idea that there is no such thing as in-born talent is as hilarious as it is ignorant. Do you have even a little evidence that this is true? Because there is definitely evidence it isn't.

      Anecdotally, I have had an immensely difficult time finding motivation to program since my Bachelor's ended, I have had little time or motivation to learn programming knowledge (languages, tools, highly specialized techniques), yet I have a very easy time learning those techniques and programming far faster and more effectively than any peer I've known (ex: in my undergrad program). Meanwhile, numerous people who tried much harder and were far more motivated consistently did worse than me.

      Also, there's, you, the actual research. I think maybe you just haven't found your personal set of talents. Sorry about that.

    13. Re:Not Mutually Exclusive by Anonymous Coward · · Score: 0

      > The primary reasons we don't see this happen for social skills are office politics and the false view that personalities and behaviors are fixed.

      You got me interested with this statement. How can someone nudge an abrasive, negative coworker to be a little more positive? Or get a coworker to communicate more? (One who rarely responds to direct email questions and skips even the once-a-week 1-on-1 meeting you're supposed to have with them.)

  9. No one wants this by phantomfive · · Score: 3, Insightful

    "In our industry, we recast the talent myth as "the myth of the brilliant asshole", says Jacob Kaplan-Moss. "This is the "10x programmer" who is so good at his job that people have to work with him even though his behavior is toxic.

    This is swinging at a strawman. A person can be a 'brilliant' "10x programmer' without being an asshole. A person can also be a -10x programmer while being an asshole.

    Also, if a programmer can't work well with other programmers, she's not a 10x programmer, she's just a fast typist. Any software that is unmaintainable by others isn't good code.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:No one wants this by Anonymous Coward · · Score: 0

      I completely agree with your first point of +/-10x programmers not necessarily being assholes, but your second point falls a little flat.

      "Not working well with others" does not mean their code is unmaintainable. It could be brilliant code and highly maintainable... and it could also be littered with comments like "If you don't understand this, you're an idiot." Or they could just say that to your face. Or they could smell like they've walked through the Bog of Eternal Stench to ensure that no one talks to them.

      Not working well with others does not translate to bad code. The idea of being a 10x developer is that one developer can produce 10 times as much as a normal developer at the same quality; not just that they produce 10 times as much code.

    2. Re:No one wants this by jythie · · Score: 1

      Thing is, being a '10x programmer' is more about image than objective ability. Given the strength of the 'brilliant asshole' myth, it is one of the major images one can adopt to help convince people that they are brilliant, and they will often get reenforcement out of it since people buy into it.

      You also forget that in many people's eyes, 'normal' programmers not being able to maintain a 'brilliant' one's code is their failing, not the superstar.

    3. Re:No one wants this by PRMan · · Score: 1

      A 10x developer produces 1/10 the code and it still works and is easier to read and maintain and runs faster. It's these multigigabyte codebases (for a 100-page website) we have these days that are written by untalented people.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    4. Re:No one wants this by SQLGuru · · Score: 4, Interesting

      I think anyone who is a 10x programmer (which I consider myself to be) should be interested in bringing as many people as possible up to their level. Who wants to be LeBron James playing pick-up basketball in the rec league when they could be LeBron James playing in the NBA championships? When you are so much further ahead of everyone around you, people can't fully appreciate how great you really are.....but if you are surrounded by stars and yet still shine far above all of them, you look that much more awesome. It's one of the reasons that I spend time with the noobs mentoring them.......also, if I mentor them, they'll be more apt to do things my way.

    5. Re:No one wants this by tnk1 · · Score: 1

      That bloat has more to do with poor project management and deadlines, not to mention the lack of interest in returning to bloated code and refactoring it after the fact. Skill can affect this, but if you're relying on individual skill to reduce bloat, you're doing it wrong.

    6. Re:No one wants this by Anonymous Coward · · Score: 0

      I find myself most productive when working with someone of a similar skill level. Too far behind and I spend time teaching them everything, too far ahead and I feel less than useless.

    7. Re:No one wants this by phantomfive · · Score: 1

      Hmmmm, so......writing maintainable code requires that the code is readable. If you can't understand how other people see things, then I don't think you can write good code. Maybe I'm wrong, though.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:No one wants this by phantomfive · · Score: 1

      That bloat has more to do with poor project management and deadlines,

      Not likely. A skilled programmer will get it done faster and the code will be higher quality and less bloated. (If you're having trouble with this, when you do your estimates, add a little extra time for cleaning things up when you're done).

      --
      "First they came for the slanderers and i said nothing."
    9. Re: No one wants this by Anonymous Coward · · Score: 0

      There's a problem with how "can't work with others" is defined. If I write "i++;" and another programmer is lost and complains until a "standard" prohibits everything they don't understand (and won't try to either), who really "can't work with other programmers?" The rockstar/monster or the dope?

    10. Re:No one wants this by Beetle+B. · · Score: 2

      When you are so much further ahead of everyone around you, people can't fully appreciate how great you really are.....but if you are surrounded by stars and yet still shine far above all of them, you look that much more awesome. It's one of the reasons that I spend time with the noobs mentoring them.......also, if I mentor them, they'll be more apt to do things my way.

      See this above?

      This is an example of an asshole programmer.

      --
      Beetle B.
    11. Re: No one wants this by Anonymous Coward · · Score: 0

      It would be great if mediocre programmers didn't put up such resistance but that's just not always the case. It's beyond frustrating to have enough experience to know the solution yet be dragged through the mud of other peoples' guesses. When they tire of that, these walking bug factories cook up "standards" that are practically designed to ruin current working code and prevent future working code. Speak up at any point and get labeled as "arrogant" because they're more interested in oppressing others than learning anything.

    12. Re:No one wants this by tompaulco · · Score: 1

      It sucks being the best at something in your company because then you can't learn anything. I would prefer to be the second worst person there, so I can still have somebody else who sucks worse than me. That being said, most companies hire lots of sucky people, so I end up being the top dog and have to do my learning at local developer groups.

      --
      If you are not allowed to question your government then the government has answered your question.
    13. Re:No one wants this by tompaulco · · Score: 1

      Given the strength of the 'brilliant asshole' myth, it is one of the major images one can adopt to help convince people that they are brilliant, and they will often get reenforcement out of it since people buy into it.

      Our head IT guy at my previous company was the "Brilliant asshole" type. He knew a lot and he was a jerk and condescending to others. Then he left for a better job and brought in his protege. Unfortunately, he had only taught his protege the asshole part and not the brilliant part. Basically, he would get facts wrong but say them with plenty of confidence so that people (and management) believed him. Whenever I needed something fixed, I discovered I was able to google the answer just as quickly or more quickly than the IT "genius".

      --
      If you are not allowed to question your government then the government has answered your question.
    14. Re:No one wants this by tnk1 · · Score: 1

      True, but that's almost by definition. A skilled coder is one who does those things.

      However, even a skilled coder has limits. I'm constantly aware of scenarios where the deadlines shift, or more frequently, the amount of time that the coders have is smaller than expected, because they are called in to do support work on a previous version. You still have the same deadline, but someone just took up a significant portion of your development time doing something unrelated.

      In those scenarios, even a highly skilled individual needs actual time to get things done. And I find that the top level coders are the ones most likely to be brought in to fix things, unless it can be helped.

    15. Re:No one wants this by phantomfive · · Score: 1

      That is the skill of time management (or self-project management). These are the rules:

      1) If you make the estimate yourself, then work hard to meet it. If someone else sets the estimate for you, then you have no obligation to meet it.
      2) If someone asks you to do other work, then tell the owner of the original work that it will be late (or decline the other work).

      Part of being professional is learning when to tell people 'no.' The solution to the problem is never "write bad code." If that is your answer, then you're wrong.

      --
      "First they came for the slanderers and i said nothing."
    16. Re:No one wants this by SQLGuru · · Score: 1

      There's always plenty to learn......computers are a very broad subject. You may know most in your small little corner, but you can always take on projects that stretch you.......

    17. Re:No one wants this by Anonymous Coward · · Score: 0

      ... but they wrote it for very very cheap.

    18. Re:No one wants this by Anonymous Coward · · Score: 0

      "...she's just a fast typist" - why the switch to the female pronoun??? Subtle bias my friend, subtle bias!

  10. One by gatkinso · · Score: 1

    The moment he or she drives someone away, fire them.

    --
    I am very small, utmostly microscopic.
    1. Re:One by jythie · · Score: 1

      If only it worked that way. I have worked with programmers who drive others away, crow, in my exit interview at my last company I specifically referenced another programmers for why I was leaving, and I was not even alone in this! But he was a '10x programmer' and was 'too valuable' to fire. Last I heard he was moving up the ladder because he has 'proven himself as a lead'. I can also recall a manager I had who, within the first month of him being brought in had 20% of his developers quit, referencing him as WHY they were quitting. But he was a superstar, and last I checked he is now the CEO of the company, with 95% of the staff gone (and down to 1 or 2 developers), and he is credited with keeping the company afloat.

      So yeah, in a conflict between a favored son and 'regular' developers, companies will bend over backwards to find reasons to not drop the problem maker. It is always a failing in the person who makes less money.

    2. Re:One by BVis · · Score: 2

      I can also recall a manager I had who, within the first month of him being brought in had 20% of his developers quit, referencing him as WHY they were quitting.

      This is a win for management. The other 80% of developers that DIDN'T quit will have to do the work of the 20% who have left. That manager just saved the company approximately 20% on programmers' salary (assuming that those developers got paid roughly the same.) Since reducing costs is good for the profits, this manager will not be fired.

      But he was a superstar, and last I checked he is now the CEO of the company, with 95% of the staff gone (and down to 1 or 2 developers), and he is credited with keeping the company afloat.

      Sure, he saved 95% off salaries. It's easy to keep a company afloat when you don't worry about working people to death.

      --
      Never underestimate the power of stupid people in large groups.
    3. Re:One by Jeremi · · Score: 1

      But he was a superstar, and last I checked he is now the CEO of the company, with 95% of the staff gone (and down to 1 or 2 developers), and he is credited with keeping the company afloat.

      That's an ingenious way to accomplish layoffs without having to pay for any severance packages...

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  11. Answer by VorpalRodent · · Score: 1

    Assuming his designation is accurate...nine?

    --
    Take it to the limit, everybody to the limit, come on, everybody fhqwhgads.
  12. You still need creativity. by ThePhilips · · Score: 4, Insightful

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Why people forget the creative side of programming?

    The programming is indeed bunch of skills. But if you do not have right mind set - inquisitive and creative - your career in programming would be full of frustration.

    The only software where one doesn't really need any creativity - is already written and there is literally no work there.

    P.S. Of course there is the "flip side" to the creative side of the programming - "monkey" coding and testing. But for most of this work you do not even need to have any deep programming skills. Reading and comprehending documentation fully (an ability which is again easily forgotten by the sensational headline writers) is more useful and also much under-appreciated. And then there is also the writing of tech documentation...

    --
    All hope abandon ye who enter here.
    1. Re:You still need creativity. by Anonymous Coward · · Score: 1

      Assuming there's no "passion", "talent" or whatever secret sauce in programming, why won't he go and write a program doing the programming for him? Oh yeah, that would require the aforementioned things.. and it would be programming.

      Check! Mate! MUHAHAHAHA!

      err, i think i should be going back coding now...

    2. Re:You still need creativity. by Mattatron · · Score: 1

      The only software where one doesn't really need any creativity - is already written and there is literally no work there...

      if you believe that code software that's already written doesn't need to ever be touched again, you don't know jack about programming.

    3. Re:You still need creativity. by ThePhilips · · Score: 2

      I have worked ~5 years in maintenance and have intentionally omitted it.

      In maintenance, for it to be any effective, the problem is even worse: you have to be twice as creative, to find solutions which do not have side-effects yet fit the original specification/requirements.

      I have seen many results of maintenance done by the "generic" outsourced stuff and on average they were not spectacular, and occasionally they were outright disastrous.

      --
      All hope abandon ye who enter here.
  13. make programming less intimidating for newcomers by Anonymous Coward · · Score: 0

    What's that supposed to do for me? For the business it'll lead to a crop of cheap new hires, but surely you don't expect working programmers to encourage that

  14. Dunno about that, I still suck at programming. by nefus · · Score: 1

    I can't speak to the validity of the articles claims. But I do know that even though I suck at programming, I still keep trying. Luckily some people are patient enough to help me out and they are awesome for doing so.

    1. Re:Dunno about that, I still suck at programming. by RabidReindeer · · Score: 1

      There is plenty of room for people who suck at programming.

      Otherwise the country wouldn't be overrun with low-budget H1-Bs.

    2. Re:Dunno about that, I still suck at programming. by phantomfive · · Score: 2
      Don't worry too much. Alan Kay said:

      "I feel like my answers are quite trivial since nobody really knows how to design a good language, including me."

      Similarly, no one really knows how to do programming really well. Some are better than others, but we're all feeling our way through the unknown early days of software programming. In 100 years, who knows what programming will look like?

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Dunno about that, I still suck at programming. by Flavianoep · · Score: 1

      Are you sure you suck? Perhaps, aren't you just okay?

      --
      Linux is for people who don't mind RTFM.
    4. Re:Dunno about that, I still suck at programming. by Xest · · Score: 3, Insightful

      The fact you think you suck already means you have drastically higher potential than a large number (perhaps even a majority) of developers

      Far better to think you suck and know that you can improve than to think you're awesome and stay shit forever.

      Humility is the number one most important defining trait shared by the world's genuinely great developers. I've met plenty of developers who think they're great, claim they're great, but repeatedly prove their development ignorance when they start talking about the subject. In contrast, I've never met a humble programmer that isn't either awesome, or well on their way to being awesome.

  15. Effort by __aabppq7737 · · Score: 1

    and will-power mean a lot.

  16. Hmmm ... by gstoddart · · Score: 4, Insightful

    Now, I don't have stats to back this up ... but many moons ago I was told by numerous profs that programming/CS had pretty much always been the bi-modal distribution, and one of them even showed me the graphs of previous years of first year programming courses to back it up.

    I have seen an academic paper discussing the bi-modal distribution.

    So, is he saying "among people who are programmers there isn't a bi-modal distribution", or is he saying "among people learning to program there isn't a bi-modal distribution"?

    Essentially he has no statistics to back his claims, and seems to be saying that "among people who are already programmers there's all kinds" -- which is FAR different from refuting the observation in academia that people learning programming are most definitely showing a bi-modal distribution.

    This sounds like he's talking from his 'feels' instead of from his 'facts'.

    --
    Lost at C:>. Found at C.
    1. Re:Hmmm ... by avandesande · · Score: 2

      Anecdotally I haven't seen this- the best teams have one or two star people and the rest with good work ethic and personality.

      --
      love is just extroverted narcissism
    2. Re: Hmmm ... by Anonymous Coward · · Score: 1

      He is saying he wishes it was not so. Social justice. Equal opportunity for all irregardless of innate talent or motivation.

      The corporate mindset, where all workers are plug-in units, and the value is contained in a batch of process documents in a file cabinet.

      That same stuff you'd expect to see promoted on a website run by an outfit like Dice.

    3. Re:Hmmm ... by gstoddart · · Score: 1

      Right, but then we're back to "among the group of people who are already programmers" ... which in no way refutes the oft-cited observation that among people learning to program there's a very distinct double-tassel distribution.

      Within the group of people already called programmers, yes, there's going to be variation -- I've certainly known a few who crank out reams of code, which can sometimes make for a good prototype, but which often had to be completely scrapped to turn it into releasable code.

      But I've also known a couple who barely seemed to know how to do anything and did everything as if they'd just looked it up in a first year programming book (or from the internet).

      I honestly can't tell you how those people turned out in the long run, because we didn't those ones around long enough. They'd bluffed their way past the person interviewing them, but by the time they were on the job, their technical skills just weren't there.

      It just seems like he's refuting the idea of a bi-modal distribution by only talking about people who are already programmers, instead of the general population -- which is an entirely different thing.

      --
      Lost at C:>. Found at C.
    4. Re:Hmmm ... by PRMan · · Score: 1

      This sounds like he's talking from his 'feels' instead of from his 'facts'.

      What else would you expect these days? People love to spout off without doing any research. It's a favorite pasttime of the era.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    5. Re:Hmmm ... by narcc · · Score: 1

      which in no way refutes the oft-cited observation that among people learning to program there's a very distinct double-tassel distribution.

      Which is also nonsense, as I've argued countless times. From what I can tell, the only people who believe it have no other skills and are terrified that if the truth were known (that anyone can learn to program) then they'd no longer be special.

    6. Re:Hmmm ... by Anonymous Coward · · Score: 0

      Another pastime is turning on the spell-checker, and that's a fact.

    7. Re:Hmmm ... by Anonymous Coward · · Score: 0

      Anecdotally I haven't seen this- the best teams have one or two star people and the rest with good work ethic and personality.

      The lower performing hump doesn't stay in the industry. Everyone left of some X in this graph:
          o x
        oo xx
      ooo_xxx___y

      isn't a programmer at all. Think of height in the NBA. Sure, Spud Webb(?) managed to play, but how many guys are there under 6' playing as a starter? The people who can't figure out there is a SUM formula in Excel aren't applying for computer programming jobs specifically.

    8. Re:Hmmm ... by mr_mischief · · Score: 1

      This sounds an awful lot like one part of the group has been promoted to this level of schooling without strong fundamentals important to CS. There's little reason to believe there are people who just "get it" vs. people who don't. There's plenty of reason to believe that some of them have a background that prepared them to understand the material while some haven't.

    9. Re:Hmmm ... by gstoddart · · Score: 2

      From what I can tell, the only people who believe it have no other skills and are terrified that if the truth were known (that anyone can learn to program) then they'd no longer be special.

      Well, then let's dispel with that piece of bullshit, shall we?

      When I say "but many moons ago I was told by numerous profs that programming/CS had pretty much always been the bi-modal distribution" ... I mean tenured professors, with PhD's, with published books and actively teaching in accredited universities. Not just "I heard it from a guy".

      You seem to be comfortable suggesting I feel my penis will be larger if I convince myself this is a true fact. Allow me to suggest this: You're acting like a dick and making an ad-hominem attack -- a sign of a moron or an asshole; or both.

      I'm telling you what I've heard from professors, and what I've personally seen.

      I marked both first and second year CS courses, I have personally seen graphs of the same course's grades for a trailing decade. And it was empirically a real thing.

      I honestly have no idea the extent to which this is universally applicable, isolated, or purely random. But I have had it described to me by professors, I have seen it in courses I've marked, and been hearing this 'factoid' for ... well, almost three decades.

      This doesn't come out of nowhere. It isn't a self inflating of ego. It is, in my own personal and exceedingly constrained opinion, an actual observation of reality. It is a thing, and I am curious as to what it really means.

      If you think I have my personal identity wrapped up in being some special little snowflake who is unique as a programmer (something I no longer do, BTW)... well, either you're a moron, or you're just an ass who has no better reasoning skills than to fall back on the claims that I must be delusional and acting out of self interest in saying this.

      I am genuinely curious if this is true, and would love to see definitive stats ... it has always baffled me, but I've witnessed it ... but if you think I'm saying this out of some mechanism of puffing myself up, then you can piss off.

      But if you can state your counterargument without suggesting I need to justify my existence to you or anybody else, I might actually be interested in hearing evidence to the contrary.

      --
      Lost at C:>. Found at C.
    10. Re:Hmmm ... by bill_mcgonigle · · Score: 1

      Essentially he has no statistics to back his claims

      I don't think you need statistics in a world where Java rules as a primary language for software development.

      I've said here for years that Java is a great language for the 80% of average programmers because it tells you what's wrong most of the time, makes you do things right, and generally doesn't fall down unpredictably (J2EE FactoryFactoryFactories might be a different issue).

      The top 10% can argue viscously about whether Python or Ruby or Haskell is the One True Language (shut up, LISP fanatics) - but in the meantime millions of developers are cranking out order inventory code in Java.

      The top 1% of developers can deftly move back and forth among all of these, to suit the task.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  17. Of course it's a myth! by jvj24601 · · Score: 3, Insightful

    This is perpetuated by a small percentage of vocal but talented programmers who, in fact, lack the skill to work with people whom them don't think are as brilliant as they are. This probably works fine in a startup. However, if you don't ever learn to work with people of varying skill-sets, you severely limit the types of jobs you can get later in your career.

  18. Wrong things by fractalus · · Score: 3, Informative

    1. Programming skill is more likely to have a power law distribution rather than a normal distribution. That is, lots of very unskilled people, a chunk of decently-skilled people, and a handful of "rock stars." This would more closely match the distributions (and success rates) of other skills. This also matches my experience working with programmers of varying skill levels for more than twenty years.

    2. You can teach a lot of the concepts but there is an inherent knack for logical thinking that is very hard to teach. If one has this knack, new concepts are easily grasped, solutions to problems using currently-known tools are more easily found, and troubleshooting is simpler. If one DOESN'T have the knack, they can still be successful, but it is harder, requires substantially more effort, and more of their time will be taken at each step.

    It's not always pobox where someone sits on the talent distribution. This is also not a perfect predictor of their ability to produce; some people are very bright but unmotivated and unmotivatable. I would rather have someone with Leeds talent who was willing to work and produce. It's also important for a team to code to roughly the same competence level; if you have one rock star who writes code that no one else understand, you create a bottleneck for yourself on that one person being able to work with that code.

    --
    People are never as simple as their stereotypes. This applies equally to Christians, Muslims, and Emacs-lovers.
  19. Programmer worth/productivity vary a lot. by CraigCruden · · Score: 4, Insightful

    When you work in a manufacturing plant making cars (for example), a productive worker if allowed to produce is about twice that of a poor producer.... When it comes to programmers/coders the quality and productivity of your upper end programmer can easily be 12 or more times as productive as your weak programmers. In worst case examples some programmers are actually a net negative when it comes to defects etc. The wages however tend to vary between 2 and 3 times your junior programmer (who could be a star or not himself). Some programmers are overpaid at the bottom pay scale, and some are underpaid at the top end. I have worked at some of the top companies, and some that are far far from it so I have been able to see both ends of it.

    Programming is a natural skill which can be enhanced greatly when you work in an environment that values talent and you have people that are better than you or at least near the top of their game if you are one of the gifted. I have seen University graduates that are at best average, and I have seen self taught programmers that are among the best......

    In short it is not a myth.

    1. Re:Programmer worth/productivity vary a lot. by complete+loony · · Score: 3, Insightful

      A junior programmer fresh out of Uni, joining my team. Learning a new language / framework / application, working full time. Will usually take more of my time to help them than if I just wrote the code myself. I have to explain which existing functions they should use. I still have to flesh out most of the design and implementation of the tasks they are assigned. I may need to take over their keyboard and type some of the code in for them, as the fastest way to get the point across that I'm trying to teach them. And getting their patches up to scratch can take a number of iterations.

      After about 3 months, this equation should start to shift. Even though they will still take far longer to complete a task than I would, it should take less of my time to get the same work done. At this point, the addition of someone to the team starts to pay back the initial training period. We can evaluate if this new person is still worth investing time in.

      And that's for the graduates that I'd consider hiring in the first place. Most CompSci graduates I wouldn't consider employing at all.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    2. Re:Programmer worth/productivity vary a lot. by Anonymous Coward · · Score: 0

      When you work in a manufacturing plant making cars (for example), a productive worker if allowed to produce is about twice that of a poor producer....

      When it comes to programmers/coders the quality and productivity of your upper end programmer can easily be 12 or more times as productive as your weak programmers. In worst case examples some programmers are actually a net negative when it comes to defects etc.

      I haven't worked on a manufacturing plant making cars, but I can easily imagine a bumbling idiot who would be a net negative on an assembly line. You wouldn't think of it in your stereotyped world, because you'd fire them on the spot. And there are people 12x better than average in the manufacturing world -- but they usually aren't on the assembly line, they're off doing specialized work! The name Stradivarius mean anything to you?

      Feel free to think of yourself as special and all while you look down on the rest of society for no particular reason, though.

    3. Re:Programmer worth/productivity vary a lot. by CraigCruden · · Score: 1

      A bumbling person on an assembly line eventually learns enough motor skills to come useful to a point. American automotive plant unions have typically made it difficult for the best of the workers to excel since if one excels (and stands out) then it shows up other workers which unions have an interest in protecting. My productivity numbers come from friends of mine that work in that industry. I have no friends that work for the Japanese car companies so I cannot say for certain that the productivity curve would not be more pronounced.

      As far as thinking I am special.... I would say .... above average.... special only to my mom :o (self assessment - generally speaking). When I worked at Thoughtworks in the "early days" (15 years ago).... it blew my mind that there were so many talented developers working there at that time.... and to be quite honest it reset my assessment of myself because of it.... There tend to be what I would call "blue collar" development shops, and "white collar" development shops which reflect the management of the company more than anything. Companies which value developers, and companies that just view them as resources.... "Blue collar" shops the management view it as just hiring enough monkeys to fill the work. You can end up with programmers that have the mental acuity and skills to be great developers, if given the chance, in blue collar environments..... but they tend to be more rare there because a company that does not value it are not going to attract the best in large quantities.... they will end up with people choosing to work there for other reasons (location, just getting started, etc.).

      The reason why I consider myself an above average developer is that I actually am interested in all sides of what I do. I take an interest in reading and learning from other people, learning new languages, and most importantly -- learning the industry of whatever I write software for. I don't know how many times I have run into people that have no interest in the industry they are writing programs for.... they just want to be spoon fed some specifications and then they will program to them. Unfortunately, most specifications I have seen are .... skimpy at best and sometimes a misinterpretation of what the customer wants.... when someone does not take the time to learn the industry -- they don't know what questions to ask to make sure they are actually developing what the customer really wants and not just what they said they wanted or yet worse.... a misinterpretation of what the customer said they wanted.

      People that have the mentality that they are the best and above all those that they work with -- are not likely to be the best software developers. They will get to the point where they won't listen, and if you don't listen or are not open to criticism about your work then you will not learn. Software development is a life long learning pursuit, it is not some skill where you go to school and graduate and now you're finished..... I have run into many developers that don't bother to read anything more, learn anything more .... they just churn out code the same way they did last week, last year etc.

      I have had programmers that you give them assignments, they ask questions, they ask the same questions.... but their ability to absorb seems to be limited.... 3 years later - they are still out classed by people fresh out of university.... You have people that .... for lack of a better word approach each assignment with a level of trepidation -- and fear of making mistakes tends to make people not very productive. If you are afraid of making mistakes, or are afraid of acknowledging them.... you also will not learn....

    4. Re:Programmer worth/productivity vary a lot. by Anonymous Coward · · Score: 0

      Bennett Haselton, did you change your name?

    5. Re:Programmer worth/productivity vary a lot. by Anonymous Coward · · Score: 0

      Feel free to think of yourself as special and all while you look down on the rest of society for no particular reason, though.

      Posting AC so no one can accuse me of bragging, but you couldn't be more wrong here.

      I can read Slashdot six hours a day and still outproduce (and with a better quality product) the rest of my department combined. And I am by no means a superstar (nor do I consider any of my current coworkers particularly "bad" at their jobs) - I consider myself "pretty good", but that still puts me so far to the right of the curve it's almost embarrassing.

      Why can't most people code well? Because it is really fucking hard. Simple as that. It starts by requiring an innate ability to iteratively reduce real-world problems down to atomic propositions; then you need the passion, a reason, to dedicate the time and mental space to mastering the art; and finally, it takes years of experience to get even halfway decent. If you don't have that innate ability, you will never go beyond writing "hello-world" level programs. If you don't have the passion, you'll hate every second of the learning process; experience alone, you can work on.

      Just a matter of more/better education? Please, don't make me laugh so hard. I have a formal CS education (or to phrase that more accurately, I have a CS education as a formality), and it only reinforced what I've said above. I may have lacked experience at that point, but you could spot the people with skill and passion from a mile away. Ask any CS professor about their grading curves - "U" shape? No, try a long string of underscores followed by a forward slash. That is how 90% of the class passes in the same room as the two or three who "get" it.

    6. Re:Programmer worth/productivity vary a lot. by Anonymous Coward · · Score: 0

      Yes, it is, if you're considering only "those who can."

      Once you past a certain threshold of competence, it's not just X and 10X. I've seen 2X, 3X, and everything else in between.

  20. Agree about U curve, disagree with the rest by allcoolnameswheretak · · Score: 3, Interesting

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    I disagree with this statement. I enjoy programming and I am very good at it because I enjoy it. Enjoying it means that I am interested, stay up to date and learn new things all the time. It means I do alot of programming in my spare time, which further increases my skills.
    Many developers I know do it as a job and forget programming when they leave the office. This makes a huge difference.

    But no, programming talent is not distributed along a U curve. However, I firmly believe that an average developer is 10 times more effective than a poor developer. A good developer is 10 times more effective than an average developer, and an excellent developer is 10 times more effective than a good developer.

    Maybe not exactly 10 times, but certainly by an order of magnitude.

    1. Re:Agree about U curve, disagree with the rest by PRMan · · Score: 2

      While I agree with you in principle, I don't know ANY programmer that is 1,000x faster than another. At every job I have been at, I am the fastest programmer I know. I write the least code, it runs the fastest (because it's short), and it's very easy even for a junior developer to maintain (because it's short and easy).

      When I leave a position, I am typically replaced by at least 3 programmers. And the work output goes to one-half or one-third anyway. This means, AT BEST, I am 5x-10x better than my replacements. Could someone be 10x faster than me? I haven't seen it in over 30 years, but maybe I could see 2x faster or 3x. That still puts the maximum I could imagine at about 20-30x faster than the least.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:Agree about U curve, disagree with the rest by gstoddart · · Score: 3, Informative

      Well, arguably being the fastest at writing code doesn't mean any of it is actually good.

      I once worked with a guy who could crank out massive quantities of code. It made for some pretty amazing proof-of-concept and demo stuff -- but it was utterly unusable in the real world because it was, overall, really badly written code.

      It didn't have any robustness. It made stupid architectural decisions. It made unfounded and unsupportable assumptions. It had an awful lot of hardcoded magic because he only solved one use case.

      It impressed the heck out of the VPs and the customers who said "oooh, gotta get me some of that". But in trying to turn any of it into production level code, by the time you started trying to fix the glaring holes, remove the things which just simply couldn't work in the real world, and take out some of the shortcuts and voodoo -- there was very often nothing workable left.

      This was coupled with the fact that he couldn't/wouldn't debug his own code, couldn't/wouldn't go in and make even simple modifications to it without breaking it, and had quite likely moved onto something else new and shiny and couldn't be persuaded to actually fix or maintain previous projects.

      He left a wake of crap code and demos, but almost nothing which could be used in the real world. Which means everyone around him started saying "look, if you want to use the super awesome code he wrote, go ahead, but leave me out of it unless you can get him to complete what he started and not leave us with a half-finished demo which can't be made real, we're not supporting the shit he leaves behind him".

      Everyone else considered him a nightmare, because while he was prolific and wrote cool looking things ... it was all smoke and mirrors, which covered about 2% of the functionality and 75% of the sales demo.

      I was glad when I transferred to another group and he was someone else's problem. Though, I did notice the carnage of sales people and clients who bought into the bullshit and thought they were getting something real only to find it had an awful lot of "pay no attention to the man behind the curtain".

      I hope he was a very unusual case, but he was an absolutely prolific coder, who wrote absolutely terrible code.

      --
      Lost at C:>. Found at C.
    3. Re:Agree about U curve, disagree with the rest by dbIII · · Score: 1

      While I agree with you in principle, I don't know ANY programmer that is 1,000x faster than another

      IMHO a lot of it is "here's one I prepared earlier". That can be vastly faster in bursts - sustainable though?

    4. Re:Agree about U curve, disagree with the rest by gweihir · · Score: 1

      The whole discussion about factors is wrong. A bad coder (and there are a lot of those around) has _negative_ productivity!

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Agree about U curve, disagree with the rest by allcoolnameswheretak · · Score: 1

      I chose the wording 10x more "effective", because it's not necessarily just 10x "faster", although that is what it usually boils down to in the end.
      A poor developer will write code that is buggy, doesn't scale well, with a poor interface and poor extendibility. His code will be more difficult for others to use and work with. It will in the long run be a maintenance nightmare and make the project as a whole worse and thereby affect the work of many other people and require that they also invest more time in their work. (Other developers, quality, IT support, contractors that plug into the system, etc.)

      In the end and for all the people involved, a project with 10 average developers might take 10 times longer and cost 10 times as much as if one really good guy just sat down and got the job done.

      I've seen this happen. I've seen a one-man team create a framework that is fantastic to work with, has a simple, intuitive API and just plain works, whereas a framework developed by a team of about 20 people that accomplishes essentially the same thing is terrible to work with and buggy.

      Most managers don't realize the huge productivity and efficiency gap between skilled and unskilled developers. They think firing one expensive developer in the USA/Europe and outsourcing the job to 10 developers in India* is a net win. Most of the time, it is not.
      Many unskilled developers should be considered more of a lability than an asset. You wouldn't want 10 unskilled developers working on the control systems of a 747 either, would you?

      If I had my own software company, I would have absolutely no doubts about who to hire. I would hire the best guy(s) I could find for a salary of 100 to 200k instead of getting a couple of decent guys for the same money.

      *I'm not saying all developers from India are bad. I'm sure there are also very good Indian developers. But from my personal experience most of them are not very good, in addition to the cultural/communication problems (they will almost never admit mistakes or that they didn't understand something), I found it very hard working with them.

    6. Re:Agree about U curve, disagree with the rest by goose-incarnated · · Score: 1

      Well, arguably being the fastest at writing code doesn't mean any of it is actually good.

      I once worked with a guy who could crank out massive quantities of code. It made for some pretty amazing proof-of-concept and demo stuff -- but it was utterly unusable in the real world because it was, overall, really badly written code.

      Man, that guy sure get's around doesn't he?
      (I'm pretty sure I've worked with him...)

      --
      I'm a minority race. Save your vitriol for white people.
    7. Re:Agree about U curve, disagree with the rest by Anonymous Coward · · Score: 0

      If we equate this to music I think you might understand the author's point a bit better. A person can be a very good, if not great, player of a specific musical instrument without being passionate about music. Likewise, being passionate about music doesn't mean you'll be an effective musician. There are many lines of work with talented people that aren't passionate about their line of work, they do it because they have learned it. "Programming" is not going to be any different. Believing otherwise is having a pretty biased viewpoint. There is nothing unique or special about programming that it is going to be so different from other skills.

    8. Re:Agree about U curve, disagree with the rest by Anonymous Coward · · Score: 0

      I don't believe in the 10x.

      Are you paid 10x than the worst developers? If not -- then management don't think you are worth that much to the company.
      If there were 10x people walking among us, there would be software gigs paying several times what the average programmer gets. There aren't.

  21. Biased much? by Anonymous Coward · · Score: 0

    Well gee whiz. The myth of the brilliant asshole is obviously false because there's no such thing as brilliance. But even if, just to be stupidly ridiculous, we grant that there is brilliance, then who could stand the asshole?

    I guess you're not above propagating the next myth if it might make your point.

  22. subject lines are dumb by drunk_punk · · Score: 1

    That being said... I'm sure to most young folks these days this is prefered to believing that actually working hard at something will eventually pay off.

  23. Binary, but not bimodal by SparkleMotion88 · · Score: 1

    It is very likely that programming skill (if such a thing actually exists in a measurable sense) is normally distributed. What looks like a bimodal distribution is really just an effect of current employment practices by Google/Facebook/etc. There are people who are "good enough" (measured very poorly by a job interview) to work at one of these "top" firms that pay really well, and everyone else simply isn't good enough. The difference in actual skill between a person who is "good enough" and one who is "not good enough" is very small.

  24. It is true, it is true... by 140Mandak262Jamuna · · Score: 1

    You can be just a run-of-the-mill average regular prime minister and still hack out c++ code that solves sudoku. Yeah, it is not c++ but simple c masquerading as c++, but thats what you would expect from the average regular prime minister, right?

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:It is true, it is true... by PRMan · · Score: 1

      Let's have all the prime ministers, kings, queens and presidents write a Sudoku program in c++. Oh wait, 99.9% of them couldn't do it if they had 100 years. Obama gave up after writing "moveForward(100);".

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:It is true, it is true... by Anonymous Coward · · Score: 0

      > You can be just a run-of-the-mill average regular prime minister

      Someone who was Senior Wrangler in Cambridge and graduated with first class honours in mathematics and a Diploma in Computer Science (with distinction) is *not* a run-of-the-mill average regular prime minister.

      Not to mention he's a former Brigadier General (youngest ever in the history of Singapore).

  25. Some poeple think I am genius by Flavianoep · · Score: 0

    The toxic part of the myth is not that how much of a rock star or a ninja the professional programmers are. It's about how people who can code are viewed by their peers who can't code. I am not a programmer, but I have written some programs in bashscript, and I show the code to anyone, most will think that I have the "gift", the "neck", or that my ability has something to do with the fact that I have been accept into Mensa.

    --
    Linux is for people who don't mind RTFM.
    1. Re:Some poeple think I am genius by PRMan · · Score: 3, Insightful

      or that my ability has something to do with the fact that I have been accept into Mensa

      That's a funny typo.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:Some poeple think I am genius by Anonymous Coward · · Score: 0

      FYI: Mensa means canteen in Italian.

      (What's does yours expected? These guy has living insides of an canteen!)

  26. Defense of the Article by eldavojohn · · Score: 1

    This guy doesn't know how to measure programming ability, but somehow manages to spend 3000 words writing about it.

    To be fair, you can spend a great deal of time talking about something and make progress on the issue without solving it.

    For example the current metrics are abysmal so it's worth explaining why they're abysmal. I just was able to delete several thousand lines of JavaScript from one of my projects after a data model change (through code reuse and generalization) -- yet I increased functionality. My manager was confused and thought it was a bad thing to get rid of code like that ... it was absolute dopamine bliss to me while he felt like our production was being put in reverse. KLOC is a terrible metric. But yet we still need to waste a lot of breath explaining why it's a terrible metric.

    Another reason to waste a lot of time talking about a problem without reaching an answer is to elaborate on what the known unknowns are and speculate about the unknown unknowns. Indeed, the point of this article seemed to be to advertise the existence of unknown unknowns to "recruiters, venture capitalists, and others who are actually determining who gets brought into the community."

    So he doesn't know......programmer ability might actually be a bi-modal distribution.

    Perhaps ... but that would imply that one does not transition over time from one hump to the next or if they do, it's like flipping a light switch. When I read this I assumed that he was talking only about people who know how to program and not "the average person mixed in with programmers."

    If he had collected data to support his hypothesis, then that would have been an interesting article.

    But you just said there's no way to measure this ... how could he have collected data? What data set could have satiated us? The answer is quite obvious and such collection would have been a larger fool's errand than the original article's content.

    --
    My work here is dung.
    1. Re:Defense of the Article by phantomfive · · Score: 1

      But you just said there's no way to measure this ... how could he have collected data?

      I didn't say it man, he said it. Reading comprehension!

      Perhaps ... but that would imply that one does not transition over time from one hump to the next or if they do, it's like flipping a light switch

      Interesting point. I can think of several ways that could happen. For example, I've noticed a difference between quality programmers and lousy programmers: quality programmers are always looking for ways to improve their skill.

      So there could be two groups, those who look to improve their skill, who quickly distance themselves from the group that doesn't. Of course, there will still be wide variance in skill between the members of each group.

      I'm sure you can think of other ways it could happen.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Defense of the Article by eldavojohn · · Score: 1

      So there could be two groups, those who look to improve their skill, who quickly distance themselves from the group that doesn't. Of course, there will still be wide variance in skill between the members of each group. I'm sure you can think of other ways it could happen.

      No, I can't. I started out and I sucked. I got better eventually through experience. In order for it to be truly bimodal, people have to start in either camp A or camp B and end in the same camp they started in. Because if you transition from one to another over time, any point in time will capture a group of people in between the modes. Now, you can argue that people don't spend much time in between those modes but you haven't presented any evidence for that. What's more likely is you have geocities coders on one tail and John Carmack/Linus Torvolds on the other tail. And in between are people like the presenter and I. And since I'm not instantaneously going from bad to good, the reality of the situation is most likely some degree of a normal curve filled with people trying to get better at programming or even just getting better though spending lots of time doing it and learning a little along the way.

      For all your attacks on the presenter, your argument of a bi-modal distribution sounds more flawed to me. I would love to see your study and hear your argument.

      --
      My work here is dung.
    3. Re:Defense of the Article by phantomfive · · Score: 1

      In order for it to be truly bimodal, people have to start in either camp A or camp B and end in the same camp they started in. Because if you transition from one to another over time, any point in time will capture a group of people in between the modes.

      Then it's not bimodal by your definition.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Defense of the Article by Chris+Mattern · · Score: 1

      In order for it to be truly bimodal, people have to start in either camp A or camp B and end in the same camp they started in. Because if you transition from one to another over time, any point in time will capture a group of people in between the modes.

      Bimodal doesn't mean there is *nobody* between camp A and camp B. It means there are *very few* between camp A and camp B.

  27. Absolute bollocks by msobkow · · Score: 2

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Competent, basic programming may be, but there is also an aspect of art and talent to it that can't be taught no matter how much the "we don't fail kids here" people might wish it weren't the case. Companies aren't looking for competent programmers -- they offshore those jobs. They're looking for the exceptional talent that can drive the whole process from top to bottom, including issuing the designs and models those "competent" programmers are expected to work from.

    I may not believe in the "10x programmer", but I most certainly do not believe that just "anybody" can be taught to be good programmer. I don't believe that of anything except the most basic of manual labour jobs.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re: Absolute bollocks by Anonymous Coward · · Score: 0

      I agree the top-to-bottom is where the money is at. But at that stage you're not talking about programming, but understanding the business well enough to properly use technologies at your disposal (or invent it, if needed).

      But that isn't programming.

    2. Re: Absolute bollocks by msobkow · · Score: 1

      I'm not talking about understanding the business; I'm talking about translating the chatter of those who do understand the business into algorithms, models, and architecture. I'm talking about having the knowledge to choose from the various platforms and frameworks available.

      You can't just walk someone through a course and have them learn that. They have to have the passion to learn about those things on their own, and they have to have the talent to understand those issues and concepts.

      You can teach someone to spew the buzzwords; that doesn't mean they know jack shit.

      --
      I do not fail; I succeed at finding out what does not work.
    3. Re: Absolute bollocks by msobkow · · Score: 1

      Those who try to classify mere coding as "programming" are the same ones who think you can teach "anybody" to "program." The problem is they have too low-balled a viewpoint on what the art of programming is. Calling a coder a programmer is like calling an apartment painter an artist; the jobs are only vaguely related. Slapping paint on a wall is no more "art" or "talent" than coding is compared to programming.

      --
      I do not fail; I succeed at finding out what does not work.
    4. Re: Absolute bollocks by Anonymous Coward · · Score: 0

      No company employs software designers and architects anymore.

      The company I work for has 200 developers, each of them must be able to understand the business, decide on business priorities, able to create a new design and fit it in an always changing architecture, and work together.

      The term "programming" has changed.

    5. Re: Absolute bollocks by narcc · · Score: 1

      Creating an artificial distinction might make you feel more important, but it's still just self-delusion.

      The truth is that anyone can learn to program. Even better, like all skills, they can improve with practice. It doesn't require a 'special mind' or some mythical in-born talent, just patience and practice.

    6. Re: Absolute bollocks by Anonymous Coward · · Score: 0

      It's self-evident you need technical skills. Translating "...the chatter of those who do understand the business..." into a good technical solution requires understanding what's being asked-for. And understanding what's being asked for requires the programmer to have a firm grasp on the business itself along with the platforms and frameworks.

      Also, I dispute that you need passion in order to deliver a high quality solution. Like every other trade, I do have to keep up and see what's new and perhaps applicable to my line of work; and learn something on my own if I foresee a need/advantage to do so, but this isn't the same thing as "passion" as so many people state.

      In fact I assert that this typical notion of passion is counterproductive. It's only software development/programming that changes the rules every few years. And guess what? It's largely driven by people who have this "passion" and incentive to push out the latest & greatest alpha or beta framework and language, while throwing away generational knowledge for its own sake. No other technical field that I'm aware of has this strange fad of re-inventing the same solutions again and again, while often leaving an unmaintainable mess & development trap.

      But as someone tasked with providing a proper solution, I'm obligated to ask: Is this really needed (or are there alternatives)? If so, what is the expected lifespan of this solution? And what is the budget over the course of its lifespan? Given all this, what is the appropriate platform?

      Someone with "passion" will simply skip to the last question in order to pad their resume by choosing the latest & greatest and often leave a mess. Someone tasked with engineering a solution will step back and see if there's a defensible reason to choose something unproven.

      None of this is programming, but it's a hat that a top-to-bottom programmer must wear.

    7. Re: Absolute bollocks by Anonymous Coward · · Score: 0

      Creating an artificial distinction might make you feel more important, but it's still just self-delusion.

      The truth is that anyone can learn to program. Even better, like all skills, they can improve with practice. It doesn't require a 'special mind' or some mythical in-born talent, just patience and practice.

      To the degree that everyone can write English letters and essays to one another. Someone people are certainly better than others, but most people can write. Still, not everyone has the chops to create a masterpiece. The question is whether this level of ability is really all that important for most development work, and the longer I'm in this line of work the more I think the answer is no (though it doesn't hurt).

      That said, general purposes coding--probably because of its math roots--falls back into math knowledge that high school doesn't teach, but some people grasp. Hence this apparent U-distribution myth.

    8. Re: Absolute bollocks by Anonymous Coward · · Score: 0

      Sure. But why not call it what it should be called then? That is, software engineering?

  28. the article is bullshit by joss · · Score: 1

    And the reason it's bullshit is that it starts from the premise that if you could measure programming ability somehow, its curve would look like the normal distribution.

    Programming ability is exactly the kind of thing that does not fall in a normal distribution. It's not even close to a normal distribution. It's more like wealth distribution, there is no meaningful average.

    --
    http://rareformnewmedia.com/
    1. Re:the article is bullshit by Anonymous Coward · · Score: 0

      Agree with this.

      There are many concepts that need to be understood, and these more or less difficult concepts are building on top of each other.
      The good programmers got most of them and could build up their knowledge. The bad ones got stuck at the initial concepts with no way of advancing.

  29. the 10x programmer is no more toxic than average by Anonymous Coward · · Score: 1

    in my 39 yrs in the industry, working for the largest multinationals to boutique consulting groups to 25 people software firms on a shoe string, I've seen plenty of "rock stars" and "zeros" and everything in between (typical normal distribution) and programming ability is not strongly correlated with toxicity to the team. Everybody have their own quirks, this myth that high productivity has to come with unacceptable social behavior is more likely sour grapes. Although it is true that low productivity programmers may have to be more restrained (but not necessarily so if the reason they are still in place is because of political cover). On the other hand, low productivity is just as toxic.
    Very few things in nature is bi-modal. This U shape distribution is probably the result of people living in Lake Wobegon, "where all the women are strong, all the men are good-looking, and all the children are above average" and think they are on the right side of the U while other folks are on the left side of the U when the truth is that most people live in the big lump in the middle of a normal distribution (on just about any human endeavor).

  30. eh by buddyglass · · Score: 3, Interesting

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Yes and no. I'd argue it depends on how you define "programming". If you're talking about "can code up basic solutions to relatively straightforward problems" then yes, with enough time, most people can probably learn to do that. Considerably fewer ever reach the point where the code they produce is (usually) elegant. Where they're capable of troubleshooting the most elusive bugs. Where they fairly quickly identify solutions that are orders of magnitude more efficient than the naive approach to a given problem.

    I tend to think the folks who reach that level are able to do so by a combination of experience and some inherent traits that you can't just pick up in a programming class. An example from my current job:

    My employer makes apps. Our app downloads some images over the network when it launches. It caches them so unless something changes there's not much going over the wire, but the initial download can take a while. Up to 30 seconds where the user is stuck watching a progress indicator on the splash screen. At least two different developers had worked on this app. Then the company hired a new guy (not me). One of the first things he did was refactor the image download code to use multiple threads and transfer the images concurrently instead of in serial. With 8 threads the speedup was approximately 5x. His key insight was that most of the images were very small, so much of the total time was latency and not lack of bandwidth. Especially since latency is so high on mobile networks.

    Now the previous developers were not right out of school. They had years of experience. They could "program". But they didn't recognize an enhancement with significant implications for users when it was right there in front of their faces. It's possible that if they had been specifically instructed to optimize the image loading logic they would have come up with a similar solution. Maybe, maybe not. But why did the third guy immediately recognize the problem (and put in place a very effective solution) without being prompted? Was that a "skill" he learned in a programming class?

    On multiple occasions this same guy has identified long-standing bugs in our app that I'm almost positive no other member of our team would have ever been able to figure out even with infinite time.

    1. Re:eh by itzly · · Score: 1

      Yes and no. I'd argue it depends on how you define "programming". If you're talking about "can code up basic solutions to relatively straightforward problems" then yes, with enough time, most people can probably learn to do that.

      Even then, a talented person will need less time to learn the basic stuff, whereas others may spend a lifetime mastering it. In the meantime, the talented programmer can do complicated stuff that the untalented one simple can't manage, even with all the training in the world.

      If talent didn't play a role, that means that a chimp could do it, given enough training. Clearly that's not the case, even if you train 1000 chimps from the time they are born.

    2. Re:eh by Jeremi · · Score: 2

      But why did the third guy immediately recognize the problem (and put in place a very effective solution) without being prompted? Was that a "skill" he learned in a programming class?

      It might have been that he was just a clever guy, but let me offer an alternate possibility -- the new guy recognized the problem precisely because he was the new guy.

      Specifically, it's common for people not to think about minor annoyances they have grown used to. It's the boiling-frog effect -- a programmer who has been working on that app every day since the very beginning, as more image assets were slowly added, might not notice the gradual slowdown of the app's startup phase, because at first it was fast enough, and eventually he/she just got used to the slow startup because "that's just how it is with this program".

      The new guy, OTOH, sits down with the app and because he's had little or no previous experience with the delay, finds himself noticeably annoyed and says to himself, "that is a problem... maybe I can find a way to improve that".

      tl;dr -- a person with fresh eyes can often see problems that the old hands have grown too accustomed to, to notice.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    3. Re:eh by narcc · · Score: 1

      Why is it that when you see delusional distinctions like these the dividing line always seems to be at the level of skill of the person offering it?

    4. Re:eh by david_bonn · · Score: 1

      This.

      A lot of what puts a programmer on the far right-hand side of the curve (whatever curve you choose) is an "Aha!" type of ability to piece together better solutions and to make previously intractable bugs shallow. I don't know how you teach that ability but it is precious when you work with someone who has it.

      A lot more time is spent on requirements, debugging, and debugging requirements than is spent on actually coding. In my experience a lot more of the "10x" performance comes from those other parts rather than coding. And if you have someone who seriously understands the problem and understands the platform you are targeting that someone can work (what appear to be) miracles.

    5. Re:eh by Anonymous Coward · · Score: 0

      Yes and no. I'd argue it depends on how you define "programming". If you're talking about "can code up basic solutions to relatively straightforward problems" then yes, with enough time, most people can probably learn to do that.

      Even then, a talented person will need less time to learn the basic stuff, whereas others may spend a lifetime mastering it. In the meantime, the talented programmer can do complicated stuff that the untalented one simple can't manage, even with all the training in the world.

      If talent didn't play a role, that means that a chimp could do it, given enough training. Clearly that's not the case, even if you train 1000 chimps from the time they are born.

      Better analogy: Anyone can take a violin and make noise. Most people can, very slowly, play a note. Dabble for a few months and you can play a simple, slow tune. But if you see an actual violin player, someone who has deliberately practiced every day for hours for a even just a year, they may as well be witches to you if you have never seen it done.

    6. Re:eh by mr_mischief · · Score: 1

      I think you're conflating "talent" and "higher level of complex intellectual ability", AKA "intelligence". Logic, syntax, and calling conventions can be taught. Some of the things that make a programmer vastly more efficient are specific portions of intelligence: pattern recognition, long-term memory, holding a large working set in short-term memory, juxtaposition of one situation against another, and ability to abstract generalities.

    7. Re:eh by Anonymous Coward · · Score: 0

      Maybe because the new guy didn't already have a bunch of other tasks to do? Sometimes you just need to get something done. If you have time to fix it later, great, but that doesn't always happen.

  31. programmer here by Anonymous Coward · · Score: 0

    Talent helps out a lot in the formative years, because it keeps you coming back again and again even though you suck.

    The rest is mostly hard work. Becoming good requires years of practice. You have to unit test your stuff. You have to mercilessly rewrite your own code (I always consider my first effort at anything a first draft). You have to be eager to learn how to improve your skills and constantly devote time to it. You have to be willing to admit you suck before you can improve.

    There's a big tendency in junior programmers to think they are rock stars and want to show off to the world how clever they are. You can see it in overly clever, halfassed threading models jammed into half finished programs You can see it in gratuitous use of inheritance and polymorphism and in the reinvention of wheels in regards to algorithms and data structures. It's only later in your career that you get comfortable enough as a programmer to put that stuff aside and focus on doing good work that will be of use to others.

    1. Re:programmer here by Anonymous Coward · · Score: 0

      I like to focus on solving the problem directly. If I'm about to write a piece of code, I ask myself, "Will this contribute directly to making it run or will it be a diversion for (e.g., maintainability, elegance, stupid tricks)?"

      If it comes up the latter, I don't write it. I write the code that makes the program run correctly first, then I spend time looking for optimizations if any are even needed.

    2. Re:programmer here by narcc · · Score: 1

      I always consider my first effort at anything a first draft

      The best advice I ever received: "There are no good writers, only good re-writers."

  32. Simple question by king+neckbeard · · Score: 3, Insightful

    how many developers does a 10x programmer have to drive away before it is a wash?"

    By definition, 10. Perhaps being able to figure things like that out is what separates 10x programmers.

    --
    This is my signature. There are many like it, but this one is mine.
    1. Re:Simple question by Anonymous Coward · · Score: 0

      By definition it's 10, unless at the same time he attracts another 10x-er, then lather rinse ... but wait. The key to winning this formulation is to have them subsequently jointly drive away 10, so that's just 10 for the both of them, and you've got 2 at 5x!

    2. Re:Simple question by Anonymous Coward · · Score: 0

      :D

    3. Re:Simple question by bluegutang · · Score: 1

      It could be less than 10, because the 10x programmer does not draw a 10x salary.
      Or more than 10, because the 10x programmer could leave or get hit by a bus and your project is screwed, while it's very unlikely that either of these should happen to an entire team.

    4. Re:Simple question by AmazingRuss · · Score: 1

      Once you get up to 10, they're bumping into each other like the 3 stooges in an elevator, so you need 100 to get anything done.

    5. Re:Simple question by Anonymous Coward · · Score: 0

      You're missing that as more developers leave the communication improves and overhead lessens. But you also have to take into account moral. Depending on who left and how they left it could go up or down. There's always additional factors. The better software engineers make less assumptions.

    6. Re:Simple question by MadKeithV · · Score: 1

      how many developers does a 10x programmer have to drive away before it is a wash?"

      By definition, 10. Perhaps being able to figure things like that out is what separates 10x programmers.

      As long as the 10x programmer is making less than 10x the salary of a 1x then ceteris paribus it is financially impossible to become "a wash". You can never match the productivity per cost of the 10x with "level 1" programmers. That is scary, because it means that no sensible company with a serious productivity need should hire 1xers unless they really had no other choice.
      Say a 10xer commands triple the salary of a 1xer, then the 10xer is still less than a third of the cost of 10 1xers for the same productivity, or you could have triple the productivity for the same money (and still give yourself a single 1x salary as a bonus for being so clever).

    7. Re:Simple question by Anonymous Coward · · Score: 0

      Ah, but in that case from the total pool of 11 developers you're only getting 10x output.

      Once the 10x developer has driven away 9 other developers it's a wash - you're getting 10x work from 10 developers.

      Luckily I'm a 10x commenter, so I can afford to drive away 9 other commenters through pedantry.

    8. Re:Simple question by Anonymous Coward · · Score: 0

      No. Depends on the developers he drives away. Two 6x developers is too many.

      And their salaries. That insight separates the leaders from the followers,

  33. what grade is this from? by xmousex · · Score: 1

    in a paid professional environment, terms like 'rock star' and 'ninja' sound like giggly things our children might say about what they were learning in school today.

    Our team members have a skill level where they started at hire time, and then they learn and grow from there, both in the general languages and in our platform they work with. Nobody comes in as a 'ninja'. The longer they have been here working and learning this environment, the more we can trust them to lead projects. Everyone either improves with time or eventually moves on to other things.

    Is this myth thing about school then?

  34. According to this article Edge is rife with horses by Anonymous Coward · · Score: 1

    According to Edge the tech industry is rife with sexism, racism, homophobia, and discrimination

    If anyone needs proof that people who write about tech don't have the first fucking clue about working in tech, there you have it ladies and gentlemen. Edge is a pile of complete horse shit.

  35. Part learned, part personality by petes_PoV · · Score: 1

    it [programming ability] is just a bunch of skills that can be learned

    That is partly true. However to be a great programmer you need the right mindset, experience and maturity. A great programmer isn't one who knocks out the most lines of "code" in a day - any fool can do that or someone who writes mind-bogglingly complicated structures (all fools do that on a daily basis - and seem to take pride in it). No a great programmer is the one who can get to the nub of a programming problem and solve it in a robust and clear way and then describe succinctly why that is the best approach.

    Sadly most of industry today subscribes to the "rock star" mentality - not just in code hackers, but in most walks.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  36. Like math by bjs555 · · Score: 1

    If programming is like math (and I think it is in some ways) then the distribution of talent may very well be U shaped. There seems to be a few extremely talented mathematicians like Gauss, Euler, Cantor, Godel, Ramanujan, etc. and then everyone else. That doesn't mean that those like me near the bottom of the U can't appreciate and follow what those at the top accomplish but I think the nervous systems of those who can think so clearly about math are wired in a different way. Maybe so with programmers too.

    1. Re:Like math by mr_mischief · · Score: 1

      Couldn't it be that those few are just very far to the right of a normal bell curve or a power curve rather than on an inverted bell?

  37. 'U' shaped curve... by Anonymous Coward · · Score: 0

    Professions that are self-eliminating can produce a 'U' shaped curve, measured in employment hours...
    Take Bomb disposal as an example...

  38. 10x Programmer is a myth by Martin+Spamer · · Score: 1

    In my experience the so called "10x Programmers" are excellent examples of the Dunning Kruger effect at work.

    Their work is usually hacked together rubbish that is neither well tested and intractable.

    1. Re:10x Programmer is a myth by Anonymous Coward · · Score: 0

      In my experience, people saying that are more envious of the others than anything else. Real "superstars" don't have craptastic code- and I've seen a LOT of craptastic code from the mediocre crowd. To the point of many in the team wondering who the f-er's sleeping with to keep their job.

      In short, your experience is anecdotal...and as much bullshit as the article. Have a nice life..

    2. Re:10x Programmer is a myth by gweihir · · Score: 1

      I do not agree. In fact, I have been a 10x coder on occasion. The thing is not that I am extremely good, the thing is that I write very solid code that does not have to be thrown away after a short time or causes more problems than it solves. And I am not that much slower doing it than others are churning out trash. A better explanation would be that most coders are in fact 0.1x coders and should not have gotten into the profession in the first place due to lack of dedication, talent and skill. Then any good coder becomes an 1x coder and that is a far more accurate way of seeing things. An 1x coder in this sense is just somebody that delivers a solid result with good architecture, design and implementation in reasonable time. Most coders cannot do that.

      I guess this "10x coder" nonsense comes basically from management being unable that they should never have hired the bad ones. Calling them 0.1x coders makes it amply clear who is responsible. Calling them 1x coders hides that management did screw up badly in hiring them.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  39. Re:So where do you place the women folks? by Anonymous Coward · · Score: 5, Funny

    Fuck you. I'm the best. I write all my own libraries and never use anyone else's code.

  40. Myths of productive stars by DriveDog · · Score: 1

    What's for sure is that some of the most celebrated programmers (by management) leave a wake of defects and sloppy work and convince management to adopt horrible platforms.

  41. Ageism? by Comboman · · Score: 1

    According to Edge the tech industry is rife with sexism, racism, homophobia, and discrimination and although it is a multi-faceted problem, the talent myth is part of the problem.

    Ageism (as usual) is not mentioned, though it is just as big a problem.

    --
    Support Right To Repair Legislation.
  42. Re:So where do you place the women folks? by Anonymous Coward · · Score: 0

    Then you're a fool, because someone out there likely has written it already, and given the length of time algorithms have been around, has likely written it far better than you could ever do on your own thanks to countless rounds of revision.

  43. The corporate definition of a rockstar dev by Applehu+Akbar · · Score: 2

    Is a person under 40 who you can get cheap. After the age limit and salary bar have been passed, the same person finds himself on the other side of the U.

  44. Less about skill curve than "damage" curve? by swb · · Score: 1

    Maybe it's less about the skill distribution curve and more about the "damage" distribution curve -- the idea that those at the low end of the skill curve cause the majority of the headaches.

  45. Re:So where do you place the women folks? by qbast · · Score: 1

    Sarcasm, motherfucker. Do you know it?!

  46. In an article full of lies and half-truths by 0xdeadbeef · · Score: 1

    This one sticks out the most:

    On the other hand, when he got up on stage, he did look like those guys. "So you probably assumed I was a real programmer." These sorts of assumptions contribute to the attrition of marginalized people in tech, he said.

    Bullshit, in the picture he's wearing a tie.

    1. Re:In an article full of lies and half-truths by petes_PoV · · Score: 1

      Bullshit, in the picture he's wearing a tie.

      I wear a tie, too. Although if I'm writing a particularly intricate piece of real-time code I may take my jacket off if it's a warm day.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  47. Re: So where do you place the women folks? by Anonymous Coward · · Score: 0

    What is this sarc.asm you speak of?

  48. Proof of normal distribution? by naasking · · Score: 1

    If you could measure programming ability somehow, its curve would look like the normal distribution.

    Would it? I think that's probably true, but I haven't seen any real evidence of that claim.

    1. Re:Proof of normal distribution? by gweihir · · Score: 1

      It is actually not true. Sure, exams tend to the Gaussian distribution, as the average students must pass somehow. But any well-designed technical exam will have a bi-modal distribution unless everybody is good at it. The thing is that designing exam questions for this is hard: You need to make questions that require an insight in order to be solvable, but once that insight has been had, the answer must be easy.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  49. All software is unmaintable by idiots by Anonymous Coward · · Score: 0

    I've worked with idiots and been told I am toxic to the 'team'. It's common for incompetent programmers to try to drag everyone down to their level, and I view a programmer by the product he delivers not by how some of the others in the team say about him. See, you call it "Toxic" behavior when I have pitched battles with some programmers in a team, but to me its "culling" the idiots from team. They get pushed down and marginalized and that leaves the better programmers to deliver.

    Man we've delivered some serious quality software when that happens.

    The danger is that an incompetent manager then tries to push these morons back into the middle of the team, and that really just destroys the real team doing the actual work. The good ones leave, the bad ones cry "its too complicated I can't maintain it" and the features get hacked down to their level.

    Man I've seen a few projects die a death that way. Crap end products nobody wants to buy.

    If the top 10% can maintain it, its good code, its just not written down to incompetent programmer levels, but then again, the customers doesn't give a f*** about the inabilities of a companies coders, they want the best product. It company X gets the top 10% and company Y can only recruit from the bottom 50%, then the customer buys product X. Company Y on the other hand can't make anything nice, doesn't get the sales, even if the code is maintainable by shaved monkeys.

  50. When i was 6 i could code like nobodys business by Anonymous Coward · · Score: 0

    need to learn a new language? no problem, just read the first couple chapters of the textbook (and parts of the glossary) & off i go.

    Now im 40... brain no worky right... new languages break thinky stuff.

  51. key skill by lkcl · · Score: 2

    the key skill needed for programming is to be *able to pay attention to detail*. if you are unable, by any means, to focus on one thing for any length of time (because, for example, you have the attention span of a spider on cocaine or worse caffeine, because, for example, you have been brought up on txting and IMing and twittah) then it should come as absolutely no surprise that you are utterly useless at programming.

    another person mentions that creativity is needed in programming. well, yes, this is true. if you have a bug that you don't know how it got there, you need to be extraordinarily patient [attention to detail] with yourself and your work, going over it *creatively* in different ways until such time as you have found, understood and then fixed the bug.

    if you do not have the patience because you are, once again, brought up on a diet of twitter, instant gratitfication and refined sugar products, *no amount* of creativity is going to help if you cannot apply it.

    i call myself a programmer: what i actually have is obsessive compulsion to be able to pay attention to one task for spans of time that exceed healthy limits. i can be freezing cold and not even notice... because i'm debugging something. only sheer complete exhaustion can get through under those circumstances. this is where it helps to be working in part of a team, as it sets some structure for social interaction. it's no accident, then, that there are entrepreneurs [this goes back a few years on slashdot - there's an article somewhere] who *only* take on *english language* majors [US i presume], and train them to be programmers. why? because people who can *communicate* turn out to make better programmers than people who have been through a university-driven programming course.

    1. Re:key skill by Anonymous Coward · · Score: 0

      A key skill in English is using a capital letter at the start of a sentence. Apparently you don't you realize how annoying it is to read such drivel.

  52. Flawed article by pauljlucas · · Score: 1
    Ultra-marathon running is used for an analogy. The thing about running in any race is that nobody else is affected by one's running ability. If one is a mediocre runner, one doesn't negatively affect one's co-runners; nor the quality of one's product (because there isn't one); nor the profitability of one's company (because there isn't one of those either); nor the satisfaction of one's users or the security of their data (because there aren't users either). Hence, it's not clear that running is a good analogy.

    There are also some careers where nobody wants a mediocre practitioner. When one's freedom is on the line, nobody wants a mediocre lawyer; when one's life is on the line, nobody wants a mediocre doctor. Therefore, why should it necessarily be the case that companies would want mediocre programmers? Some programming does have life on the line: software in cars, planes, nuclear reactors, or Therac-25 radiation machines; or people's or company's finances: software in banking or stock trading.

    There are also some careers where you simply can't succeed at being mediocre, for example any kind of research scientist: if you don't publish good work (and have the kind of innate ability to enable you to do good work so you can publish), you simply won't succeed. How do you we know whether programming is the kind of job where one can be mediocre and succeed?

    I've interviewed lots of candidates, many of whom claim N years experience in language X. I'm often stunned at how much many don't know -- stuff that anybody who completes a CSX101 or algorithms or data structures course should know. Is that mediocre?

    --
    If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    1. Re:Flawed article by narcc · · Score: 1

      How do you we know whether programming is the kind of job where one can be mediocre and succeed?

      Probably because of the countless "mediocre" programmers who are successful.

      When one's freedom is on the line, nobody wants a mediocre lawyer; when one's life is on the line, nobody wants a mediocre doctor.

      But most of them are mediocre. The world keeps on turning.

      There are also some careers where you simply can't succeed at being mediocre, for example any kind of research scientist

      Okay, now you're just trolling. Sorry about that. Carry on.

  53. straw man supporting a stupid conclusion by sribe · · Score: 2

    ...there is a myth that programming skill is somehow distributed on a U-shaped curve and that people either "suck at programming" or that they "rock at programming", without leaving any room for those in between...

    30 years full-time in the industry, NEVER heard that before. There's a lot of companies doing mediocre work who believe their mediocre developers are rock stars. That's because to marketing and management types, successfully getting a computer to do anything at all is magic, and they cannot readily distinguish between ho-hum "accomplishments" and serious ones.

    The truth is that programming isn't a passion or a talent...

    Bull. Fucking. Shit. This is not a truth nor a new insight, it's just wishful thinking, and this author is far from the first management prick to delude himself this way.

    ...it is just a bunch of skills that can be learned.

    Of course it is. But excelling at it takes certain aptitudes and talent. Confusing "it is a just a bunch of skills" with "pretty much anybody could potentially be as good as anybody else" is just stupid.

    If we embrace this idea that "it's cool to be okay at these skills"—that being average is fine—it will make programming less intimidating for newcomers.

    Well now, that's actually true. But it's equally true that all those jobs ads for "junior" or "intermediate" developers are looking for okay developers, not rock stars. There's jobs for them, and I've never met anybody who expected newbies to excel. So it's kind of an implicit straw man argument--but still, we should all be careful not to drive away newcomers, and keep in mind not creating this (possible) problem.

    ...the tech industry is rife with sexism, racism, homophobia, and discrimination...

    Maybe where this asshole worked ;-) And certainly there are companies where this is true, but how common is it? Where I've worked, I really believe the women and minorities were treated well. Granted I've never actually asked them that question, but then again, exactly how would that make them feel like they fit in?

    This is the "10x programmer" who is so good at his job that people have to work with him even though his behavior is toxic.

    No way. We all know (I hope) that although the 10x (or 25x, or 50x, or infinity-x) must have certain personality traits related to sustained concentration and so on, that when it comes to pleasant vs asshole, they actually exist in a pretty normal distribution. The problem of course is that because they are somewhat rare, it's harder to screw up the nerve to fire one if you think you have one.

    And, BTW, there are infinity-x programmers. There are plenty of problems that average programmers would simply not even be able to solve at all--not the majority of work of course. Relative to the amount of work available, problems that require unusual skill to even solve are rare. But given the huge amount of work, there are plenty of problems beyond the grasp of the average...

  54. Too many points by Anonymous Coward · · Score: 0

    First linking to a story which says don't read me without a subscription is bad form.

    Second, it is true that some folks are less than a pleasure to be around and some are better than others at some skill.
    The interesting figure of merit is the smarts to pita ratio.
    Many rock stars, especially the ones in their own minds, don't fair well on this rating.

    Programming, like other forms of engineering, requires experience, smarts, cearivity, curiosity, enthusiam, and yes arrogance.
    Experience gives one a big bag of tricks to choose from when deciding how to do something.
    Smarts helps one choose wisely andgives one the ability to think through to eliminate bad paths.
    Creativity is needed to make new paths.
    Curiosity is needed to imagine new paths.
    Enthusiasm is needed to see you through a whole project.
    A measured bit of arrogance is also needed to keep one on the path he feels is right when others try to make him stray.
    Perhaps the most important skill is works and plays well with others unless you wish to be limited to one person projects.

    Each person brings a different set if skills.
    To say that this can be put in a single curve may speak of someone who needs a bigger bag of tricks.
    The curve shape is more likely a gaussian distribution for each skill on a separate curve and long tails.
    The different skills reinforce each other, so there must be some cross correlation.
    It is certainly possible to have negative help, so the curves do go negative.

    One might try to condense this to a single graph for a specific type of programming.
    I'm not sure what the shape would be.
    Combining un-correlated gaussians gives more gaussian.
    We need a math wiz to answer how the cross correlation would affect the result.
    My guess is you still get a similar curve with slightly different tails.

    It doesn't feel like this model matches reality, but I think it has to. (The nesessary arrogance thing.)
    Meeting folks that are score well on a bunch of these areas seems rare. (Hence the rock star syndrome.)
    Meeting folks that score poorly on many of these seems common. (Because most folks are focused on other things outside the model.)

    I think this says that to get good programmers, you need to start with folks that score well on enough of these attributes to let reinforcement take them the rest of the way. A rare, good programmer should be able to stay that way if he continually works on his skills.

  55. Don't Need Rock Stars for My Job and I proved it by Anonymous Coward · · Score: 0

    I have never worked with a "Rock Star" programmer but I come from the camp of actually getting boring things done so ymmv. I found the skills to do my job can be learned.

    I have been able to distill what took me perhaps 20 years to learn on my own and have been able to mentor one person starting out as a "waste of seat" into someone that will be able to function at least at my level. It took about two years. To begin with my productivity was at least 10x his, maybe more. A year ago it was still about 5x, now the factor is not significant and dependent only on been there done that, basically the difference is time served.

    I am now working with someone without any of the advantages of education or personal enriched environment the other fellow had so we will see. I have already seen great strides from this new person - it might take a bit longer but the only roadblocks I anticipate are will, motivation, and opportunity.

    I have tried to help two other people that started out between these individuals in ability. The first thought he was a Rock Star (NOT) and is now doing an excellent job in management after years of non-improvement. I could have moved his game up immensely since he actually does have more raw talent than I do but he was better than me in every way so ... he wouldn't let me and finished his programming career with maybe half my productivity instead of 2x better... The other fellow - time will tell - but he has more talent again. I suspect this is just a job and job hopping will lure him away - so why bother learning anything to be better?

    The reason you see the U curve is because, in general, there is no value attached to passing on skill. Where we are the pickings are a little thinner so you have to make due with the talent you have and my employers have figured this out.

    Without effective training you will get a U-curve because programming becomes a medieval guild system. Those in the guild with all the secrets building cathedrals and those outside bashing two pieces of wood together. Most professions have figured this out and function more effectively on a more normalized productivity curve.

  56. The statistical myth by Anonymous Coward · · Score: 0

    What axes are you using? Claiming to know anything about a distribution without defining your population or even your axes seems like a lesson in futility and just adding to the confusion.

    Ok, I'll bite: It's not what you manage to program, but what you manage TO DO with it: The End Result. The bottom line. The optimal goal. Your reason for doing what you love, etc.
    This is the reason there's so few Bill Gates and Steve Jobs' (two opposite ends of the spectrum) of people who really succeed in the IT software world.

    What about the programmer you ask? Yeah, how far do you think that person can come if not for the ability to utilize or monetize it in some practical and valuable form?

    You can have a rockstar programmer at your fingertips, but that rockstar will usually not provide anything useful (End Result, remember, not "perfect code"!) without the bright idea, stamina and resources to follow it through. If you have the latter, you don't REALLY need a rockstar, you just need reasonable people willing to put up the work and effort to make it happen, usually for the right incentives. Maybe a rockstar helps at critical junctures, but will very quickly become a liability if left to micromanage everything and everyone for too long. There is the fact too though that most people don't have the logical reasoning and stamina required to program much beyond infinite for-loops and "hello world"s.

    There's also a reason why sequal to movies and books more often than not sucks. It's really tough to "manufacture success". People who think success is manufactured are the same who belittle those who lead the way at the time without anyone noticing it. Sometimes these "little people" get ahead enough to make their success. Most often, they, like unrecognized artists, are left to rot in obscurity with their bright, unrealized ideas and ideals (not a bad thing, just too hard to follow-through sometimes).

  57. The Logic Gene by darkwing_bmf · · Score: 1

    Programming is bimodal in the following way: People who think logically and people who don't. Among those who think logically there is a variation of skill from average to great. Among those who don't think logically there a a variation of skill from ineffective to destructive.

  58. One afternoon vs 3 months by Anonymous Coward · · Score: 0

    I once finished a product in one afternoon, that another programmer (well sort of) didn't manage to get working in 3 months. But then, the other programmer was a total incompetent, who did not listen, and refused to learn anything new.
    So he tried to do in C, what I did in Tcl in a few hours. Epic fail.

    So I've once hit the factor 1000, but generally the difference is not so big.

  59. Re:Some people think I am genius by Flavianoep · · Score: 1

    I see, I wish /. let me edit my comments, so I could correct "poeple" and "accept".

    --
    Linux is for people who don't mind RTFM.
  60. We give up! by Ol+Olsoc · · Score: 1
    The only cure for this travesty is to immediately fill the FEMA death camps with the entire racist, sexist and homophobic members who consist the entirety of Programming at present - the whole lot of them, because while a good egg might have slipped through, the cancer that infects programming is pervasive, and we cannot take the chance.

    Then, we must rebuild a new and proper programming community, and will adhere to strict guidelines according to gender, race, and sexual orientation.

    The programming part - as the evidence plainly indicates, can be done by anyone, so that isn't a hiring criteria any more. Hire them for the correct social aspects, and they will be churning out better code in a day or two.

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  61. Long Tail by mbone · · Score: 1

    If you could measure programming ability somehow, its curve would look like the normal distribution.

    Says who? It would in fact look like a Pareto distribution, with some sort of long tail. Such distributions are common and to be expected in human affairs and human mental capabilities, which are not subject to the central limit theorem (which is what typically leads to a normal distribution in physical measurements).

    1. Re:Long Tail by Anonymous Coward · · Score: 0

      The shape of Pareto appears to be one sided.
      For skills, some folks are helpful to have around and some folks are the reverse.
      The distribution describing humans needs to be two sided.

      If the Pareto shape applies better to humans, is the a two sided version of it?

  62. Re:So where do you place the women folks? by Anonymous Coward · · Score: 0

    Rubbish. If they have to revise their code they obviously suck at programming. I never revise my code, because I am the best.

  63. Does not fit observable facts by gweihir · · Score: 1

    Potential programming skill is very much bi-modal, just like any other skill that requires abstract thinking. You have it, then learning makes sense, or you do not. Same with most engineering fields, mathematics or physics. Of course, the rockstar vs. cretin comparison is utter nonsense, and just dishonest propaganda language. You just get two Gaussian distributions with not much in-between. "Rockstars" are still rare (and generally not very useful). I have seen this time and again in fellow students, as a teacher, as reviewer etc.

    The article is another transparent attempt to make people believe coding is like manual labor and hence should be in the cheapest salary class possible.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Does not fit observable facts by narcc · · Score: 1

      Why would someone spread the obvious myth that programming requires a 'special mind' or 'in-born talent'? It's clearly delusional, so there must be some other motivation.

      The article is another transparent attempt to make people believe coding is like manual labor and hence should be in the cheapest salary class possible.

      That explains it! It's just good old fashioned fear and insecurity.

    2. Re:Does not fit observable facts by gweihir · · Score: 1

      So you believe anybody can be a star-mathematician as well? Well, understanding reality is also very much bi-modal and you are in the left part. And no, I do not earn the majority of my income from coding. I do review code by others from time to time though and the quality is usually between abysmal and atrocious.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  64. Programming Talent Myth? What's That? by luis_a_espinal · · Score: 1

    Jake Edge writes at LWN.net that there is a myth that programming skill is somehow distributed on a U-shaped curve

    Been doing this shit for 20 years, 10 (very) different companies, using different languages and technologies, for app and system level development, working shoulder to shoulder with a very diverse bunch of people. I've never heard of this myth till today.

    If I were to be forced to pull guestimations out of my rear, my impression has always been the following:

    1. that programming talent distribution with the X axis representing some quantifiable function of both talent and experience (two different things) closely resembles a normal distribution with near zero kurtosis and a slight, but measurable skeweness to the left. The skewness to the left results because, in my experience, lots of people leave the field or stop being active in development before getting to the next level of experience, engineering and craftsmanship. They leave because they suck or don't like what they do, or because they do a perceived beneficial lateral move into management or sales/sales engineering. Less and less people remain in the field honing their skills and making the transition into technical lead/more senior positions responsible for more complex problems.

    2. The probability of introduce massive numbers of WTFs per code change sets (or introduce a single massive WTF in a single code change set) as a function of talent and experience resembles an exponential distribution. No matter how experienced you are, you can still fuck it up badly, but the probability of doing so is inversely proportional to your talent (or at least, it should be inversely proportional to your advertised talent.)

  65. Arduino is my enabler by AndyKron · · Score: 1

    I suck brilliantly at programming. Arduino is my enabler.

  66. What's the definition of "suck"? by RogueWarrior65 · · Score: 1

    Seems to me that there are two ways of looking at this. Are you basing the evaluation on the finished application or on the quality of the source code/architecture? I've seen really dreadful source code that doesn't follow good standards an practices common in the industry yet has impressive results. I've also seen coding requirements be so complex as to hinder the development process.

  67. Another Hugh Pickens "special" by Anonymous Coward · · Score: 0, Insightful

    Hugh Pickens, the British wannabe-programmer forum troll, posts more BS fresh from the island of marmite.

    This time he is channeling Jake Edge, a person much like himself, i.e., a wannabe-programmer from Merry Old England who spews 100 lines of opinion for every 1 line of code he has ever written.

    Why do the Slashdot editors think this stuff is interesting? I think there must be some British Slashdot editor who keeps pushing this garbage.

  68. Passion for programming is optional by Theovon · · Score: 1

    I have known people who were passionate for programming... but they were terrible at it. And people who were passionate at something else but managed to write some damn good code... when they were required to as a tool to solve a problem in some other domain. I was a total computer nerd as a kid, but now I don't code for its own sake most of the time. (Actually, I do sometimes, but not anywhere near what I used to.) Now, I mostly code because I have to. I enjoy it, but it's just a part of bigger things I'm working on, and those problems (a lot of them in circuits) are what I'm passionate about.

    I have another thought to put programming into perspective: I know CS professors who are _fine_ at coding, but some are way better than others. That varying coding skill has nothing to do with their effectiveness at the job, because they're scientists doing research, most of which doesn't relate to coding per se.

  69. yeah, by Anonymous Coward · · Score: 0

    having grown up with computers certainly helps, but this is a profession, a job. And it can be learned.

  70. As someone who's had to hire programmers... by gestalt_n_pepper · · Score: 1

    They seem to be all over the map, in good ways and bad. Geniuses who can't ever seem to finish a project. Good, solid, mediocre developers who churn out working, but unspectacular code year after year. Quite frankly, I prefer the latter. They can make you profitable. Eccentric geniuses? Not so much, and quite frankly, not worth the effort. If you feel it necessary to write a compiler in assembler, more power to you, but do it on your own time. It has no impact on our mundane, memory-inefficient, but maintainable C# apps.

    --
    Please do not read this sig. Thank you.
  71. Re:the 10x programmer is no more toxic than averag by tnk1 · · Score: 2

    It's probably less about sour grapes than it is about the image of a certain kind of coder which makes for a good story.

    People like their assholes. They don't like being too close to them, but they like assholes who cut through the "bullshit" and make things happen.

    News outlets tend to pick up on those stories and people who are assholes tend to encourage that, because some star coders are just assholes and like the idea that their particular dysfunction makes them seem hip and employable, as opposed to being relegated to a closet somewhere.

    The reality is that there are excellent coders of both the nice and the asshole variety. It's just that you don't hear about the nice ones because they're not grandstanders. The assholes tend to be.

    If given a limited budget and resources, I'd probably pick the star coder, even if an asshole. I think the real issue with a 10x coder, as opposed to a team of average coders is the overhead of managing a team of coders. If you have one guy, he has one vision and it doesn't have to be transmitted to and adopted by the team. This is useful for certain projects.

    For other projects, where you are not going to be able to get any one person to be able to finish it, then team dynamics become much more important, and it becomes much more important to not have assholes on your team. If you're forced to have an asshole star developer, then you need to find people who will execute that vision without complaint. At that point, you're going to tend toward worker bees instead of highly skilled individuals because you don't want a religious war between the the two assholes writing your code.

    However, if you lose the assholes, you're much more likely to find a team of above average coders because they can actually work together without trying to backstab or snipe at each other constantly. You don't need to limit yourself to coders who are just puppets of the asshole senior coder.

    Don't get me wrong, puppet coding can certainly work, but is probably something you only really want in a short term startup where you can have that vision, without having to deal with larger teams.

  72. Re:the 10x programmer is no more toxic than averag by Anonymous Coward · · Score: 0

    I think the multi-modal nature of distribution is due to pulling a bunch of programmer levels together.
    Programmers have certain levels of thinking, some programmers are able to reach the last level, many people never even reach the first. I forgot the full list, but here is my attempt:

    - Variable substitution
    - Sequential statements and memory model
    - Multithreaded programming
    - Temporal programming

    If you remember high school, you may remember that lots of kids couldn't even wrap their heads around that symbols/variables in expressions are a substitution of numbers.

    The next step, which teachers have noticed in university, even if students are easy able to understand expressions with variables, many will never be able to understand how variables can change through sequential statements.

    Multithreading programming, most professional programmers will reach this level. Being able to lock data that is modified in two different threads.

    Most programmers will never reach temporal programming. These programmers are able to create mutex primitives themselves, or make data structures that can be accessed/modified by two threads without locking.

    These levels quantises programmers and therefor you get a multimodal graph.

  73. Says the 1/10X programmer who washed out by Anonymous Coward · · Score: 0

    Just another attempt to make the unexceptional feel good about themselves even though they neither deserve nor earned it.

    Hammer down the (exceptional) nail that stands out, because he makes everybody else uncomfortable and insecure.

    Coming to an industry near you, public education's "You are special!" travelling circus. Hurry! Sign up for your group therapy sessions today before it's too late! Wait, that's inconsistent. We'll still take you if you're 30 min late. Because you are special!

    1. Re:Says the 1/10X programmer who washed out by drewm19801927 · · Score: 1

      It turns out that telling kids "you are special and talented and above average, etc" actually improves their performance in school. So that's a deliberate data-driven thing.

  74. Re: So where do you place the women folks? by Anonymous Coward · · Score: 0

    Wrong. I often end up writing things on my own because of either a) issues with the library or b) it doesn't have the feature I want.

  75. Baseless theorizing and wrong by Anonymous Coward · · Score: 0

    Ive been hiring and evaluation software developers for 20 years, and my anecdotal experience shows that he is completely wrong.

    There are top programmers for average 10 times as much work, and never write the kind of bugs that make a team work through a weekend, and there is everyone else who plod along, and tend to do the minimum to get by, and no matter how long they chew on a problem will never quite achieve the same level of excellence.

    The main difference seems to be how much they enjoy writing software. Those who love it learn constantly, care about the result more, and simply keep themselves sharper.

    I will say its not a U shaped distribution, more of an L shape really. There are 50+ average developers out there for every ubergeek. There is certainly a demand for average coders as well, some are quite brilliant in their own way, having a speciality or else just being great maintainers or troubleshooters.

  76. Typical of most course curves. by pigwiggle · · Score: 1

    Most of the classes I've taught - math, chemistry, physics - have a bimodal distribution. It's a reflection of the two kinds of students. Those that are committed to school and those that have other things going on and are on their way out the door. The distribution for the top end is more or less normal.

    --
    46 & 2
  77. Re: So where do you place the women folks? by Anonymous Coward · · Score: 0

    Wrong. I often end up writing things on my own because of either a) I can't figure out how to use the library or b) it doesn't allow the bad coding practice I want.

  78. Most courses are bi-modal. by pigwiggle · · Score: 1

    The top distribution are the students who are committed to school - and that is more or less normally distributed. The bottom end are the folks who have other stuff going on and are on their way out. My experience, and that of my colleagues anyway.

    --
    46 & 2
  79. I mostly agree with the article by hhammermill · · Score: 1

    Companies I have worked for outright think in binary:

    • 1) Only top-talent in the US (rock star programmers).
    • 2) If someone is not top talent move the job to India for rock-bottom-cost.

    It has unfortunately become simiar in other trades; if it is highly custom specialized woodwork for a mansion, hire the top-talent carpenter; otherwise might as well hire illegal immigrants to bang nails.

    It has not always been this way.

  80. The truth... by erp_consultant · · Score: 1

    is that programming is just like any other skill. You can learn it if you work at it. Sure, some people are born with a natural aptitude for it. I'm pretty sure that the first time Linus Torvalds tried computer programming he could probably tell that he was going to be really good at it. I'm sure that after Michael Jordan's first game of pickup basketball he probably knew that he was a lot better than the other kids he played against.

    Those are the rock stars and every profession has them. But that doesn't mean that you can't be a good programmer by simply working at it and learning your craft. Some people are late bloomers. Effort and dedication can take you a long way. It's a mistake to discourage people simply because they are not rock stars.

    I think I'm a pretty good programmer but I'm not in the top 1%. I'm OK with that. I enjoy it and I make a good living at it. I'll never be as good as Linus but I'm happy to be doing it for a living.

  81. Why is Programming a special Talent? by Anonymous Coward · · Score: 0

    Sports
    Music
    Art
    Music
    Math
    They all have the same lines.
    -Suck
    -Amateur
    -Champion.
    Why is there this reoccurring programing is special. It is like walking, Most people can do it , and do it well.
    It might be because there are a lot of Amateurs that think they are Champions.
    With programming it is harder to tell.

  82. Wait What? by Greyfox · · Score: 1
    LWN is still a thing? Damn, I stopped reading them ages ago, when I realized that all the stories I was reading were popping up on slashdot several days earlier.

    Amm... anyway, most of the programmers I've known over my career have been average. They don't seem to particularly enjoy programming but they can generally make the computer do what they want it to do. Then they're quite happy to go home to their families and do other things. I've run across (and had to clean up for) five or six truly inept ones. And I mean people with no ability with computers whatsoever, who were essentially defrauding the company they were working for. Usually those people had left the company by the time I'd gotten there.

    I've never met a true rockstar programmer at any company, although I have met a couple in Linux channels on IRC. I got to audit the source of the AT&T C standard library on a contract in the '90's and a lot of that stuff was brilliant. I wish I could have worked with the programmers who wrote it.

    Me? I'm not going to try to appraise my own skill at it. I enjoy programming and do it at home. I've retrofitted several projects with data structures and will fix crashes that other programmers tend to ignore. I've also been told code I've worked on is easy to understand and maintain (By people in other countries who it was outsourced to.) I prefer not to subscribe to institutionalized learned helplessness that dictates that the software works that way because the software works that way and nothing can be done to fix it. I have several github repos where I work on things that interest me at the moment, mostly licensed under the Apache license. That may make me different from a lot of programmers, but I won't argue that it makes me any better or worse.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  83. Myths and Truth by Spazmania · · Score: 1

    Most myths contain an element of truth. The truth is that computers are very unforgiving to software code which is not exactly, precisely correct. Few human beings are capable of operating near that level precision in any intellectual activity, let alone coding. Fewer still are capable of self-checking their results to catch the errors.

    So until we develop a DWIM interface (do what I mean) there is and will be a sharp line between the folks who are good enough and the folks who aren't. There's a limited amount of difference in work product between the folks who "aren't quite" and the folks who "aren't at all."

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  84. Re: So where do you place the women folks? by Austerity+Empowers · · Score: 1

    A good designer rolls his own, a great designer fixes what exists and spends his time on something new.

    Wait, did I just invert that U?

  85. Re:Some people think I am genius by narcc · · Score: 1

    If there was only a 'preview' button...

  86. Elites are real, kind of... by Tablizer · · Score: 2

    I've been around a while, and I agree there are what can be called "elite programmers", but with a caveat. Such people are "masters of code", but generally they are not very good communicators, and work on projects and niches that require a high degree accuracy, fastidiousness, and debugging skills. They often work on systems software, such as OS's, database engines, network control software, weapons control systems, etc., and are usually paid quite well.

    But they don't do so well when the requirements are fuzzy or change often. They don't handle ambiguity well.

    Of course, this is probably an oversimplification, and possibly a feedback loop where one that is highly "code oriented" will tend to be given yet more code-centric projects away from fuzzy office politics and fickle customers such that they don't develop their "fuzzy" analytical skills. Thus, they are not necessarily inherently "bad" at dealing with Dilbertian chaos, it's just that they lack experience with it because they went into a field or niche that is more technology focused, which helps keep them away from office politics and goofy users.

    It's hard to master both human nature AND machines in one lifetime. Those who focus on a mix of both are probably in-between skill-wise between people and machines, and this is where the majority of developers and developer/analysts are.

    And of course there are exceptions to the rule: some master both, but those are rare in my experience. (Those who believe they have mastered both are common, but egos tend not to be accurate to their owners.)

  87. 10x patience by iamacat · · Score: 1

    How many people are really willing and able to sit at the desk for hours on end, without any human interaction, all to figure out an abstract problem? How many will enjoy such a career for a decade it takes to get really good at it?

    The patience, intelligence and introverted personality required may all be on the bell curve, but one has to be on the vanishing end of it to be a key contributor to the project. Others can certainly learn how to complete a 3 page class assignment, but will be miserable if they have to code most of their wakings lives.

    I would argue that quantities required are so unusual that a great programmer is always going to have difficulties in social relationships with people in the middle of bell curve, even if not to the degree that can be considered autism spectrum diagnoses or any other disability.

  88. U looks more like L by Joviex · · Score: 1

    Correct.

    The only thing I know of on a U shaped curve of Awesome and SUCK are /. article(s) and/or their submitters.

    Actually it looks more like an L shape, with the high point being suck.

    But I keep coming for the commentary.

  89. 10% extremes happen everywhere by Peter+(Professor)+Fo · · Score: 1

    Look around you. 10% are really bamboozled by [Insert skill here] and 10% are streets ahead of those that get by. Maths, Foreign language, social skills, drawing. (Skydiving may be an exception.)

    Have you heard of BAD-GOOD-BEST clinical governance? 10% of clinicians lead and make big efforts to study and improve. 80% 'keep up more or less'. 10% are drunk and/or good at covering up their lack of competence. (See http://vulpeculox.net/ob/index... and follow the bad-good-best link)

    Let me also draw your attention to the '10% rule' in gene-controlled attributes. Left-handedness, Harder tooth enamel and so on. IMHO this is an evolutionary insurance mechanism (nothing whatsoever to do with the subject) so that if there's a mass-wipeout type event then there may be odd-balls who are far enough different to survive.

  90. Come on. What tripe. by fyngyrz · · Score: 3, Insightful

    From TFS:

    If you could measure programming ability somehow, its curve would look like the normal distribution.

    Since you can't measure programming ability "somehow" or otherwise, you don't know what the curve would look like. Which reveals the entire set of claims here as utter garbage. If you don't know what the distribution is, you don't know what the distribution is. How difficult is that to understand?

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Come on. What tripe. by ShanghaiBill · · Score: 5, Informative

      Since you can't measure programming ability "somehow" or otherwise, you don't know what the curve would look like.

      Except that you CAN measure it. Just give each person a few programming tasks that should take ten minutes or so. I do that all the time. It is called a "job interview". My experience is that most applicants are incapable of programming even trivial solutions, or even getting the syntax right ... and these are people applying for programming jobs. A fair number can come up with reasonable solutions. Only a few come up with elegant out-of-the-box solutions that I was not expecting.

      The distribution is not "U" shaped, and it is not normal (bell shaped). It is high on the left, and slopes downward to the right.

    2. Re:Come on. What tripe. by Anonymous Coward · · Score: 0

      except it is an excellent starting place because normal distributions are prolific, specifically in this type of data.

    3. Re:Come on. What tripe. by sfcat · · Score: 3, Informative

      The distribution is not "U" shaped, and it is not normal (bell shaped). It is high on the left, and slopes downward to the right.

      That's called a power distribution. And its what you would expect the distribution of programmers to be given that programmers are drawn from the extreme edge of the normal distribution programming skill in society at large.

      --
      "Those that start by burning books, will end by burning men."
    4. Re:Come on. What tripe. by Anonymous Coward · · Score: 1

      Out of interest, can you give us an example of these tasks?

      Typically when I've seen that method of evaluation used what the person producing the tasks does is takes something they personally know inside out, builds a task around it, and sets that as the task.

      That's all well and good but not every programmer is working on the exact same thing, what you know inside out might be something your applicant hasn't done in a decade. It doesn't mean however that the applicant hasn't been doing a million other things better than you.

      I've yet to see your proposal work well in practice. All too often it leads to dregs being hired that just happen to have solved the same problem last week, but are shit at everything else, whilst eliminating people who are incredibly good with a deeper and broader level of knowledge but haven't done that exact thing recently.

      This is quite far reaching as I've hired a .NET guy for a Java role before who hadn't touched Java in about 5 years so had a very rusty memory of the syntax and the libraries. He was however able to demonstrate a massive amount of knowledge about the inner workings of the JVM and so forth and I hired him - the syntax is the quick and easy shit to learn, and you shouldn't penalise people for not knowing it. It's whether they get the system that matters, it's whether they can demonstrate that they understand garbage collection and how object pooling can give you a degree of memory management in spite of the garbage collector, it's whether they know what framework is best for what because they've been casually reading about various frameworks on tech news sites over the years even if they've never used them explicitly. The guy who gets the inner workings of a VM like the JVM or CLR but needs to learn the syntax is going to be a better developer within 2 - 4 weeks than the guy who knows the syntax but doesn't have the slightest clue what is going on behind that syntax.

      I think it's incredibly hard to carry out good development job interviews, but personally I've simply found the best way is to let them tell you what they know, rather than force them to try and show you they know some niche thing that is pointless because even if they don't there's nothing to say they couldn't pick it up within a few days or week and still be better than the guy who knows that specific thing off by heart. It's hard to judge someone who you've made to feel like shit for not knowing some specific little niche thing, when instead you could be letting them explain in detail the things they know and love and show you their true potential and areas of interest. The level of detail they're able to go into is a far better indicator of their capability than anything else.

      Put simply, I suspect your hiring process is incredibly sub-optimal. You think you're measuring programming skill, but really all you're probably doing is just hiring people who just happen to have been doing a certain thing recently, even if their general knowledge and ability to work on other things is terrible compared to other candidates. Your process most definitely does not measure programming ability, it measures ability in one or two niche areas which tells us nothing about overall ability.

    5. Re:Come on. What tripe. by fyngyrz · · Score: 1

      500% underrated.

      --
      I've fallen off your lawn, and I can't get up.
  91. No one believed that in the first place by Karmashock · · Score: 1

    This just in, unicorns aren't real either... programming like damn near everything else is a bell curve.

    Most people are okay at it if they put some time into it. A minority are hopeless and will never be useful and a minority will be rockstars.

    --
    I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
  92. Everyone's a programmer. Even dead people! by fyngyrz · · Score: 2

    A variation of it is quite prominent on Slashdot, with many users inexplicably believing that programming requires a "special mind", dividing people in to two groups: "can program" and "can never program".

    Some of us just have different metrics for drawing a line between "programming" and "stumbling around in a programming language doing dangerous, stupid, and occasionally functional things."

    But, hey. If you can set your digital alarm clock, or interact with your microwave in such a way as to involve more than one button push (even if you're going to destroy the comestible), you're a programmer, right?

    It's like kids with crayons. They're all artists! Special butterflies! Call the Louvre!

    Now get off my nursing home's lawn

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Everyone's a programmer. Even dead people! by narcc · · Score: 1

      Okay, then no one is a programmer because what they do doesn't cross my imaginary demarcation line! You've convinced me. There are no programmers!

    2. Re:Everyone's a programmer. Even dead people! by Half-pint+HAL · · Score: 1

      Some of us just have different metrics for drawing a line between "programming" and "stumbling around in a programming language doing dangerous, stupid, and occasionally functional things."

      In the world of solid items, you can divide the design team into 3 rough tiers: designers, industrial designers and design engineers. Only the engineers are allowed to do the parts of the design that have potentially dangerous, because they're the only ones qualified to do it. In IT, we have software engineers, but not every programmer has to be a software engineer. The trick in any enterprise is to assign appropriate work to appropriate staff. Hell, you wouldn't ask a psychiatrist to give you an appendectomy, would you?

      It's like kids with crayons. They're all artists! Special butterflies! Call the Louvre!

      Now get off my nursing home's lawn

      Wow wow wow. Issues much?

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    3. Re:Everyone's a programmer. Even dead people! by fyngyrz · · Score: 1

      You appear to be well supplied with strawmen, though. So there's that. :)

      --
      I've fallen off your lawn, and I can't get up.
    4. Re:Everyone's a programmer. Even dead people! by fyngyrz · · Score: 1

      Hell, you wouldn't ask a psychiatrist to give you an appendectomy, would you?

      The only thing I'd ask a psychiatrist is "please leave."

      Wow wow wow.

      You probably want to get that turntable checked. One day it's only wowing, then suddenly tomorrow there's flutter, rumble, tracking error, and cookie crumbs blocking the strobe light.

      I'm just needling you, of course.

      Issues much?

      Nah. Just perpetually amused. :)

      --
      I've fallen off your lawn, and I can't get up.
    5. Re:Everyone's a programmer. Even dead people! by BarbaraHudson · · Score: 1

      Hell, you wouldn't ask a psychiatrist to give you an appendectomy, would you?

      The only thing I'd ask a psychiatrist is "please leave."

      It depends on the circumstances. If I were stuck in this situation I'd trust anyone with some medical training as being better than do-it-yourself.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    6. Re:Everyone's a programmer. Even dead people! by fyngyrz · · Score: 1

      Touche. With a scalpel.

      However, I will never be stuck in that situation. :)

      --
      I've fallen off your lawn, and I can't get up.
  93. The source of the toxic rockstar myth by Gestahl · · Score: 1

    Rock-stars aren't toxic: they are disruptive.

    What you do with the disruption they create is up to you: embrace it and elevate everyone else, or reject it, and continue with mediocrity (and maybe keep him as an ace-in-the-hole for skunkworks and one-off solutions where time is a key factor, and unleash the disruption when the time is right).

    The companies that have a "stable" development pattern in which the feature development pace, bug rate, architecture, and organizational tools are "good enough" should not hire rock-star coders. They will be frustrated with everything you *aren't* doing, and all the other developers will wonder why he wants to push for more: after all, this has been good enough, right? Inertia will kill any ideas he has for improvement.

    The companies that have highly-locked down roles and restricted responsibilities shouldn't hire rock-stars: you will underutilize them, and they will be frustrated with a lack of ability to "just get it done on my own".

    Rock stars work well only when they are surrounded by true peers, and everyone is operating on their level, or they are in charge (at least technically) and can fill in a mentor role with not-quite-peers (and are given reduced responsibilities in other areas to compensate time-wise). This almost never happens: rock-stars are seen as too good to not be coding.

  94. That's conflating two unrelated things... by seebs · · Score: 1

    The existence of programmers who are dramatically faster/more-skilled than others is not all that controversial, really. The question is whether they have to be assholes, or you should put up with them if they are.

    My experience is, the majority of the really brilliant programmers I know are not assholes. They might be a little light on tact, but they are generally pretty good at cooperating and listening. If they weren't, they wouldn't be nearly as good.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  95. Java by DaChesserCat · · Score: 1
    Of course there are mediocre programmers.

    The Java system that emerged to meet these needs is simple, so it can be easily programmed by most developers; familiar, so that current developers can easily learn Java; object oriented, to take advantage of modern software development methodologies and to fit into distributed client-server applications; multithreaded, for high performance in applications that need to perform multiple concurrent activities, such as multimedia; and interpreted, for maximum portability and dynamic capabilities.

    When James Gosling was determining what language to use for his VM, he originally looked at C++. But he found that most programmers had a hard time with the non-C parts of C++. So he pointedly created something which avoided those advanced parts. Originally called Oak, we call it Java today.

    In short, he created a dumbed-down language which was usable by "most" programmers. He wasn't shooting for the top of the bell curve; he wanted "most" of it. Java is a stretch for truly clueless programmers (I'm acquainted with some people who "just couldn't get Java") and annoying as hell to the truly great programmers.

    So I don't know where we keep getting this myth that programmers either stink or rock. Most of the Fortune 500 is actively looking for Java devs. Most of them won't put up with people like Linus Torvalds (a self-described "opinionated git") but you need to be able to wrap your head around the basics of functional decomposition and object-oriented analysis and design. So, you need to be at least mediocre. Java has become the COBOL of the modern era. And you certainly didn't have to be a rock star to write COBOL.

    --
    ... by the Dew of Mountains the thoughts acquire speed, the hands acquire shakes, the shakes become a warning
    1. Re:Java by subanark · · Score: 1

      Programming in Java allows one to focus on higher level design, and not worry as much about memory management. This allows someone to more quickly program a piece of a large system. Business are often willing to sacrifice a great deal of program efficiency in exchange for fast development.

  96. I agree with the reasoning but not the conclusion by Bengie · · Score: 1

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Then why do so many "programmers" not have these skills?

    Programming isn't even one thing, though people talk about it as if it were; it requires all sorts of skills and coding is just a small part of that. Things like design, communication, writing, and debugging are needed.

    The problem is that too many programmers don't realize that they don't have these skills and pretend that they do. They you get stuck with poor design or buggy code. Even worse is that many of these areas have massive overlap. You can't design a good program unless you know how to program and debug. You can't program a good program unless you understand the design. etc etc.

    I guess what I'm getting at the programming is a poster child of "the whole is greater than the sum of its parts", by a huge amount. Each skill is a multiplier for all of the other skills. With so many overlapping skills, someone with all of the skills is suddenly magnitudes better than someone with slightly fewer skills.

  97. calculus by Chirs · · Score: 1

    My high school calculus teacher observed that the marks for that class over decades of teaching tended towards bimodal. To some extent, either you "got it" or you didn't.

    This post (https://gasstationwithoutpumps.wordpress.com/tag/bimodal-distribution/) based on USA stats for 2010 suggests that "many of the exams that require math had this sort of bimodal distribution."

    1. Re:calculus by mr_mischief · · Score: 1

      Is this a talent issue, though, or a failure in the foundations of earlier math classes upon which calculus is building? Sure, if somebody never grasps the basics of programming you're not going to want them to program your pacemaker. I don't think anyone is arguing that.

  98. Statistics by subanark · · Score: 1

    How does one measure how good someone is at programming? Even once you get past a A > B, you still need to assign a numerical score to them. You can get both the U shape and a standard distribution from the same sample by simply redefining how you assign numeric values to the data points. Another thing to note is that programming is a single skill. You don't measure a person's ability based on number of lines of code they generate per week. Some programmers are better at architecture, others at understanding existing system. Some can make really efficient linear programs, others can build fault tolerant multithreaded applications.

  99. Re:So where do you place the women folks? by Darinbob · · Score: 1

    Often I reinvent the wheel because there is no other wheel that fits. If someone else has invented then it's proprietary and I can't get to it.
    Ie, right now I'm working on a new product that has only 16K of RAM when the previous product had 4M, and there's a lot of challenges. I see code that claims to be small and memory efficient doing similar things, but when actually looking at the source they tend to be bulky in practice.

    In the past I've seen lots of open source code that while very good for their environment (a big fat computer with lots of horsepower) end up not so great in different environments (size or speed constraints, customer requirements, etc).

    Another example: if you've got multiple open libraries doing the same thing, don't just pick the first one. The GNU gettext library was rather largish and more difficult to read than the BSD gettext library. And besides the GNU code is forbidden to be used anyway if you can't use dynamic libraries.

    I have sadly seen many cases where the code ends up being crap because some programmer insists on only using preexisting libraries, relying on marketing of the library as to their quality, and it seems no actual code of their own except to slap things together. Ridiculous stuff like using STL maps when a simple look up table would be smaller and faster, or using a boost library when the project already had code that did the same thing in a better way.

  100. Negative Productivity (re: News?) by Capt.Albatross · · Score: 1

    It's not bimodal but 10x rule still applies.

    There's no point in trying to assign a ratio to it, because the worst developers have zero or negative productivity, on account of the damage that they do to projects by checking in inordinately complicated code that fails mysteriously, or simply by messing up everyone else's schedule by failing to deliver their part. This is not a hypothetical argument; I have several specific people from my personal experience of corporate development in mind (all in the past, fortunately.)

  101. Inaccurate summary and poor form by Mel · · Score: 3, Informative

    The summary and comments often focus on what Jake Edge said where in fact, Edge is summarising what Jacob Kaplan-Moss said at a conference. The merits of the points made during the presentation can be discussed on their own but there seems to be a lot of vitriol aimed at Edge that has no basis in either fact or logic. Aside from an inaccurate summary, it's also sad to note that slashdot used a "subscriber link" feature which was meant to be used by a paid subscriber to share an article with a small number of people until it was free a week later. The feature was not intended for sharing with the entire audience of slashdot. That is just poor form.

  102. A drawing on the left side of the brain thing? by shoor · · Score: 1

    There was a book years ago called "Drawing On The Left Side of the Brain". Now, I was always able to draw. In grade school I was the kid the teacher would get to draw posters and stuff. But my brother couldn't draw. I gave him this book, and, a couple of days later, he could draw. I think what the book taught was not to put too much into the image. One of the tricks was to try drawing from a picture of a person that was upside down. That way the student concentrated on the lines that create the nose instead of the nose itself for instance.

    I wonder if people who have trouble programming aren't, in a way, trying to put too much into it, making something that should be simple, hard, because for instance, they don't break a problem down in to simple enough steps.

    Maybe it's all just about those who 'get it' and those who don't, and nobody has figured out what to tell the ones don't.

    --
    In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
  103. comment subject by Falos · · Score: 1

    Maybe it's because rockstar ninja is the only tier anyone wants to pay, hire, circulate. I could hire Alice and get 40 hours of standard results, or I could pay Bob slightly more. He's not "addicted" to coding but he gets workaholic sometimes. He can be obsessive and thorough if something flips the wrong switch in him. He can easily be manipulated into overtime, side projects, etc.

    Why hire a moderate-effective, moderate-paid, moderate-jobsatisfaction Meh drone when you can hire a sucker?

  104. I call BS by Kartu · · Score: 1

    Over nearly 2 decades I work in IT, in most teams I worked with SOME of the guys could do more than 3-5 others together.
    Also it had little to do with experience, some guys were just damn good, right out of the university.

    I've also seen plenty of very experienced, yet very poor coders.

    So no, not just skills you can just learn.

  105. Re: Not happy = more money by CraigCruden · · Score: 1

    If I like the work environment and the work.... the money is not as important (though I do like to be paid well).... but if I am not happy with either, I demand much more in compensation.... (I have been in both environments). If that makes me a sucker, I want to be a happy sucker.... Most people in this world are not happy at their work.... which is pretty sad....

  106. Re:Some people think I am genius by Anonymous Coward · · Score: 0

    That wasn't on the Mensa exam.

  107. same as reviews on amazon by kencurry · · Score: 1

    Only SEEMs bimodal. The vast middle never talked about; only the extremes are commented on.

    --
    sigs are for losers (except to point out that sigs are for losers)
  108. Programming is not about Programming by Anonymous Coward · · Score: 0

    Reading the comments to this article, hey guys, no real life programmers commenting on this? Programming is not about programming. Neither is it about design, communication, writing or 'debugging code' - or fast typing. Programming is primarily about solving problems effectively - big and small ones. Programming is something that should bring you from a defined state A, over unknown and hostile territory to a defined state B. The rest is just a toolbox you gain over time. On this point I fully agree, the toolbox can be acquired by almost everyone. However, problem solving skills is a complete different matter altogether. Everyone has a certain mental ability about this, but my personal and professional experience tells me that this is not something you can improve indefinitely just be 'practicing'. There is a limit set out for everyone. Once someone hits his personal limit, that's it, that will be all he will achieve, sorry. Of course, management will always ask if someone can be pushed a bit further, 'it must be possible, he has been here since 5 years, he should be a senior!' (but only in age). But its like tuning a car engine: there is a limit no matter what. And the last 10% cost you 10x more than the first 90%.

    BTW, WTF is debugging?

  109. Re: So where do you place the women folks? by mr_mischief · · Score: 1

    Programming is a lot like music. The best composers know which songs are worthy of having phrases stolen.

  110. Cash curve? by TiggertheMad · · Score: 1

    also, remember that high pay != skill. There are plenty of musicians that aren't particularly skilled at playing music that make a lot of money because they are good at entertaining.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  111. Disagree. by fyngyrz · · Score: 3

    Just give each person a few programming tasks that should take ten minutes or so.

    Yeah, but actually no. Each skill set is different. I could write you a PCB router in under an hour, or whip up an image processing mechanism, layered image editing, signal processing, write an FFT from scratch. I can do assembly coding as fast as I can type while higher up, I favor c and Python for their various and highly disjoint abilities. I'm good at documentation, and I can manage effectively -- without getting the team to hate me. But fizzbuzz? Sort of boggles me. I solve it very slowly. Perhaps because there's no point to it and I don't really give a flying crap. :) But perhaps also because it's just not my thing. I despise puzzles-for-the-sake-of-puzzles, and avoid them like the plague.

    Bottom line, any type of interview question or test will sit poorly with some high quality programmer. Some don't know a language, some have an unusual process, some aren't great communicators, some don't function well with someone staring at them or under immediate pressure... there is no perfect interview method, and surely no way to determine programmer competence outside of their actual accomplishments -- which, even when you can pull it off, is not the same thing as measuring their skills against others, placing them in an objective relationship to the skills of others, either.

    Personally -- and this is strictly anecdotal, but reflects many decades of experience -- I've had a lot better luck asking many-possible-answer questions about techniques and areas of knowledge in a friendly, low-pressure atmosphere where the interviewee is made to feel they are welcome and respected the moment they walk in the door.

    --
    I've fallen off your lawn, and I can't get up.
  112. Summary is wrong. by chris-chittleborough · · Score: 2

    The LWN article is not an essay by Jake Edge. It is in fact a report on a talk given by Jacob Kaplan-Moss.

  113. Professional Envy by factsmachine · · Score: 1

    I am so jealous of Jake Edge, because over the past few years of trying to re-enter the programming field with no response from employers, I have come to exactly the same conclusion -- but he has nailed the problem. The companies are all either looking for a programming god to whom they will offer six-figure salary+benefit packages, but will "reluctantly" accept H1-B greenies who will work for approximately minimum wage, when you factor in the typical 55-hour per week software development project death-march. Now we need someone who can nail the solution.

  114. Re: So where do you place the women folks? by Anonymous Coward · · Score: 0

    with most open source libraries the first issue is usually the biggest problem. Documentation and APIs are terribad then you try to look at the source to figure it out then you get to experience the second issue.

  115. How many? by maclark88 · · Score: 1

    " how many developers does a 10x programmer have to drive away before it is a wash?" 10 ?

  116. STEM failure by Anonymous Coward · · Score: 0

    The truth is that programming isn't a passion or a talent, says Edge, it is just a bunch of skills that can be learned.

    Programming involves a strong understanding of logic, which most people have absolutely no grasp of. Logic is a skill that cannot just be learned. If a kid's parents don't teach it at a very young age, then it won't be learned, and that is not recoverable, and that kid's future children will also not learn logic. Today's zero-danger and zero-consequences everybody-wins learning environment for young children in the U.S. is irreparably harming our future.

  117. Briggs-Meyer by mcswell · · Score: 1

    Briggs-Meyer is another theory that seems to assume U-shaped curves. For that reason (ok, other reasons too...) I'm skeptical of it. Why shouldn't most people score in the middle of the various personality scales B-M uses?

  118. talent vs culture and money by Anonymous Coward · · Score: 0

    Programming skill and talent (separate - skill comes from learning and practice, talent describes innate efficiency of developing skills) distributed in the population are likely approximated by a normal distribution, simply by the law of large numbers. The mean may be painfully low, and there may be an extra bump in the distribution at the high end, due to financial incentives to develop skills.

    The culture likely wants to view programming as the U-curve, just as it tends to view medicine, teachers, police - any special career.

    Financial incentives try to reinforce this. You are a programming genius and you can be hired to do cool, hard stuff, because you have done it before - and the market will force me to pay you lots, and you will gain more experience and be able to turn the crank again for similar rewards. You are not a genius, therefore you are a complete idiot, because I want to pay as little as possible for what the market tells me is a very fungible, widely available lowly resource. In actuality, you are somewhere in-between, but that is much harder to deal with to negotiate for your services. So, I want to think you are a waste of a chair or Grady Booch (pick a software programming rock star of your choice), because those two cases are easy to understand.

  119. In programming world by mundlapati · · Score: 1

    experience = expertize

  120. "not a passion or a talent" by Anonymous Coward · · Score: 0

    Anything can be a passion, depending on who the hell is passionate.

    Anything that is a profession has a concept of talent. There are people who do better and worse at any given thing. There are many people who probably could never program. It's not their thing. Maybe they'll be a musician, or maybe they'll be a construction worker.

    Ultimately SJW/10.