This paper has been discussed to death before many times. I suspect the poster found this from this link:

http://www.codinghorror.com/blog/2006/07/separating-programm...

Here's what I discussed in private with a friend last time this paper showed up on HN:

"If you are talking about someone like Beethoven or Richard M. Stallman then yes, talent does make a difference. But those are 1 in a 10^5 cases, and the difference is in productivity, not basic ability.

The author of the paper is essentially talking about a test that can find out which 50% of the population can't program at all after 1 yr of education. This assumes that 50% of population really can't program after a year. Now I haven't read the papers he refers to. But what that means could be 1) students can't manipulate the symbols using whatever programming language they were taught in (syntax), or 2) students can't expression ideas using a programming language (sementics), or 3) Both. The tests this paper uses makes no such distinction. The tests were also only conducted on a sample size of 30. How significant. (I wonder why it was never published).

I don't know what this guy's background is. But looking at the design of the tests, the idea that the programming language is a user interface probably hasn't crossed his mind. What languages students were taught in, how they were taught makes a huge difference much in the same way your ability to use a computer via a GUI or the command line.

There are more problems - this "paper" mentions nothing about the schedule of the students, the actual amount of time the students spent studying, what time they student in, how they study.... etc. Are they all the same or not? We don't know. These are what Alan Kay calls "degrees of freedom". How the guy concludes anything from any "experiment" that's not conducted in any controlled environments is beyond me. Why we fixate on a paper written by a "scholar" with a life-time achievement of 4 papers (1 draft) is also beyond me.

Programming ultimately is about expressing ideas through symbol manipulations - (hence, programming is done in "languages"). We know from Noam Chomsky that we are all born with the ability to command languages, thus I believe that also extends to our ability to program. From developmental psychology, we also know that the developmental stage of when languages are taught also plays a big role on how fluent someone is with that said language. Maybe the reason the double hump exists is because half of the students were taught programming much sooner than the rest. Occam's Razor.

Programming is an art in much the same sense writing is an art. Everybody has an in-born ability to read, write and understand, but not everybody is a poet. Don't confuse the level of the ability with the all or nothing ability itself. Skills can and are attained through practice. Given enough time, the same can eventually be achieved given an equal amount of effort plus or minus small variations of "talents", which also happens to be mostly learned.

Don't congratulate yourself and mental masturbate your narcissistic ego because you know how to "program". You once knew nothing, and so did the students."