Abstract: All teachers of programming find that their results display a ‘double hump’. It is as if there are two populations: those who can, and those who cannot, each with its own independent bell curve. Almost all research into programming teaching and learning have concentrated on teaching: change the language, change the application area, use an IDE (Integrated Development Environment) and work on motivation. None of it works, and the double hump persists. We have a test which picks out the population that can program, before the course begins. We can pick apart the double hump. You probably don't believe this, but you will after you hear the talk. We don't know exactly how/why it works, but we have some good theories.
“A cognitive study of early learning of programming [1]”
I myself have heard plenty of horror stories about applicant programmers who can't program [2], but even simple programs [3] (via Ceej [4], from where I found the other links) can trip up a seasoned programmer (I tried the FizzBuzz program, and my first two attempts had bugs—sigh).
I just find it hard to believe that there are so many bad programmers out there [5].
[1] http://www.cs.mdx.ac.uk/research/PhDArea/saeed/
[2] http://www.codinghorror.com/blog/archives/000781.html
[3] http://tickletux.wordpress.com/2007/01/24/using-
[4] http://snippy.ceejbot.com/wiki/show/start/2007/02/27/002