The future of programming interviews
October 2, 2004
Everyone else is talking about the Google Labs Aptitude Test, but I’m wondering something a lot more simple-minded: now that CS students typically learn high-level languages first (or only), where are programming interviews going?
A lot of the classic programming interview questions are actually sort of stupid in themselves, but supposedly test whether you have a reasonable CS background and/or have memorized one of the cram books available. Exhibit A is reversing a singly-linked list, a thing that very few people actually have to do in life but which still shows up in programming interviews (generally, in my experience, those given by people who haven’t actually programmed since the 1980’s).
In C, there are some little subtleties in the implementation, like remembering to pass a pointer to the head pointer inside a function. But in Java, anyone who does not do it this way:
List mylist = new LinkedList();
is a moron. This is the Java way to accomplish the stated task. Any other way is artificial, wasteful, and distasteful. But what does it prove about a candidate?
Anyway, bad hiring managers could at least get away with stuff like this while C/C++ were still the standard in CS education. But now that Java and C# seem to have completed their takeover, and may even be giving way to Python and Ruby, it will be interesting to see whether the dinosaur managers have to rethink their interview tactics.