So recently I've had to assess a few people to see if they were right for doing some work for me. Most of this work is programming work, so I've needed to determine whether or not these people would be competent programmers from a few minutes of interaction. Unforuntately, I'm beginning to see the difficulty of such an endevour.

My current thinking on the matter is to ask them to implement (usually in pseudocode) one of a handful of sort of standard algorithms. Currently, I always ask them to implement a function which produces the Nth

fibonacci number and then ask them to implement one of [binsearch, quicksort, mergesort] depending on my mood. The thinking behind this is that if people have a fundamental understanding of the basics then I can feel confident in their ability to deal with more complex problems.

Fibonacci allows me to quickly see their ability to recognize recursive algorithms and, by picking at their answer if they go with the naive solution, their ability to self assess a peice of code. The other set is essentially a test of whether or not they can quickly implement a peice of (what should be) a well known algorithm when given a brief refresher.

I am not, however, sure that my set of assessments are very strong, so I'm looking for feedback or possibly other questions to ask. I'm not particularly interested in asking stupid brain teasers (like the flashlight/bridge problem) as they don't necessarily have a strong correlation with programming ability. I'm also not terribly interested in language specific questions because they don't really provide much interesting information (I don't care if you know what a C++ vector is and how it works though I may care if you know what a linked list is).

Published by

XPost