Live data from Hacker News

The programming talent myth

lwn.net

231–240 of 354 posts

Re: The programming talent myth

#231
post #58

My own experience just does not agree with this at all. First, I think we have to distinguish between two ideas here: * The first is the question of whether anyone can learn to program. I think that for the most part everybody can, just like for the most part everybody can learn high school calculus. * The second is the question of whether programming ability is bimodal. This is not related to the first question, and…

I think there is a lot more granularity in abilities than you are accepting. Like the article discusses, there are many different skills that make up "programming." These include writing code, architecture, data structures, communication, debugging, interface design, documentation, etc. To say that there is a bimodal distribution is to say that all developers are either extremely good at all of those things or extremely bad at all of those things. From my experience, even the best coders are still lacking in one of those areas, and even the worst coders are usually pretty good in one of those areas.

I also think you arbitrarily use the 10x thing a lot based on how you feel things are happening and not actual measurements. It is simply illogical to assume that all developer either fit into a category where they will complete a task in 1 day or 10 days...I'm using speed here because that is the metric you used in your post. I think what you will see more is a wide range of timeframes that developers will finish a task in. And with that some of them will have great interfaces, some will have terrible interfaces, some will have average interfaces. Furthermore, some will have excellent documentation, most will probably have no documentation. Some of the developers will be able to clearly articulate everything that is happening in the interface and in the code, some will not. Some will have created reusable frameworks, some will have hardcoded values. The quality of how they perform the task will be very granular based on a number of aspects, speed being only a small part.

The bimodal distribution your anecdotal evidence points to is very lacking in the full scope of what makes up "being good at programming."

Re: The programming talent myth

#232
post #114

Earlier quoted context omitted.

> I will certainly never say "anyone can learn how to code" any more than I'd say "anyone can become a concert pianist" I would certainly say "anyone can learn how to code" in the same way that I would say "anyone can learn how to write", or "anyone can learn to run", or "anyone can learn to play piano". I wouldn't say "anyone can learn to become a concert pianist", in the same way that I wouldn't say "anyone can lea…

>anyone can learn to play piano Is there a belief that anyone can learn to play the piano? I can't. I struggled for many years trying to learn various instruments. I failed miserably no matter how hard I tried. I tried and I tried, I really wanted to be able to play an instrument, any instrument, but I was unable to. I'm not dumb, I am a programmer, but music was just something my brain couldn't comprehend. Of course…

"Hello World" is roughly equivalent to playing a random scale. If you can memorize a scale (even briefly), you can play the piano. You might not ever manage to compose a legendary piece of classical music, but you can impress your friends by jamming with a man jue or a gambhiranata.

Most of what I make is mostly or completely electronic, and I can barely listen to classical. If you think "learning the piano" and "playing piano music" are synonymous, that might be the problem. You can make a lot of interesting sounds if you hook a MIDI keyboard up to a computer.

(aside, the best investment I made was Piano Companion Pro. The scale DB is full of interesting scales from all over the world)

Re: The programming talent myth

#233

If you started programming when you were 12 and you've been programming for fun more than 4 hours a day every day since then, you are going to be drastically better than someone who starts programming in their first year of college and only does it to graduate. It feels like a bimodal distribution because you then get both kinds of programmers interviewing for jobs at the same age when they graduate from college and…

Don't underestimate by how much the speed at which you learn increases as you get older. There's lots of amazing musicians around who only started playing as adults, for example, because aside from a couple of kid geniuses, learning an instrument when you're young is just really, really hard.

Re: The programming talent myth

#234

If you started programming when you were 12 and you've been programming for fun more than 4 hours a day every day since then, you are going to be drastically better than someone who starts programming in their first year of college and only does it to graduate. It feels like a bimodal distribution because you then get both kinds of programmers interviewing for jobs at the same age when they graduate from college and…

I think you are missing the point.

He does not deny that there are people on the tail of the normal curve. But his point would be that there are more people that started at 12 and programmed a couple of hours on the weekend v. 4 hours a day. And there are still more than that that started at 15. This creates a normal curve, not a bimodal.

Re: The programming talent myth

#235
One thing missing from the whole bimodal vs. normal distribution debate is: what is the population that you use as a base?

If you take all humans as the base, the vast majority for any skill that isn't nearly universal is clustered at the zero. Of the 9 billion people on earth, nearly nobody can write programs to any meaningful degree, or play the piano to any meaningful degree, or build a telescope, or a wrist watch, or whatever.

So I'd assume that programming ability distribution looks a bit like a normal distribution centered at zero, and cut off at zero (no values for skills less than zero).

Which, ironically, makes basically everybody who can write a single line of code "above average". Which doesn't make them rock star programmers at all.

Re: The programming talent myth

#236
My wife and I volunteer teaching "programming" to my son's second grade class once a week. It's actually a mixed first/second grade room so half the kids in the class are first graders. I've been teaching them writing simple algorithms and games in scratch (scratch.mit.edu) and studio.code.org.

These kids are young enough that almost nobody had any exposure to "coding" or algorithmic thinking before this. It's about 30 kids. Here's what I've observed (Yes it's anecdata... but I'm reporting my own impressions here):

There are about 6 kids who're pretty quick on most of the assignments... evenly divided between 3 girls and 3 boys... then there's about 15-20 kids who are more or less similar in aptitude. The top 5-6 programming kids are also the kids who I feel have the most advanced verbal skills (just from speaking with them). I've been told by the class teacher that two of these kids are advanced math learners but the others are good students but not advanced beyond grade level.

The more surprising part is the bulge of 15-20 students in the middle. That's a far bigger number than what I expected who regularly complete challenges correctly and within the time given. Many of these kids are not particularly top level math students. Most seem to have good verbal skills but nothing exceptional. Most surprisingly, many of these kids are first graders. Once I saw this in the first few classes, I significantly raised the level of challenges I was giving them. And they kept working them out. It's fair to say that I was pleasantly surprised.

Yes it's not a particularly strong scientific study but I'm here to say that there's absolutely no way you can convince me that Programming ability is some genetic trait with a bimodal distribution... at least not in the absence of hard scientific data. The one study that has polluted our discourse for many years (because Jeff Atwood trumpeted it on his blog) was retracted in dramatic fashion by it's own lead author:

http://retractionwatch.com/2014/07/18/the-camel-doesnt-have-...

And to complete my story - Yes, there are 2 kids who don't particularly enjoy this class at all. They do seem to be behind the rest of the class in general scholastic aptitude though by no means "stupid"... my wife spent an extra hour with them separately and they thrived under a higher level of direct attention. There are a handful of others who end up doing their challenges slower than others. One of the most amazing and heartening things I've seen is that the kids who finish the challenges are spontaneously going to the kids who haven't and have been helping them out. And in the end, each and every kid has finished all the challenges we've given them

Re: The programming talent myth

#237
post #204
post #156

Earlier quoted context omitted.

I actually never tried to play the piano, just the flute and later percussion. >For classically pianists, it just means you can read notes and play the corresponding notes Couldn't do that. Couldn't read notes, not even very simple pieces. Reading which note was what, them and then thinking about the corresponding fingering, doing it while following along with the beat... nope, never happened. It wasn't like I didn't…

Hm it sounds like because you were unable to learn the flute/drums despite not being very motivated, you don't think everyone can do it. I think this is a fair observation, but I also do wonder if you tried a different approach whether you would be able to learn. I hope that didn't offend you, you certainly sound very hard working, and I wonder if I might be able to help if you were still interested in trying to lear…

I think what happens is people try to formalize all the fun out of music because they don't know any better. They fall back on the broken rote learning they got back in grade school, and the results are predictable.

I usually write out songs in my head as changes in pitch, then work out notes and scales later in my DAW. I learned to keep time by drumming on the wheel with music when stopped in traffic. I can't remember scales for long, but I made a point of committing the notes of the keyboard keys to memory so I can quickly memorize a scale and experiment with melodies.

Re: The programming talent myth

#238

If you started programming when you were 12 and you've been programming for fun more than 4 hours a day every day since then, you are going to be drastically better than someone who starts programming in their first year of college and only does it to graduate. It feels like a bimodal distribution because you then get both kinds of programmers interviewing for jobs at the same age when they graduate from college and…

You created a bimodal distribution because you only talked about two types of people. Some people start later in life, but have an incredible talent for programming. Some people start early because they really like programming, but never achieve the highest levels of proficiency because they lack some natural talent.

Like most things, programming is a mix of natural talent and practice. Some people have incredible natural talent and will succeed no mater when they started. Some people will achieve a very productive level of programming with less natural talent because they put in the work to achieve it. There are more than just two archetypes that make up the landscape of developers.

Re: The programming talent myth

#239
post #165

Earlier quoted context omitted.

The problem with relying on personal anecdotal evidence is that it is inherently biased. The only way to truly answer the question is find a way to reliable measure coding skill. Otherwise you find yourself making the same mistake you think Jacob is making. Using faulty data to back up an assumption. Part of the thrust of Jacob's talk was that there is probably a whole class of developers out there who would be just…

Every human ability has a natural distribution of what for a better word we can call "talent". This is as true of running or tennis as it is of coding. To claim otherwise is to tell people who aren't naturally very good at tennis that they are moral failures for not working hard enough at it, which is insulting and demeaning as well as false. Furthermore, there is evidence that the ability to code is non-linearly dep…

Even if true, a bimodal distribution of suckers and winners is very different from having to meet a treshold in certain skills to be able to code at all. Not everybody can become an architect or a mechanical engineer either, but I never hear my engineering buddies talk about the mythical 10x civil engineer.

Re: The programming talent myth

#240

If you started programming when you were 12 and you've been programming for fun more than 4 hours a day every day since then, you are going to be drastically better than someone who starts programming in their first year of college and only does it to graduate. It feels like a bimodal distribution because you then get both kinds of programmers interviewing for jobs at the same age when they graduate from college and…

Don't underestimate by how much the speed at which you learn increases as you get older. There's lots of amazing musicians around who only started playing as adults, for example, because aside from a couple of kid geniuses, learning an instrument when you're young is just really, really hard.

Not sure I agree it's easier as you get older. Our brains seem to be wired to pick up new languages & skills most rapidly when in youth.
Post reply on HN