Samuel Tardieu @ rfc1149.net

FizzBuzz and bored programmers

,

On his blog, tickletux advocates the use of FizzBuzz to find developers who grok coding. However, this kind of test may also cause difficulties. What do you do if a candidate answers with the following (correct) C code?

#include <stdio.h>

static const char *t[] = {"%d\n", "Fizz\n", "Buzz\n", "FizzBuzz\n"};

int main()
{
  unsigned int i;
  for(i = 1; i <= 100; i++) printf(t[3&19142723>>2*i%30], i);
  return 0;
}

What explanation would you choose?

  • the candidate is smart and managed to avoid any explicit test (“branches are evil” philosophy): hired;
  • the candidate tried to impress you and won’t explain the 19142723 in her code: she is likely to cause problems in the team: not hired;
  • the candidate mind is so convoluted that she could not think of another solution: not hired
  • the problem you gave the candidate was so boring that she solved it while having some fun; may be a real problem solver: hired;
  • the candidate is perfectly suited for an embedded systems programmer position: hired or not, depending on the kind of software you want her to write.

If I were to interview people for a programmer position, I honestly don’t know what I would do with someone writing such a code in response to the original problem. I would probably assume that the programmer was bored and that she wanted to have some fun while doing her job, and I kinda like this idea.

blog comments powered by Disqus