There has been previous discussion on LW on the topic of how to quickly determine if someone might be good at programming. This is relevant because this is currently a good career field that can be relatively easy to enter, and because programming-style thinking is often relevant to LW topics (eg decision theory). In light of this I've created the following test, which is based on my memory of a test from an interview process for a programming job. It attempts to test common low-level concepts from programming such as sequence, assignment, indirection, and recursion, in a way that doesn't require any previous programming experience (although previous experience will likely make it easier).
This test is aimed at getting a quick clear positive, so the fact that someone does poorly on it doesn't mean they can't become a programmer (ie I'd guess it's likely to generate false negatives rather than false positives). This test is obviously lacking scientific validation, and is probably too short, but I'd like to start somewhere.
I'd like to invite both programmers and non-programmers to take the test for comparison. It should only take about 5 minutes. If you do the test, please also take the short poll in the comments for feedback and calibration purposes, regardless of what result you got.
----- Test begins below -----
This is a 1-question algorithmic thinking exercise that should take less than 5 minutes.
Pen and paper is required. There should be no prerequisites beyond basic arithmetic.
First, write down the following sequence of numbered boxes. You will be writing numbers in some of the boxes more than once, so either use a pencil or make the boxes big enough to cross out and replace numbers.
1 2 3 4 5 6 7 8
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Following is a sequence of numbered steps. Do the steps in the order they are numbered (unless instructed otherwise). Note that "write a number in a box" means "cross out the previous number and write the new number".
1. Write 1 in box 3, 2 in box 6, 9 in box 4, 1 in box 5, 5 in box 8, and 0 in the remaining boxes.
2. In box 4, write the sum of the number in box 3 and the number in box 5.
3. In both boxes 2 and 5, write the the number in box 8 minus the number in box 6
4. Write 1 in the box whose number is in box 3
5. In box 3, write the sum of the number in box 3 and the number in box 4
6. In the box whose number is in box 6, write the sum of the number that's in the box whose number is in box 4, and the number that's in box 5.
7. Do step 2 again, then continue directly on to step 8.
8. Do step 4 again, but this time with box 4 instead of box 3, then continue directly to step 9.
9. The final result is the number that is in the box whose number is the number that is in the box whose number is equal to 2 plus the number that is in box 4. End of test.
--------------
Expected Results: http://pastebin.com/wA6xDxVb
Thanks for taking the test! Don't forget to answer the poll in the comments too.
I'd also appreciate any feedback on the test, both if you think its going in the right direction or not and if you think there are specific improvements that could be made.
edit: As some commenters have pointed out, there was a previous attempt at such a test that you may have heard of: http://www.eis.mdx.ac.uk/research/PhDArea/saeed/
However, it seems that further investigation found that their test, while better than nothing, wasn't very accurate. The test given in this post takes a different approach.
We're talking about a time when blacks were far more likely not to have proper schooling than whites. In some states a majority of blacks could not demonstrate a fifth grade education. The same was not true for whites. So literacy tests were disproportionately administered to blacks. Until 1915, even illiterate whites were exempted under a grandfather clause if they could demonstrate descent from someone eligible to vote in 1867 (before the 15th amendment -- prohibiting the denial of the right to vote based on race -- was ratified). These clauses were struck down by the Supreme Court in 1915, but they illustrate the real purpose of literacy tests -- the disenfranchisement of blacks.
The test itself is patently unfair. It tests far more than just basic literacy, and I do not see how it could be regarded as a proportionate substitute for a fifth grade education. You had to finish it in 10 minutes, and getting even one question wrong counted as failure. Under those conditions, I'm not sure even I could pass the test, and I'm pretty literate. Add to that the fact that many of the questions are ambiguously phrased, allowing multiple "correct" interpretations, and that grading was entirely at the discretion of local (white) officials.