Ruby Quiz wrote:

> There has been some debate on the proper ways to screen programmers you intend
> to hire.  A common theory is that you really need to have the programmer write
> some code for you to accurately gauge their skill.  Exactly what to have them
> write is another debate, but the blogosphere has recently been abuzz with this
> question as a screener:
> 
> 	Write a program that prints the numbers from 1 to 100.
> 	But for multiples of three print °»Fizz°… instead of the
> 	number and for the multiples of five print °»Buzz°…. For
> 	numbers which are multiples of both three and five
> 	print °»FizzBuzz°….
> 
> Pretend you've just walked into a job interview and been hit with this question.
> Solve it as you would under such circumstances for this week's Ruby Quiz.
> 

Done, 4 times over. Not a bad quiz though my answers will probably be 
considered boring and would be denounced by the fools using this tactic 
to hire people as "unimaginative" or "lacking creativity and whizbang 
problem-solving skills".

I feel compelled to point out that it was Microsoft who started this 
whole mess, and they quickly figured out it was selecting the wrong 
people and they don't do it anymore. But the cat's out of the bag, and 
now every wannabe shop thinks that's the way to find smart people. It's 
not, it's the way to find people who are good at solving puzzles under 
pressure, and in the worst case to find people who are good at finding 
ridiculously clever (but unreadable/unmaintainable) answers to puzzles 
under pressure.

As we all know, good software development is not about solving little 
puzzles. It's about reasoning about problems large and small and finding 
the most obvious and readable solution (and sometimes optimizing the 
inner loop).

Maybe I would try this in a job interview. I might state the problem and 
say: "this is not a trick question nor hard - just write the code they 
way you normally would." If they write the boring answer, they get 
points in my book. If they write some clever answer, they get demerits. 
If they can't write code at all, and I didn't realize they wouldn't be 
able to, I go sit in a corner and pout.