Live data from Hacker News

The programming talent myth

lwn.net

71–80 of 354 posts

Re: The programming talent myth

#71

The problem with the argument that "Programming skill can't be bimodal because that would be elitist and make me feel bad about myself being an elitist" is that there's a lot of evidence that programming skill is bimodal. Look at fizzbuzz as an obvious, if not entirely complete, example. Would it make us all feel better if programming skill weren't bimodal? Sure. But a roomful of people clapping at that proposition d…

> Look at fizzbuzz as an obvious, if not entirely complete, example. I am not entirely convinced this is not partially a resume screening and talent pipeline problem. Has anyone ever given Fizzbuzz problems to everyone who applied to a position? If you haven't, have you ever considered that your screening process may be broken in the sense that you are passing too many liars who then bomb the Fizzbuzz portion, but wh…

I find this idea that there are lots of fake programmers kind of nuts.

Presumably, when you do a resume sift, you look for people with either a qualification or work experience. Either they somehow faked it through those, or your test is bad. Fizzbuzz actually tests if you know what % does. Is that critical knowledge for a webdev?

Re: The programming talent myth

#72
post #11

The problem with the argument that "Programming skill can't be bimodal because that would be elitist and make me feel bad about myself being an elitist" is that there's a lot of evidence that programming skill is bimodal. Look at fizzbuzz as an obvious, if not entirely complete, example. Would it make us all feel better if programming skill weren't bimodal? Sure. But a roomful of people clapping at that proposition d…

Isn't this akin to claiming that drawing is bimodal because most people can't draft a portrait in an interview. Or, worse, that there is an element of gender influence in ability because, "otherwise there would be more female programmers." I certainly agree that there is likely a gulf between good and great. Probably another above it. I'm curious to know what actual evidence there is.

Most people can't draft a portrait in an interview for a programming job. Most people interviewed as portrait artists would, as would quite a lot of people in related trades (such as graphic designers).

The fact that programming interviewers give this kind of test and it's widely failed shows what a bad state objective evaluation of programmers is in.

Re: The programming talent myth

#73
post #31

>>Part of the problem there is the lack of a way to even measure coding ability. "We are infants in figuring out how to measure our ability to produce software", he said. What are our metrics? Lines of code—what does that measure? Story points? "What even is a story point?", he wondered. Indeed, what is programming talent? What is a 'good' programmer? What is a 10x rock star? These notions are similarly ill defined.…

I suspect it will always be a largely subjective measure mostly determined by the respect or accolades of one's peers or the satisfaction of one's target audience/customers. I think StackExchange's "reputation" system is probably the most accurate discrete measure available.

For me, StackExchange's 'reputation' is inversely correlated with that.

Don't want to attack the contributors, but honestly, the higher levels of reputation just either show me that he either has too much free time outside of work (valid, but doubtful) or they spend work time answering questions, which for me goes against the 10x productivity programmer mantra.

Re: The programming talent myth

#74
post #39

There is a myth, but the myth propels reality. Take this line in the article as a reason: > That leads people to be working crazy hours at work, to be constantly studying programming topics on their own time, and so on. This attitude will create ninjas/rockstars/whatever, even if the original notion isn't true. Folks who spend every waking hour thinking about and learning about something are going to be better than t…

This attitude will create ninjas/rockstars/whatever, even if the original notion isn't true. Folks who spend every waking hour thinking about and learning about something are going to be better than the folks who don't do that level of effort. It will create people who believe themselves to be something special, sure, but that's all you can say for certain. Where are the results that prove it is deteministic? For eve…

One can say, with absolute and unwavering certainty based on what we know about practice, that folks who spend every waking hour thinking about and learning about some specific skill will tend to display a higher level of competence than those who don't.

Obviously there will be folks who practice incorrectly, and there will be folks who hit a skill ceiling, and there will be a myriad of folks who aren't maximally benefitting from their practice for one reason or another, but if you take a group of people who study and pit them against a group of people who do not study, the group who studies will be more proficient at the given task.

Re: The programming talent myth

#75
post #6

> 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. That leads people to be working crazy hours at work, to be constantly studying programming topics on their own ti…

99% of the software that actually matters - medical devices, air traffic control, credit card processing, phone switches, you name it - is written by people who work 9-5 and don't think about their jobs outside work. If all the websites programmed by "rock stars" shutdown overnight, the next week everyone would have forgotten they ever existed.

> 99% of the software that actually matters - medical devices, air traffic control, credit card processing, phone switches, you name it - is written by people who work 9-5 and don't think about their jobs outside work.

I don't believe that, you have some evidence for this claim?

Re: The programming talent myth

#76
There's a lot of scenarios that could produce what we witness, and eliminating one doesn't prove which of the others it is.

It could be the case that programming talent is bi-modal or multimodal, but each mode is itself a normal distribution. There would be a "talent" involved, but it would still produce a normal distribution once you cut the bottom off. This is suggested by such things as the bimodal distribution on the handful of peer-reviewed papers that at least opened the question about whether incoming freshman could be sorted into "those who could get it" and "those who can't" buckets by a simple multiple choice question at the beginning of the test. (I do not claim they have solved the problem, but it is an interesting data point. This is that paper that was extremely widely misunderstood by professional programmers as being a test that required the students to guess in advance how things like "equality" worked in programming languages, when in fact it wasn't about being "right" about programming languages but about being able to form a consistent theory about how such things might work.)

It may be the case that talent is single-mode normally distributed, but there's also a threshold necessary to function, which can be at any arbitrary point along the curve; I'd suggest evidence would suggest it's certainly above the average as with all due respect to my fellow humans it does not strike me as the case that more than half of the human race can simply become professional programmers. (This is less elitist than it sounds, because in many cases supply & demand is such that only the best can become professionals anyhow, and that's not just "NBA basketball players", it's even things like music composers or painters. If you are a 50%-th percentile composer, do not try to make a career out of it. I say this as one who has faced down this choice personally.) The resulting truncated-normal distribution of talent in the professional space would have a lot of people piled up on the bottom, being just barely able to cross over the talent bar, and then a long-tail effect where extremes would be more likely than you'd naively expect. Further, courtesy of the Central Limit Theorum, as this initially non-normal distribution of talent went through the usual random vagueries of life and professional career, it would be the case that the curve overall would become more normal, but would be quite likely to retain the longer tail and never be quite normal. This is suggested by the fact that this rather does sound like the programming world we live in.

Further if we're going to go all social-engineering on the question, I'm not particularly interested in telling people pretty lies to make them feel good, or worse, make ourselves feel good about how good a person we are, while sucking them in to a career that does not suit them. If talent exists and matters, then it behooves us to say so and give people the ability to examine themselves with eyes open and ask if this is the right thing for them, or if they should pursue another career which they may find more satisfying. There is, of course, a lot of room for "average programmers", almost by definition, and "average programmer" already likely entails "above average talent when the whole population is considered".

Re: The programming talent myth

#77
The "10x" effect is real (not a "myth") but it has more to do with skills and exposure than innate talent. (It's also context-specific. I'm a 10x when I get to pick the tools, but a sub-1x on enterprise Java because I just can't bring myself to give a fuck about some Spring/Hibernate/POJO legacy mess.) That's what missed in this conversation. Yes, those mediocre Java programmers (CommodityScrumDrones) really are a drag, but it's not low IQ that has made them what they are, and they're not genetically destined to remain that way. That aspect of a person can change, and quickly.

At any rate, I've met plenty of high-IQ people who are just awful programmers. Smart as hell, but really bad at writing code. I think that attitude is a major factor. If you think programming is important and genuinely want to learn it (and not just "good enough to get a job") then I think it's quite possible for a lot of people to learn how to do it well enough.

Innate talent might matter at the extreme upper end of competitive programming. Just as most people can run a marathon with enough work, but very few will ever get below 3:00, I'd believe that the percentage of people who can reach the top in programming competitions is smaller than the percentage who can program adequately. So there's probably a talent ceiling there, just as there is in athletics. But real programming is more cooperative than competitive and there are plenty of factors (especially design sense and cross-domain knowledge) that matter in the real world more than innate talent.

Programming has a steep learning curve, but what's missed is that a steep learning curve is a good thing. The 10x effect exists because it's possible (especially in the early stages) to improve your own effectiveness by 20, 50, or even 100+ percent per year... and one becomes a true 10x-er not based on in-born talent but by having several 1.5x growth years in a row.

Re: The programming talent myth

#78

The problem with the argument that "Programming skill can't be bimodal because that would be elitist and make me feel bad about myself being an elitist" is that there's a lot of evidence that programming skill is bimodal. Look at fizzbuzz as an obvious, if not entirely complete, example. Would it make us all feel better if programming skill weren't bimodal? Sure. But a roomful of people clapping at that proposition d…

> Look at fizzbuzz as an obvious, if not entirely complete, example. I am not entirely convinced this is not partially a resume screening and talent pipeline problem. Has anyone ever given Fizzbuzz problems to everyone who applied to a position? If you haven't, have you ever considered that your screening process may be broken in the sense that you are passing too many liars who then bomb the Fizzbuzz portion, but wh…

In which case it becomes bimodal in the sense there are people who consider themselves programmers but who do not meet enough skill to be considered one.

Re: The programming talent myth

#79
"Formal logical proofs, and therefore programs – formal logical proofs that particular computations are possible, expressed in a formal system called a programming language – are utterly meaningless. To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion. In the test the consistent group showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead. The inconsistent group, on the other hand, looks for meaning where it is not. The blank group knows that it is looking at meaninglessness, and refuses to deal with it"

http://blog.codinghorror.com/separating-programming-sheep-fr...

http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

Re: The programming talent myth

#80
post #17

It's not that programming skill (whatever that is) is bimodal, it's the effectiveness of the engineer in a typical development scenario. That stems at least partly from the fact that programming is hardly ever a one-person endeavor, contrary to running. Since scaling a team increases friction and overhead, a small number of highly skilled engineers can be absurdly more effective than a set of teams, which also makes…

It also doesn't count for how low skill (inherent, trained, etc.) can have a negative impact on a project by incurring vast amounts of technical debt that will have to be repaid that outweigh any positive contributions made.

I haven't really seen any evidence that this is true.

The talent myth as Adrian describes it is one of stereotyping: there's no data to accurately measure skill in programming so we simplify things in our heads and believe you're either talented or not. This myth appears to directly support your claim: untalented individuals are a cost burden on the enterprise. If this were true there would be far fewer enterprises to match the number of actually talented programmers: that is to say you and I are not likely one of them.

The reality I've experienced suggests that deliberate process correlates strongly to quality. In the absence of true talent we can still write great software by leveraging processes and tools to wrangle complexity and manage defects. We see this in plenty of engineering disciplines. Why is software so special?

Post reply on HN