A Programming Aptitude Test


Back in the day (in other words 30 years ago when I was looking for my first programming job) I took a number of programming aptitude tests. I must not have done well on them because despite a degree that included a good number of computer science courses I never received a job offer from a company that gave me such a test. Notwithstanding that I have had what I like to think of as a fairly successful career in the computer industry. I’ve done a lot of fine programming and have taught a lot of even better programmers. (Or at least I like to think my students are often out doing me.)


My previous experiences have left me skeptical of programming aptitude tests. Recently I came across some research being done by Saeed Dehnadi and Richard Bornat of Middlesex University in the United Kingdom. (Visit Saeed’s home pagefor links to this research and two papers on the subject.)They believe that they have discovered a fairly simple test that predicts with a high level of certainty which students are going to do well, which students are going to struggle and which students are not going to “get it” at all. The test involves asking a number of multiple choice questions based on assignment statements and should be fairly easy to administer. I suspect that it will not be long until someone converts the test to an online quiz that spits out a score and a prognosis of success as a programmer.


I have very mixed feelings about this test. One on hand I like the idea of being able to weed out people who are not going to get it no matter how hard they work or how well they are taught. But an even greater part of me wants to believe that everyone can learn to program if only they are taught correctly. Of course some people are going to be better at it than others but shouldn’t everyone be able to learn some of it?


I think there is value in learning computational thinking and that programming is a learnable skill. Maybe we can use a test like this to determine different learning/teaching paths but I am not ready to tell anyone they can’t learn to program. What do you think?

Comments (2)
  1. orcmid says:

    "I think there is value in learning computational thinking and that programming is a learnable skill. Maybe we can use a test like this to determine different learning/teaching paths but I am not ready to tell anyone they can’t learn to program. What do you think?"

    I was discussing this situation with a colleague, and I find that I want it to be as you say.  I suspect that this questionnaire/test may reveal more about someone’s model of reality and what may be cognitive errors with regard to computers and programming (and the differences between our abstractions and the world).  That can be threatening, the test won’t make sense, and people might even find the correct answers quite disturbing.  I know there have been enough things that I didn’t "get" until suddenly I did.  This might be no fun for many people.  

    Whatever the basis for the differences in performance, I suspect this could be used more like a "vocational preference" rather than an aptitude test.  Letting people see how they do with a set of concepts that programmers and softwared developers must become more-than-comfortable with.  

    Having said all of that, I do believe that motivation and willingness are always important factors, and I would not tell anyone they can’t learn it.  Whether they want to badly enough is a different and perhaps most-useful question for themselves and for anyone offering to provide instruction and coaching/mentoring.

  2. Rafael Alvarez says:

    When I interview some candidate, I just pose 3 simple "questions" that belongs to a first-year computer course (like "shuffle an array of strings"). The requisite is that they should be done in the language I expect them to work with, and the answer actually run (I give them access to a computer).

    If they do these 3 questions in less than half an hour, I go to some design problems to gauge their "design expertise", but the chances that they’re going to be hired are big if they show the right attitude (ie, passion for they work, and passion for learning new things).

Comments are closed.

Skip to main content