February 12, 2006

[Interviews] Handcuff Questions

I really hate interview questions like this.

Interview questions like this are commonly called "handcuff questions." By taking away a commonly expected ability, they expect the interviewee to really stretch themselves to come up with a solution.

However, there are really two types of questions like this. First, you've got the standard restriction types. Do things without using STL, with a limited memory footprint, using zero allocations, not allowing pointers, etc.

Then, you've got questions like the one linked to, where the most basic of basic language features are removed from access.

Here's a good comparison. The first type of question is like asking a carpenter to hand-chisel detail work on an end-table using only a small chisel and sandpaper. The second type of question is like asking the carpenter to hand-chisel detail work on an end-table using only a toothpick found on the floor of a urinal at a strip club and a "sanitary napkin."

There are places where handcuff questions are valuable exercises. The lower-level the coder is going to be working, the more appropriate they are, although on occasion, they can still cross the line into the realm of absurdity. ("Write a memory allocator in 256 instructions or less without using the jmp instruction.")

The main problem with a handcuff question is that most of the time, they aren't there to test the skills of the employee. They're there so that the interviewer can show off. "I'm able to pick the locks of my handcuff using only the wrapper from a stick of gum...can you do it?"

Trick questions like this can be handy in interviews, but before you spring one on an unsuspecting interviewee, make sure you know why you're going to spring it.

No comments: