It is well known that it is impossible to use currently available tools to test for ability to program computers.
In their paper The camel has two humps (working title), Dehnadi and Bornat claim to finally have a test, which can predict one’s ability to program. Basically, their test assesses the candidate’s ability to manipulate symbols according to rules without looking for a meaning in those symbols.
A note to self:
According to the above paper, the following are the major semantic hurdles, which trip up novice imperative programmers:
- Assignment and sequence.
- Recursion/Iteration.
- Concurrency.
Novice declarative programmers have to leap the following semantic hurdle:
- Argument substitution.
In addition to the above semantic hurdles, I know of one additional major semantic hurdle:
- The concept of a pointer.
I wonder whether there are additional semantic hurdles, listed in some obscure (or not so obscure) paper published somewhere in the world – or even unrecognized so far.