News for hackers. Stuff that matters.
Re:The programming talent myth by learnstats2 on Monday June 01, 2015 @08:07AM (#9637944)
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."

Re:The programming talent myth by marktangotango on Monday June 01, 2015 @08:55AM (#9638151)
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.

Re:The programming talent myth by kabouseng on Monday June 01, 2015 @09:10AM (#9638225)
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)

Re:The programming talent myth by tjr on Monday June 01, 2015 @09:58AM (#9638570)
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...

Re:The programming talent myth by peterfirefly on Monday June 01, 2015 @09:38AM (#9638408)
> (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.

Re:The programming talent myth by kabouseng on Monday June 01, 2015 @10:22AM (#9638732)
Correct, but I do agree with the point the OP made as well.
Re:The programming talent myth by topkai22 on Monday June 01, 2015 @10:21AM (#9638725)
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.

Re:The programming talent myth by marktangotango on Monday June 01, 2015 @10:27AM (#9638773)
>> 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.

Re:The programming talent myth by topkai22 on Monday June 01, 2015 @11:14AM (#9639206)
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.
Re:The programming talent myth by snowwrestler on Monday June 01, 2015 @05:47PM (#9642400)
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?
Re:The programming talent myth by zamalek on Monday June 01, 2015 @09:48AM (#9638484)
> 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.

Re:The programming talent myth by xorcist on Monday June 01, 2015 @10:29AM (#9638786)
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.

Re:The programming talent myth by jasonwocky on Monday June 01, 2015 @08:22AM (#9637992)
> 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".

Re:The programming talent myth by learnstats2 on Monday June 01, 2015 @08:32AM (#9638030)
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.

Re:The programming talent myth by kazinator on Monday June 01, 2015 @08:54AM (#9638143)
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.

Re:The programming talent myth by benedikt on Monday June 01, 2015 @10:47AM (#9638931)
Not only that, but Excel is the worlds most popular functional programming language.
Re:The programming talent myth by tedmiston on Monday June 01, 2015 @10:28AM (#9638779)
In the context of 10x, I think we are talking about programmers that can begin to program _professionally_ vs. bike riding as a hobby.
Re:The programming talent myth by mauricemir on Monday June 01, 2015 @08:59AM (#9638169)
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.

Re:The programming talent myth by robinrob on Monday June 01, 2015 @09:01AM (#9638181)
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.

Re:The programming talent myth by thomasahle on Monday June 01, 2015 @09:16AM (#9638274)
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.
Re:The programming talent myth by peterfirefly on Monday June 01, 2015 @09:40AM (#9638426)
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.

Re:The programming talent myth by CPLX on Monday June 01, 2015 @09:51AM (#9638510)
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?

Re:The programming talent myth by learnstats2 on Monday June 01, 2015 @09:59AM (#9638579)
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.

Re:The programming talent myth by CPLX on Thursday June 04, 2015 @11:11AM (#9659804)
> 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.

Re:The programming talent myth by peterfirefly on Monday June 01, 2015 @03:57PM (#9641680)
If you chop off the left side of a bell curve, is the remaining part suddenly bell shaped?
Re:The programming talent myth by intortus on Monday June 01, 2015 @10:54AM (#9638999)
> 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.

Re:The programming talent myth by jghn on Monday June 01, 2015 @08:37AM (#9638064)
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.