Hacker News new | past | comments | ask | show | jobs | submit login
[dupe] The programming talent myth (lwn.net)
103 points by edward on June 1, 2015 | hide | past | favorite | 133 comments



I see a lot of articles claiming that programming talent is a myth. Yet none cite a source or back up this claim.

The closest they get is arguing by consequence against it - if it were true, people might be discouraged. That's a logical fallacy since some things can be both true and discouraging.

This article is even worse. It drops this paragraph in: The tech industry is rife with sexism, racism, homophobia, and discrimination...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.

Arguing by juxtuposition, it's suggested that a belief in talent will somehow harm diversity. But that makes no sense - if talent is so important that we are forced to work with "toxic" 10x programmers, why aren't we also forced to work with black female 10x programmers no matter how much we might dislike them?


> I see a lot of articles claiming that programming talent is a myth. Yet none cite a source or back up this claim

That's because the article writers have rarely worked with a 10x programmer. They get shit done, fast, with massively below average bugs. It comes from a deep understanding of the code, the language, and the metal. They're also more likely to innovate and/or find novel solutions.

In the past they were spread around or sometimes in research (Bell), now they're clustered in the big 4 (Google, Apple, Microsoft, FB) and SF.

So unless you are where they are, you won't find them or even know they exist. That guy who can wrote a cool Jquery plugin at your startup probably isn't a 10x programmer. John Carmack would be an example of a 10x.


Fabrice Bellard (LZEXE, QEMU, ffmpeg, tcc, ...) is another example, although not many know about him - which agrees with your last point.


If you read hacker news you would notice that an article about him comes up every week or so. The same article.


The guy who is at your startup may actually be a better programmer than some of those who work for the big 4 you named. Many super-hero programmers are not motivated by working for huge companies with an established name, nor by the slightly better money they give compared to startups. I personally know some programmers at Google / FB / Apple / Microsoft and I also know a few working for startups or doing their own startups and, while all of them are probably one of the best I know, there is no obvious skill level difference between them and definitely not "10x".


GP didn't say all programmers at the big 4 were like that, just that most of such programmers were at the big 4. These are all huge companies so anecdotal evidence involving "some programmers" is unlikely to overlap.


Indeed those are huge companies and they probably have more skilled people than the average, but I seriously doubt they have most of the best programmers. Simply the amount of people working there is too small to cover even 1% of the best programmers in the world. And there are plenty of skilled programmers working in places where those huge companies do not have even an office, and there are plenty of programmers not considering working there for various reasons.


Agree but they likely have a disproportionate amount of the top 0.01% or whatever extreme number you want to use


since you can define the cutoff for "best" as you want, you can say 1% while someone else would say that that cover 10000%...


That's because the article writers have rarely worked with a 10x programmer. They get shit done, fast, with massively below average bugs. It comes from a deep understanding of the code, the language, and the metal. They're also more likely to innovate and/or find novel solutions.

In the past they were spread around or sometimes in research (Bell), now they're clustered in the big 4 (Google, Apple, Microsoft, FB) and SF.

The issue is that people are mostly context. Some programmers do well at Google and wouldn't do well in another corporate environment, and vice versa. "10x" is real-- hell, sometimes it's 100x or 1000x-- but it ignores the fact that it's not always the same people who are 10x. Drop an R&D innovator into a subordinate role where he's just expected to "get shit done, fast" and churn tickets, and you'll likely have a bored 0.3x or toxic -5x programmer.

10x is shorthand for "as important to the business as an executive", and good engineers often are more critical than many highly paid executives. The problem is that the terminology is a bit negative on "average" programmers and the idea that "10x" is a permanent identity is a bit silly.


>>10x is shorthand for "as important to the business as an executive"

This is very true. Another thing is lack of a clear purpose. To wake up every morning and to fix bugs day after day, without any higher or a coherent goal to chase demotivates people badly.

The only other thing I which causes burn out I know of is lack of meaningful rewards. To know that there so much politics around and you are being treated unfairly. And you are failing repeatedly for reasons beyond your control.

I don't know of one single person worth I know of who can't handle a lot of work or can't take long working hours. But at least give us a cause worth fighting for.


Except 10x programmers, if they exist don't just emerge fully formed into the world, they engage with some community somewhere to learn part of their skills. That community might be an online forum, a company, a tech meetup, university course etc.

If a hypothetical black female potential 10x programmer finds the first community is unwelcoming then she is less likely to stick around and thus become a 10x programmer.

There are plenty of previous articles on here from individuals who are "tech minorities" about the environment that we unconsciously create which isn't that welcoming to them. From assumptions about where and how we want to socialise, to dress codes, working hours, employee benefits etc.


Lets distinguish two separate concepts:

Unwelcoming: the community dislikes a person and behaves badly towards them. As an example, a recruiter told me not to bother with Warby Parker or Etsy since I'm not a hipster and they'll just reject me. (No idea if this is true, might just be #shitrecruiterssay.)

Not my thing: a person dislikes the community, it's norms and culture, and avoids it. E.g., I don't like banking culture.

You seem to be suggesting that "tech minorities" feel that tech culture is "not my thing" - we socialize and dress in a manner they dislike, work hours incompatible with their preferred lifestyle, and don't give out the right employee benefit package. As a result, "tech minorities" don't put in the effort and don't build the relationships that would help them become 10x programmers. I get the impression you consider this a problem, but it's unclear to me why that is.

How you get from this to the idea that 10x programmers or programming talent are a myth is not something I could figure out from your post.


I think what he's suggesting is that minorities find our community unwelcoming, and by unwelcoming they're probably referring to the racism and sexism that's rampant in the tech community. Unlike you, they're not worried about being turned away from a job for not being a hipster, they're worried about being turned away from a job for being black or a woman. Or, worse, they're worried about the abuse and disrespect they will undoubtedly get while working in tech.


Cmdkeen explicitly refers to dress codes, benefits packages and socialization patterns, not abuse, disrespect and racism.

People constantly talk about racism and sexism being "rampant", but evidence of this would be helpful. Citing statistical disparities is insufficient since, as cmdkeen notes, this could also be caused by "tech minorities" disliking the culture of tech rather than techies disliking them.


In some (very loose) sense, those two things are the same thing. It's not that these people say to themselves "man, I hate how I can't wear X shirt to work, better quit" but rather "the culture here (dress code, socialization patterns, etc) seems to default to white, and people view me as an outsider." I think that that's probably much more common than explicit disrespect.


They aren't the same thing. One is something that is done to you, the other is something you choose to do to yourself (or not, if you find it more useful).

My company is about 95% one race (not mine) and there is precisely 2 people here of my race (since last week) and 4 of my nationality. I simply choose not to care, and define my work tribe as "folks who care about uptime and good stats" rather than "folks who are genetically similar".


>There are plenty of previous articles on here from individuals who are "tech minorities" about the environment that we unconsciously create which isn't that welcoming to them. From assumptions about where and how we want to socialise, to dress codes, working hours, employee benefits etc.

We are welcoming if our culture suits you, like any other culture since the dawn of time. Why should we change the way we dress, the way we want to work, that we socialise, if we, that identify with the culture are perfectly happy with it.

They are feeling unwelcome because they are unwilling to adapt, but it's taboo to say so.

What you are advocating is purely and simply destroying a culture because some people do not like it.


It's a job. Why should culture matter so much?


Is your point, that if 10x programmers exists, then it's bad, because the community that formed them was possibly unwelcoming?


Isn't this diametrically opposed to the prevailing opinion that 10x programmers aren't grown, they're born that way with "the knack" and burned out before age 35 at which point due to ageism they need to be in management or onto their second career?

If, theoretically, 10x programmers were grown, then obviously most of the 10x programmers would be older and more experienced, but that age group is actively strongly discriminated against. Perhaps there are no 10x programmers of 50 yrs, by that age they are all 100x programmers after all that accumulated experience and domain specific knowledge, at least compared to average recent grad noobs. With the obvious exception of people with 25 yrs of experience who've only had 25 first years over and over again, although that failure mode is hardly limited to programming...

With a side dish of the widely held belief that 10x programmers can only come from selection organizations like ivy unis which primarily select (don't get all wound up, I very intentionally selected the word primarily, not solely) based on kids winning the genetic lottery, not by working hard? If the only way to be a 10x is to win the genetic lotto, and if the lotto winners happen to be mostly rich white males, the problem is at the academic uni acceptance dept level and has nothing to do with programming itself. If 10x programmers can by some definition only be recent Stanford grads and Stanford refuses to admit "enough" minorities, the problem is very specifically Stanford, not programmers in general or education in general or culture in general. Ready Fire Aim isn't going to hit the right thing. Find the correct target.

If an individual is "born that way" should he be made to feel unwanted or guilty about who they are? Apparently if they're gay the answer is no, and if they're a 10x programmer the answer is yes. This seems inconsistent, and inhumane.

Also it assumes that programming is only learned at uni in a purely frat boy anti-minority environment yet mythology and anecdote indicates that really good programmers are all self taught before they're 18, and only go to uni to get the paper and polish off the highest end stuff.

As a completely isolated theory, it is internally self consistent, but rubbed up against pretty much every other "common knowledge" of tech or geek or nerd or 10x culture, it no longer is consistent. Either everything else is wrong, or the proposed theory is wrong. Its unlikely everything is wrong (or is it?). Therefore the proposed theory is wrong.


Also it assumes that programming is only learned at uni in a purely frat boy anti-minority environment yet mythology and anecdote indicates that really good programmers are all self taught before they're 18,...

This actually provides a nice concrete way to test whether non-Asian monorities/women/etc are really harmed by outside factors: compare the percentage of autodidacts among non-Asian minorities to Asians/whites. If social factors push non-Asian minorities out, then the percentage of autodidacts should be higher (since social factors are reduced by a lack of social interaction).


In this article/talk, the "talent myth" in question is not that individual 10x programmers exist. It's that the distribution of talent is bimodal, that you're either a rockstar or "not really a programmer" with nothing in between.

Note the example of Ann Trason, who would surely count as a 10x runner. The normal distribution doesn't preclude this; it merely makes it improbable that any given person is, in fact, a 10x runner.

Of course, it's much easier to identify 10x runners, since there's a clear metric to rank by; how do you do that in programming? I believe I've worked with 10x programmers, but how do I know this isn't just another "I know it when I see it" fallacy on my part?


Probably because you say terrible things like, "why aren't we also forced to work with black female 10x programmers no matter how much we might dislike them?", and all the people with money, voice, and hiring authority look to people like you for validation.


Let me introduce you to the argument technique of "proof by contradiction". Such a technique requires assuming the author's premises to be true (in this case, the article's premise that techies are racist and sexist).

https://en.wikipedia.org/wiki/Proof_by_contradiction

Also useful reading: https://en.wikipedia.org/wiki/Principle_of_charity


Condescension combined with a narrow view on diversity, that's a good look.


It's a question posed because of the statements in the article that the tech industry is racist and sexist, and 10x programmers are toxic, not his actual view on black female programmers...


Conversely, can you cite a source backing up that there is such a thing as programming talent? Not saying either side is right or wrong, but I'd be interested in seeing how you'd even go about researching such a thing.


I don't know of much good data on it, all I have are anecdotes. I personally believe in 100x programmers, because I've worked with quite a few who were 10x worse than me and I've worked with a small number who were 10x better.

I don't make the claim that 10x programmers definitely exist. My only point is that a) argument by consequence is a fallacy and b) the article is internally contradictory (the more talent matters, the more incentive there is to identify and exploit it regardless of what it looks like).


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

I have to disagree with this part. I always considered passion to be a huge part of talent. And you can be passionate about anything in life.

Anyone can learn any skills (from painting to solving differential equations). However, if you're passionate about using those skills, you learn faster, easier, and you're more inclined to spend your time honing them and developing a deeper understanding.


Programming is, for the most part, a mental exercise.

How good someone is at programming is a combination of their problem solving skills (natural talent), their existing knowledge, and their ability to seek out and learn answers to problems they don't already know the answer to.

The talent part of the equation is a big factor, and ultimately determines where the individual tops out their skill set and "plateaus".

For an example of this, look at chess players and the ELO rating system. Chess is purely mental and has many similar parallels to programming.

I've met hundreds of chess players who have been playing chess for years, logging thousands of games. Many of them study the game on a regular basis and attend tournaments, and they all have ratings.

A beginner chess player starts with a provisional rating of 1200, which goes up or down depending on wins or losses logged over time. Grand masters are players that have earned a rating of at least 2600 or higher.

For every chess grand master out there (think of them as a 10x or even 100x producer), there are thousands of chess players that have been slogging away for years without their ratings improving past even 1500. They are simply blocked by their lack of natural talent, no matter how much they study or practice.

This is a fact that is objectively measurable and is backed up by millions of data points from officially rated chess games.

There's no reason why the same laws of nature related to raw mental talent (specifically problem solving and memorization) wouldn't also apply to programmers.


10x programmers do not exist, because programming ability is not a scalar. Give a hello-world task to write to an average programmer and a super-hero programmer. You won't probably see a big difference in their productivity. Actually if the task is too easy, your super-hero might get bored and become even less-productive thn the average programmer. Now give them something really hard to solve. If the task is hard enough, there are chances your average programmer would give up, regardless the amount of time you give him to solve the problem.


I can use your logic to prove that no one is good at anything:

"Super star athletes do not exist, because athletic ability is not a scalar. Ask a little league player to hit a tee-ball 15 feet and an MLB player. The ball will get to 15 feet at roughly the same time. Actually since it's too easy, your super-hero might get bored and become even slower then the little league player. Now ask them to hit a home run at Wrigley Field. The little league player would give up, regardless the amount of time you give him."


I ROFL when I read your comment, in all of its awesomeness.

I have a feeling that, if more people used analogies like this, the world would be a better place, because people would actually understand things they read.


I never said super-star programmers do not exist. I just don't like the term "10x" because it suggests there is some scalar measure of skill.


There are many scalar measures of skill. They are well-correlated with one another.


'10x' isn't meant literally. No one thinks there is one number we can assign to people (a lot of what we talk about isn't exactly measurable), and then one people is 10x some other person. Well, probably a few use it literally, but most don't.


Oh, yeah, I agree, but many people are taking this too-literally. That's why I don't like this label and call them "super-hero" programmers or "rock-star" programmers. As far as I remember the original term "10x" was created after some studies finding the differences between the worst and the best programmers. But this didn't mean there was nothing in the middle, only that the variance was high. And I completely agree there are plenty of really terrible programmers, so being 10x better is actually an easy task if you compare to them ;)


One of my beefs with the 10x term is that being concrete it leads to people taking it literally. These silly buzzwords have a way of ending up literal reality


First, I doubt that programming skill exactly follows a bell curve. Most people can't begin to program; conversely, most people can begin to run. There's a barrier to entry in programming that gives the distribution much positive skew.

Second, the criticised idea that "everyone is either an amazing programmer or a worthless use of a seat" is probably true in capitalism. Either you have skill enough for an organisation to employ you profitably, or you don't.

That difference might be a hairline's breadth. But it acts as a significant tipping point. It doesn't necessarily indicate anything about the true distribution of programming skill. It's just a cut-off point.

"Annual income twenty pounds, annual expenditure nineteen pounds nineteen and six, result happiness. Annual income twenty pounds, annual expenditure twenty pounds nought and six, result misery."


Once upon a time, I inherited some code from a colleague who left for another gig. This particular fellow was well seasoned, had been in the industry for 20 years. The purpose of this particular code was something similar to parsing json (not really, but close). This particular json always came from the same source and almost always had the same format. My prdecessor, not having an understanding of recursive descent parsing, wrote the parsing impl by counting parentheses at the ends of lines, which worked for the fixed input we typically recieved.

As time went on, we started to receive the same input from other sources, who of course had different layouts for the their json. Of course the code broke horribly. Myself being well practiced in recursive descent parsing, rewrote his parsing code in a few days, the original had taken him many months. I was perceived to be a miracle worker, because my implementation fixed the problems, and worked mostly error free from then on.

Was my predecessor a mediocre developer? Not at all, he was actually quiet accomplished in his area of interest, he simply wasn't proficient with this one area (parsing).

I'd like to see these discussions of 'rock stars' and '10x' evolve to recognize that perceived talent is really just experience in certain areas, wether that experience comes from personal interest, or job function is immaterial.


I understand the point you are making, but would like to add one more discussion point (which detracts a bit from your point but I think is still valid).

Sometimes a developer implements the bare necessary required solution to the problem, i.e. not an over engineered expensive solution.

We'll then state that his solution was poorly engineered and he wasn't a good developer, but it's not fair to look at his solution in hindsight and judge it by the amount of scope creep it could handle(which it obviously had to handle in hindsight).

Your succesor might write here in some time that your solution, while being appropriate for json, didn't use x technique and so couldn't handle XML input, and had you only known about x...

(This isn't critique of your comment, which I found insightful and positive, just one more factor to consider)


I inherited some Python scripts that pulled data from various sources and assembled web pages to present a coherent view of all of the data.

These scripts were very brittle, and slightly malformed data could cause them to fail entirely.

After about a year of maintaining these old scripts, one of the data sources got replaced with a shiny new database system, requiring a major rewrite to the scripts. So I just started over from scratch. Having seen the problems running and maintaining the old ones, I made numerous better design decisions, resulting in far more robust scripts, which are (I think) much more easily maintained.

But indeed, my predecessor was no fool. His scripts likely grew and grew and grew until they were a pile of hard to maintain code. I doubt that he himself would have advocated their design, but he just didn't find time / value toward rewriting them. I only rewrote them because I was forced to.

And I'm sure that my future successor could improve upon what I've done. For that matter, I myself could improve upon what I've done, but hey, it works well enough, and I'd be better off spending time on other things...


> (This isn't critique of your comment, which I found insightful and positive, just one more factor to consider)

It /is/ actually a critique. It isn't negative, but it is a critique.


Correct, but I do agree with the point the OP made as well.


I've got a sadder story. A client who I worked with has a great programmer (10x if you want.) He is so efficient that for years it just made sense to hand him a problem and let him solve it with code. The problem is that now, a few years later they have all these custom coded solutions for the things as standard as a DNS server and the rockstar programmer is unable to balance his responsibilities to maintain everything. It's a complete mess and inhibiting the client from getting anything done.

Other parts of the organization had more mediocre programmers, but they tended to adopt standard, 3rd party supported solutions because of that. At this point, they are in better shape then where the 10x programmer has been working.

The moral of the story is that being a great programmer isn't enough (or even that important) a large amount of the time. The secondary moral is that context is important. The 10x programmer in this story probably should have been in a faster moving sector than central IT for a large institution.


>> The problem is that now, a few years later they have all these custom coded solutions for the things as standard as a DNS server and the rockstar programmer is unable to balance his responsibilities to maintain everything.

The implicit error here is that the perception of this guy being great was flawed from the start. Anyone implementing one offs instead of adopting standard solutions is incompetent, pure and simple. He was't 10x, he was -100x.


Which I think was a different view on the same point as the article- you can have a successful career and make major contributions to our field even if you are a "mediocre" programmer. This is the converse- being a rockstar programmer isn't enough to be a great contributor.


This just illustrates how arbitrary the concept of a "10x programmer" is. Is a programmer 10x because they are individually extremely good at programming? Or are they 10x because they always couch their decisions properly in a sustainable corporate strategy?


> job function

Be careful with that one. It think it's precisely that type of programmer who has given rise to the 10x myth.

The guy who heard that "software development is a good salary," parroted his way through university and does the job without showing any interest in it is all to common. I've found that if anything is going to make a person barely competent at development (beyond trivial Excel and Hello World stuff) it's interest. If someone becomes a 10x hire it's because they put time into pet projects, reading papers and reading blog posts.

You can never be a good developer if you don't care about development. If you don't take pride in your work it's possible to fly under the radar and get away with doing as little [good] work as possible.

This applies to any industry, you can be a master craftsman if you commit no energy into becoming a master craftsman. If the 10x hire doesn't exist than the 1/10x hire most certainly does.


Thank you. I'd also like to image if Torvalds or Bellard or whoever your house god is would be thrown in a front end web project, would they still be a "10x"?

Probably not. They would emerge with a new web browser, not a working web frontend. That's my guess.


> Most people can't begin to program; conversely, most people can begin to run.

This is based on what? You really think that most people can't be taught the basics of "Hello World", or a function that multiplies two numbers?

Plenty of people write Excel formulas when faced with the need to. That's "beginning to program".


Yes, I agree with you, Excel formulas are absolutely programming. And yes, I agree, these are skills that can be taught.

But not that many people write Excel formulas. Up to 50% of people in the West don't have basic numeracy skills enough to do what you describe.


I would say that you're beginning to program when you write something that iterates or recurses. With a clear terminating condition: not merely spreadsheet formulas that contain a cyclic reference whereby you iterate until some numbers appear to stabilize.

In my mind, the recognition of repeated structures in a spreadsheet count as beginning of programming. This sort of thing: "if I create this pattern of cell references and then repeat it across the grid arbitrarily far, such and such a result/behavior will emerge". It is like recursion unfolded, and on the verge of being codified compactly.


Not only that, but Excel is the worlds most popular functional programming language.


In the context of 10x, I think we are talking about programmers that can begin to program _professionally_ vs. bike riding as a hobby.


And back in the day in the UK our CSE class at 13/14 had no difficulty learning programming and that was an assembly language with only Add sub and some jump instructions

For context the UK used to have CSE and O Level Exams at 16 the CSE ones where for the vocational track kids who would leave school at 16.


The bell curve is not a curve of programming ability of ALL people - for any given skill that would obviously be massively skewed to zero skill, since most people wouldn't be participating.

The curve is for people who HAVE programmed. It is irrelevant what the barrier is - the curve is only describing people who have crossed that barrier and written some code.

You wouldn't include dogs in a bell curve of human height - the thing being measured first has to be a member of the group that is being described.


What about this model: Say programming skill is more or less proportional to the time spent programming. Further say that at any moment a person has a certain probability of leaving the industry. In that case the skill curve over the population should be a geometric, hockeystick like curve. It wouldn't make sense that the majority of people had experience in the 5-8 years interval say.


It is still not likely to be bell shaped.

Of course there is a /distribution/ and of course it is not shaped like a vertical line -- but it is very unlikely to be a normal distribution.


Why?

In general one would assume that a distribution of this type would be normal absent evidence to the contrary right? What is that evidence to the contrary?


If we take robinrob's point, and measure only "people who have programmed", then I would still expect a very positively skewed distribution. There are really a lot of people in the "I tried it and didn't like it" category.

For almost any boundary you choose, a majority of people will sneak in just over that boundary, leaving a long one-sided tail.

This skewed distribution would appear even if you cut a Normal distribution.

A Normal distribution occurs when everyone is expected to be at the same average level but could move up and down equally due to many random factors. When learning skills, people generally start at a 0 level and generally move up. That won't be Normal.

If you take a cohort of programmers with exactly the same experiences, that could plausibly follow a Normal distribution of skill. If you take e.g. all professional programmers, that won't.


> A Normal distribution occurs when everyone is expected to be at the same average level but could move up and down equally due to many random factors. When learning skills, people generally start at a 0 level and generally move up. That won't be Normal.

Aha, yes that's an excellent point.


If you chop off the left side of a bell curve, is the remaining part suddenly bell shaped?


> Most people can't begin to program

Where did you pull this assertion from? There are a wide range of skills and behaviors that go into programming, and I see those attributes in people from all walks of life. Programmers are just the ones who've sat in front of a computer long enough to apply them in the same context.


I have as much data to back up my point as you do yours but IMO for basic CRUD app type stuff (ie a large bulk of programming jobs) most people could be trained up to be relatively competent. Note that these are jobs I wouldn't want but they are legion and they're not intellectually challenging.


> The tech industry is rife with sexism, racism, homophobia, and discrimination.

Talking about myth that needs to die. The tech industry is not rife with the aforementioned issues, they might exists, but not any more than other industries.


That's the sort of statement that needs evidence to show it's true. Anecdotally, from what I see based on 20 years experience working in software, it's a very, very discriminatory industry. People who are from an ethnic minority, women, and gay people find it much harder to find a job. Managers (particularly non-technical managers) assume that those people won't be as good or that they won't fit in with the rest of the team or the company culture. Startups are much better than established companies but it's still a problem.


People talk about it like it's a subjectivity problem, that we need to "change our attitudes" about genders and minorities in tech. I don't buy it, among the various companies I've worked for in my half decade in the workforce, every single coworker has been surprisingly open minded and kind to others (and more than a few were gay as well). Some were certainly pretentious and condescending, but that's as bad as it got. I know genuinely kind people vs. bigoted douche bags, and of the latter there wasn't a single one.

The thing is, I only interviewed 2 females during the whole 5 years. I interviewed 0 blacks or latinos the whole time too (Indians, Asians, other white males - plenty). I just have a hard time buying that it's an "attitude" problem among programmers, and that the core of the problem isn't a broader societal one, where for whatever reason, minorities and women just aren't pursuing programming, or they're being barred or discouraged by society. We should all do our part to help where we can, but continuously blaming other milquetoast white male programmers for this problem seems a) cheap and b) diverting attention from the real cause of the issue.

I think what's really going on is we don't have a way of addressing the problem ("broader societal change") or a very good way of defining it ("broader societal issue"), so people take the easy way out and just point fingers at a group.


I can say from experience that white guys often simply do not see behavior that is discriminatory or harassing.

I have known several people who were competent, professional, pleasant, open-minded, and kind in every interaction I ever witnessed--but who were eventually fired for well-documented abusive interactions with women or minorities. As one woman colleague said to me, "well of course he was always nice to you. You're a guy."

This comment is just to say: no one is omniscient. It's possible (I would argue likely) that there are negative interactions within the industry that you might not be aware of, because they don't happen around you.

There are a lot of stories available online from people who are women or minorities, documenting many implicit and overt problems they have faced in the tech industry. So, there is a way to learn about these things, but we have to be willing to believe that these people are honestly recounting what they have experienced, even if it is unfamiliar to us personally.


> I have known several people who were competent, professional, pleasant, open-minded, and kind in every interaction I ever witnessed--but who were eventually fired for well-documented abusive interactions with women or minorities.

Sorry to be harsh, but your argument about secret evil behavior is ridiculous, as well as relies on a claim that I am naive. I don't know how old or social you are, but I've lived long enough, and being a lot more social than most, gotten to meaningfully know enough types of people to see good eggs from bad, and to tease out their political leanings and relations to "the other" pretty clearly. You obviously never know if someone is in fact a secretly 'abusive' person, but the # of people that are in fact secretly bad flying under the radar despite a full on appearance of sincere care for "the other," is extremely small.

(Your claim about secret evil behavior is probably 1-3 out of 100 at most.)

We need to have the tougher discussions about what political, socio-economic actions can be taken to bolster minorities in tech, not what "subjective changes" we can try to force onto milquetoast white males, which is actually a much "easier" discussion & more "appealing" narrative for a host of reasons, hence people gravitating towards the easy way out.

If you feel strongly that I am wrong, I encourage you to submit citations and data to back up your argument, that there is a huge contingent of oppressive white programmer males, and that such males are the root of the minorities in tech problem.


Without a willingness to consider that there are experiences you don't already know about, there's not really a way to have this conversation.

If you're interested in other perspectives, they are not hard to find. A Google search for something as simple as "experience of women in tech industry" will get you going.


You're trying to invalidate my experience, claiming that seemingly genuine people are often secretly abusive to minorities. That's what I'm reacting against.

I did say if you feel strongly about this, no doubt you have lots of sources to present which I am more than willing to look at. However, saying 'Just Google it' makes me think maybe you're being driven simply by intuition.


I'm not trying to invalidate your experience, I'm trying to offer another perspective. Clearly it is not welcome.


Well, I certainly welcome any evidence or well presented arguments. Like most people, I don't appreciate bold claims based on intuition.


How is this any different than all industries? Why should I believe this discrimination is worse in my field?


Why should I believe this discrimination is worse in my field?

Because you've read testimonials of people who say they've been discriminated against and you haven't casually dismissed them all?

As a white, middle-class male developer who hasn't ever been discriminated against in my entire life I find it hard to empathise with people facing discrimination, but that doesn't mean anything as all the evidence makes it abundantly clear that they do. I hadn't seen it first hand until I heard a manager at a relatively big company talking about how he wouldn't hire women because they'd be a distraction to the rest of his team. If you can ignore the weight of all that then you're quite a big part of the problem. At some point you have to stop dismissing people and start trying to understand what's going on, and try to help make the industry better.


Why does it need to be worse to deserve attention? To paraphrase Office Space, do we really want to do the bare minimum?


It doesn't, but a lot of people try very hard to imply that it's worse in the technology industry. If this is not the case, then this sort of rhetoric is just adding noise that distracts attention away from just fixing the issue.


I don't know the answer, but I think if we approach it scientifically, the theory that the tech industry is not significantly different than others is the correct null hypothesis, so the claim that it is worse holds the burden of proof.


Why does my statement needs evidence and his does not? I have not seen a single piece of evidence that supports the claim he makes, while mine and the experience of many directly contradicts it.


Agreed. I did a couple SW projects in sawmills. I'll take the tech side over the sawmills any day.


But we are practitioners in _this_ industry. We should be concerned with issues that exist within it, regardless of how more or less prevalent they are elsewhere.


That's not the issue at hand. The idea that the tech industry is somehow extremely sexist and racist is not true.


But that's not the implication in any of the sexism-related articles that occasionally make there way onto the front page. It's always "tech is literally a boys club where women are assaulted and fired with no recourse," never "there are issues that we should address, but it's really not that bad compared to just about any other industry."

To use contrived numbers but a common example, if 90% of applications are male and 10% of applicants are female, hiring the women 5% of the time is probably a sign of some latent issue that can be addressed. It is not at all evidence of the same kind of rampant, malicious sexism that would be the case if the applicants were split 50/50 yet still hires were 95% male.


Remember the 'brogrammer' movement a few years back? Companies were actually starting to advertise for brogrammers to the point where I called out a company on HN doing it.

What other industry have you heard of that came up with such a sexist movement like that?

There definitely was a problem, though I think it's getting better. The big problem was that nerd culture, which was predominantly male until recently, was very closely tied to programming for several decades, making the industry fundamentally hostile to people not from that white/asian nerd male culture. Brogrammers were a bit of a backlash against that, but in a still male-orientated way.


And even then, programmers of Asian descent apparently get sidelined into the purely technical work, to the exclusion of managerial or the like.

EDIT: s/those/then/.


My own experience, which is of course anecdotal, is that the tech industry is strongly sexist and to some degree, homophobic. I cannot compare with other industries which I'm less familiar with, but it seems there are less sexist industries out there.

Women must demonstrate double the smarts of a male developer in order to be considered their peers. If a male developer is in a bad mood one day, that's annoying but understandable. If the same happens to a woman, "it's one of those days" -- which is infuriating. Women in most places I've worked are consistently thought of as naive, newbies and "not as good". The very few women who are unarguably good (and therefore assertive in their knowledge) are considered "bitchy".

Sorry, but tech jobs are pretty much boy's clubs, and women still have it pretty rough there.

PS: my anecdotal evidence includes my wife's experience. After three jobs in a row with bad experiences (which match what I see in my own job), it's hard to call this a coincidence. In one job she was the team leader of a small team, but whenever the CEO met with them, he looked at and spoke directly to the senior male developer of the team as if he was the lead, in some cases even "forgetting" to tell my wife he was calling a meeting at all.


Serious question, how do you know it is not your own perception of attitudes at play here. Similar question is how do I know (who are not aware of the same disproportionate amount of sexism / racism / homophoby) that I am not simply blind to it / unaffected?

Similarly you could argue the industry has a feminism problem, and I could point you out to various news articles of incidents.


You are right: I do not know. I'm aware this is only anecdotal evidence.

I can only say this: I do not know anyone from my own work environment and friends in the tech industry who is male and has the same kind of problems as my wife. Conversely, I know plenty of women mistreated in similar ways. I only need to listen my coworkers ("so-and-so got the job by waving her ass at the boss"). I once had a transsexual coworker -- which is tremendously uncommon -- and all I ever heard about her were jokes about her sexual orientation. Not in her presence, of course. She later quit the job, and to this day I don't know if she was any good at it, because I never worked directly with her and I never heard anyone commenting on her technical skills... I guess they were not relevant to anyone.

Don't take this the wrong way, but I have to say it: the notion that our industry has a "feminism problem" is so ridiculous it leaves me speechless.


Nah I won't take it the wrong way, and I'm not really arguing for a feminism problem, though I do recall an incident or two some months back at a gaming convention or something.

Point being I am male too, I don't think I or my coworkers suffers from any -ism, but I might be unaware of it.


Thanks for taking it the right way, then :)

I think us male gamers and techies are very insular, even when we think we're not. I'm not implying what we do is done out of malice; I think in many cases we have a cultural blind spot... but this is no reason to stop fighting against it.

In my opinion, the right reaction is to stop and think "well, maybe there is something we can do to make our environment less hostile to women and minorities. Maybe I don't see what's the big deal, but it's there anyway." And it'd be a huge win if we can think "this woman knows way more about $PROG_LANG than I do!" and not get defensive or think she's bitchy or bossy, especially when we would accept a similarly assertive personality from a male hacker.

The wrong reaction is to get all #GamerGate about it, think it's a feminist conspiracy, and get all outraged and defensive about it -- "well, I don't discriminate against women, so this cannot be true!" Unfortunately this reaction seems to be all too common.


I haven't seen much homophobia, but the number of minorities and women tech employs contradicts your claim, not to mention my own personal experiences.


This was just posted a few weeks ago, refer to discussion here: https://news.ycombinator.com/item?id=9486391


True. Its interesting to observe the results of the discussion, the conclusion and relevant tangents, not just have the initial (emotional?) discussion.

The tangent of the theoretical bell curve applied to employers is interesting. Most job positions are mediocre, which explains why things work fine when an average dude gets an average job, despite weird demands for rock stars.

There were also interesting related dating analogies, if there actually were a 1M shortage of (insert your preference) then when everyone's personal ads demand only 10/10 supermodel rock stars need reply, they better get used to being very lonely or start rephrasing their personal ads. "Looking for rock star girlfriend named Taylor Swift, only she need apply" yeah good luck with that, better hope there's some good star trek reruns this friday night cause you aren't going out.

Another tangent was strange selection criteria have strange results where you end up with people having a very high opinion of themselves and being very good at selling themselves, but not being selected for actual real world talent. The author almost but not quite makes the point that short term flashiness in an interview has little correlation, perhaps none at all, with likelihood of successful long term execution. Or you end up with people suffering from feelings of inadequacy and impostor syndrome, what a lovely workplace (sarcasm)

A final interesting discussion tangent was there is no shortage or even theoretical shortage, whenever anyone in management says there's a shortage of a million workers, they always truncate that statement before "at our desired wage of $7.25/hr" or "who are willing to work for lunatics who can't lead starving dogs to raw meat in an open office next to the foozball table" or "willing to take an immense standard of living hit". There are, of course, plenty of fish out there, just not enough desperate or spineless ones. Gimmie an office with a door so I can concentrate, and $350K to handle the staggering cost of living hit, and a "rock star" boss (LOL), and I'm there. Oh wait you're offering less than I get here to work in an insane call center-like environment in one of the worlds most expensive neighborhoods at a rudderless company, LOL enjoy your "shortage", although everyone else is fine.


Containing this bizarre observation: https://news.ycombinator.com/item?id=9542876 It's a pity one can no longer comment on that thread...

I wonder if it's common for imperative programmers to associate programming skill with an imperative mindset? The flawed (later withdrawn) study Jeff Atwood linked comes to mind. http://blog.codinghorror.com/separating-programming-sheep-fr...


This keeps coming up on HN, which leads me to think a lot of people don't trust the 10x language, and/or they feel inadequate in some way and want to feel better about themselves.

In my experience, there are 10x programmers (just like there are 10x musicians and 10x doctors and 10x pretty much everything). Of course, a 10x functional developer isn't inherently a 10x OOP developer, just like a 10x trumpeter isn't inherently a 10x drummer.

I don't think we need to kill the 10x developer myth, but that _all_ we need are 10x developers.

I think a much more interesting discussion would be what a really good 1x developer would look like. I.e., what is a good baseline? How do we nurture more people to reach for competency? And in growing the overall talent pool, identify the 5x, 10x, or even 100x developers.


I just take issue with the nomenclature. It fits in to a general narrative that I dislike in our industry. Of course there is a long tail in terms of productivity, that's just how life is. But turning that into a buzzword does a great disservice.

You don't see companies in other industries pretending that their product is a special snowflake and demanding rockstar 10x whatevers. No, they manage to be more mature about the whole process.


IB, Management Consultancy and Law certainly have that aspect - even if you are realy paying $2000 a day for a wet behind the ears MBA with no experience.

If your a rich person with legal trouble you want a rockstar lawyer like Cherie Blair as your Barrister. Just Like the NI journalists who got off from bribing cops - they had the most expensive lawyers money can buy


Though Law is probably not a good example of a non-toxic environment. (Source: TV-series)


I didn't say it didn't exist. I was saying that the verbiage is different.

IOw I have no problem with accepting that not all people are created equal, I just find the way that notion is handled in our industry to be childish


How is it handled differently in tech vs say big FTSE 100 companies.


Not to mention the culinary industry, fashion industry, sports industry, etc. etc. etc.


Quite you don't get bananas thrown at BME techies do you as happens to Black Footballers


The problem with the terminology is that it's tied to a number. Why not just call them ”good” or ”great” like every other profession does?

There is no one who can consistently provide a 10X increase to a company's bottom line, period. That might happen in rare cases when the previous setup was so catastrophically bad that any competent developer could have made a big impact with common sense changes. But no one can go from company to company and consistently have an order of magnitude impact on anything.

If the myth were true then a ”10X” developer would be able to go to Google, Twitter or Facebook and make their service 10 times faster or more profitable. Does that sound even remotely realistic to you? Sure, in a small shop one person can have a disproportionate impact. But there are no 10X developers, only 10X situations.


I have never heard of anyone else who uses the term the way you do. "10x" usually refers to those contributing ten times as much to the bottom-line compared to some standard "x".


As someone that has been involved in hiring processes in a South American country. I can say that the "myth" does hold truth.

For each position I tend to filter 100 people just to have a couple of real candidates. The real candidates weren't spectacular but they could get the job done in a reasonable time frame.

Once in a while there were a person who can get the job done with less supervision, better quality and faster. Usually that person could build systems within the software. Something like :

http://xkcd.com/974/

That person is the one that gives some gas to the "myth". A good developer that is probably at the %90 percentile.

The problem with people in denial is that they have an strong bias when (s)he compares with their coworkers (who probably are just smart or smarter). Forgetting that for each coworker there were a lot of developers that applied and couldn't solve a fizzbuzz.

If the myth weren't truth I don't think there would be so many people failing the fizzbuzz test: http://blog.codinghorror.com/why-cant-programmers-program/

You could argue that those people are not developers but the truth is, they are often graduated from college and somehow manage to get hired in some place.


I think the biggest driver of the "10x programmer" concept, the thing that validates it, is the related concept of the "negative net productivity programmer."

Some programmers, in some environments, produce less than they cost to supervise and for others to fix their mistakes.

Some programmers, in some environments, look productive because they do the 20% of the work that gets you 80% of the way there. They start a whole lot of projects which almost work, then it takes a really good programmer a lot of time to repair the relationship with the customer.

At this point in time, however, I see the productivity of the organization as the real issue. Even a 10x or 100x programmer is only going to be that way if they are in a zero-bullshit environment. It takes one bad co-worker or bad boss to turn somebody like that to an 0.1x programmer. A lot of it is choosing your environment.


It sounds like you're suggesting that the person who gets the project 80% done and needs a "closer" to help finish it is a bad thing. Isn't this a perfect example of good teamwork?


>negative net productivity programmer

Such a programmer would be a lot better at selling their labour than a 10x programmer.


As much as I'm pro-diversity, pro-inclusion and whatnot, I don't want to be associated with people who self-labeled themselves as "mediocre programmers", even if that group only includes Mr Kaplan-Moss. I want to aim to be as good as the best people in the industry. I think every profession needs its heroes to motivate everyone to move forward.

Will I be more insecure and anxious because of that? Even if I will, it's none of Mr Kaplan-Moss' business. I don't need him to be protected from the real world where people have different level of skills; sometimes higher than mine, sometimes lower.


"Even if he were mediocre, there are a lot of mediocre [programmers]. They are entitled to a little representation, aren't they, and a little chance?"

http://en.wikipedia.org/wiki/Roman_Hruska#Mediocrity


Are we doing this again? The whole thing is a straw man argument which deliberately conflates having talent with acknowledging talent.

It does so with such patently absurd examples (people who's totally obvious programming talent is not recognized for some insane, usually just sexist, reason), that one assumes the author already knows he's making this shit up.

Added to the mix is the red herring about being a "mediocre programmer". Being a mediocre musician still requires talent, mediocrity doesn't mean shit when asking the question if something requires talent. I personally have a talent for drawing an painting, but I'm a shit artist because I have no artistic creativity and I haven't made the effort to hone my skills.

Although I seriously doubt it, there may be a good argument to be made that programming does not require talent. But this isn't is, this is just political garbage with no merit whatsoever.


I wish people would stop insisting that there is such a thing as talent.

People who try hard at something and put a lot of time in to doing and learning about that thing, will improve.

Some people are a lot more interested / motivated and so will try harder, spend more time and will be better than others. This should not be mistaken for some innate "talent".


It's because there is an enormous body of evidence that talent exists. It exists in the form of different levels of cognitive processing, in different levels of hand eye coordination, in, you get the idea. We know this exists. We can voluntarily affect cognitive processing with cocaine or oxygen deprivation, and involuntarily affect it with things like strokes or head damage (some head damage leads to mastery of skills like music, though most usually it is damaging). Any number of tests show that people learn at different rates, rates predicted by cognitive abilities. I've excelled at things I didn't much care about or practice, and lagged on stuff that I put my heart and soul into.


I agree, and even if there _is_ talent to some degree, insisting that people simply aren't talented enough for something just does us a disservice when they simply need to work at it.

"Oh no, I'm not that talented, I couldn't possibly do that!"

It's just a way of shooting people down prematurely, either by the people themselves because they believe they simply can't, since they believe it's some stupid innate thing, or because others tell them "you're not talented enough, stop trying.".

It's dangerous and it deprives us of a lot of actual talent, who simply believe they could never be.

Not to mention the fact that people move this to a ridiculous degree where they say "10x programmer", but this doesn't necessarily mean they'll be a 10x programmer in all of the field, merely where they've been so far. This needs to stop.


I've noticed the same thing: amongst the people I know, proficiency in programming appears to be almost directly proportional to the time spent doing it. Same with proficiency in visual arts. Perhaps it'd make more sense to refer to some programmers as 10x interest programmers; they often find it more interesting than hanging out with friends, more interesting than watching tv, more interesting than family stuff, so of course they're gonna put a lot more time into it than most and hence wind up a lot more skilled at it.


> It's not a talent .... it's just skills to be learned

This to me is a bit of a contradiction. "Talent" to me is what says if you will take a long time to aquire a skill or not. Almost anyone can reach a good level of skill of something. Not all can be pro athletes without a certain genetic talent, and I believe the same would hold for, say, being a mathematician. But not everyone has to be a pro athelete, nor a top .1% programmer (or anything else).

> This belief that programming ability fits into a bi-modal distribution

Who believes that? Is it really a widespread belief? I could see why you would think it was a bell curve or a power law of some kind. But bimodal? why?

> Things like design, communication, writing, and debugging are needed.

Yes, those are the things I like to call programming.


I'm an example how this myth can destroy you. I was programming for 6 years in normal projects and I thought I was not talented. I left job, came to research degree. Now I realized I'm terrible at maths and advanced algorithm techniques. I think about going back but since it has been 3 months I haven't worked in a company, I feel I am a very bad programmer and no one will hire me. I'm depressed and paralyzed. All I do all day is look into HN and read articles, think how all these people are talented and I'm so dumb.


I think fridek's suggestion is a great one. I'm not about to suggest that you are lazy or not hardworking. However, you seem to be going down the same path both myself and my sister have. You see the way your peers are doing and you feel unaccomplished by comparison. You feel that you need to catch up but can't, and so you don't take the effort to do so.

I went through the same problem with LinkedIn some years back. I'd start making connections with high school/university/'social circle' chums who were 'already' working at Microsoft and Deloitte and IBM and the New York Times and thinking I was worthless for 'still' being in school.

I've had the pleasure of touching base with some of these folks as they've come back into town over the years and it was so striking to hear some of their frustrations about their careers, and how they were feeling unaccomplished compared to some of their peers and forebears. Moral of the story: perceptions are not reality, and the perception that you are worthless will only hurt your productivity because you will feel that investing time into bettering yourself is not worth it. It's not a race.


There is more worth in a dumb but hard-working person, than in a smart and lazy one. Too many people strive to be the smartest around but few try to work hard and consistently.

I can't be a judge of how smart you are, but being hard-working is a choice you can make. Blocking HN is a good start.


> I divide my officers into four groups. There are clever, diligent, stupid, and lazy officers. Usually two characteristics are combined. Some are clever and diligent -- their place is the General Staff. The next lot are stupid and lazy -- they make up 90 percent of every army and are suited to routine duties. Anyone who is both clever and lazy is qualified for the highest leadership duties, because he possesses the intellectual clarity and the composure necessary for difficult decisions. One must beware of anyone who is stupid and diligent -- he must not be entrusted with any responsibility because he will always cause only mischief.

- Kurt von Hammerstein-Equord


The same quote is often attributed to Napoleon and probably suits the army well. There is also a world of a difference between enthusiastic and hard-working. I'd say being energetic falls into the same bucket as being smart (lets call it 10x things), whereas working steadily or being careful and methodological into the other, of things useful for building larger structures.


How about just apply for a job? Most of us have those doubts but we get by just fine. If you're suffering from depression you should seek professional help.


The worry that we're running out of programmers is rather overblown and proposed solutions are mostly counterproductive. We're not living in a planned economy - salaries and free movement of people will not allow there to be a gap for long. This is one of the greatest strengths of capitalism and if that sounds tired and obvious it's only because it is but that doesn't make it less true.


We certainly haven't run out of programmers.

It does seem like we've run low on companies willing to invest the time and money in their employees in a way that would create the "10x programmers" that they all want, as opposed to horse-trading the relative few that already exist.


Nothing I dislike more than the ads looking for a "rockstar programmer". I don't know if this is representative of where I live, but we use a simple assessment to assess candidates (create a DB and tables, submit a form, put things in the database), and the number of people who can't do that in a reasonable timeframe is like 14/15. And even then, I've seen people hired who couldn't debug (this usually hints lack of experience as opposed to inability to code), and we had one candidate who did well on the assessment but whose personality was too confrontational. This assessment was similar to the one that was used in my last job, where results were somewhat better (1/8 people did well on the assessment, though that one didn't touch the database).

So in my extremely narrow experience, I haven't seen a 'talented' programmer, and I doubt there really is such a thing


Was this for entry level first jobers? I remember some one else (in the uk) saying that doing a basic join of two tables was not a given even for experienced developers.


The actual talk is available. I don't know why we should discuss an article that basically explains the talk instead of watching and discussing the talk: https://www.youtube.com/watch?v=hIJdFxYlEKE


> Kaplan-Moss then asked what a 10x programmer looked like and put up a series of pictures of "Mark Zuckerberg". > The first was actually the actor who played Zuckerberg in The Social Network movie, while the second was the > >Saturday Night Live cast member who satirized the actor in the movie. The third actually was Zuckerberg. All three > were young white men, which is the archetype of a "real programmer", he said. > > When we see someone who does not look like one of those three men, we assume they are not a real programmer, he > said.

So the fact that a businessman, and two actors portraying that same businessman, are all white males means that programming culture has to apologize for the impression of its white-male-ness?


This article is submitted over and over again, and discussed over and over again, making the same points over and over again.

It's really annoying.


Some issues are just 10x others, I guess.


I liked the article, but I may be coloring it with my personal biases: while I have good software engineering skills and have had a wonderful career, I have never considered myself to be a really great programmer. I just try to work with people who are better developers than I am and I really enjoy my work.

The author has a good open source track record and is the head of security at Heroku. I think he was also talking about other skills for success in the tech industry besides just programming.

Obviously there is a vast difference in skill levels between developers, and some people should probably not work in the field, but good attitudes towards work and continual learning go a long way to success.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: