A while back the blogs went nuts with the FizzBuzz game. It all started with a discussion of asking people to write code in job interviews. I do this, and I feel it really helps me to hire good people. However I ask something that appears to be much simpler than FizzBuzz, and I get interviewees who completely and utterly mess it up. I don't just mean that they write code the compiler would reject -- they write things that are too complex or that aren't in the language we just agreed they were going to write it in -- and when they look over what they've written on the whiteboard they don't see a problem.
Why the blogs went nuts is that commenters to the original post just couldn't resist trying to submit a solution. The general form was "man, you're an idiot, that problem is way too simple, it's just four lines of code! Like this:" immediately followed by a solution that DID NOT WORK. This unintentional hilarity continued with people trying to correct each others solutions and often failing. Then as that started to wind down, the language zealots came along to prove that FizzBuzz solutions posted by random commenters only had errors in them because of the languages the commenters chose, and that a Ruby version or the like would be much easier. Some of those had errors too. Assembly language, Cobol, Perl, ... I'll let you search out those solutions (quality varies) yourself.
But one in particular I really like for its spectacular uselessness while demonstrating great strength with the tool. Can you believe FizzBuzz in C++ compiler error messages?
T0=boost::mpl::int_<0>,
T1=boost::mpl::vector<boost::mpl::int_<1>>,
T2=boost::mpl::vector<boost::mpl::int_<2>>,
T3=Fizz,
T4=boost::mpl::vector<boost::mpl::int_<4>>,
T5=Buzz,
T6=Fizz,
Take a look at what Adam Petersen has done. Would I hire him? You betcha.
Kate