Can YOU do FizzBuzz?
I’ve had a busy last few months. Raising an infant is not an easy task by any means. Add in a project that needs to keep moving forward and things get almost crazy. We have been able to bring on another developer. The interviewing process was an interesting one to say the least. I have interviewed people for system administrator positions in the past, but this is the first developer position I’ve done. We had the classic HR style questions ready. We also knew that these would only test for personality compatibility, not technical skills. So where do we go from there?
For this position, we went through a consulting company. They handle some basic technical testing based on our requirements, so we knew that the candidates have coding knowledge and have worked on other projects for other companies. I hit StackOverflow and gleaned some technical interview questions that I felt would help us determine who is qualified. A very common tactic is to have the candidates do almost a complete day of problem solving/coding. In the future, I’d love to have that luxury when hiring developers. We didn’t really have that kind of time for our interviews, since we were interviewing a group in a single day.
What I decided to do was to give the candidates the FizzBuzz test. Now this first hit the web en-mass in 2007. It sparked all sorts of posts saying it was great and terrible, sometimes both at the same time. Most people confirmed that the majority of candidates can’t pass it. I was amazed at this. Of course the people who posted comments were able to put correct code up, but who know how long it took them. So, I wondered what we would see 2 years later with our interviews. As a note: yes, I myself had no problem with it and it took me only a couple of minutes do complete due to my slow handwriting.
Our results surprised me greatly. We hit an 80% fail rate. Most of the failures weren’t massive failures. They just missed 1 or 2 basic things that they could have fixed after we asked about it. To be fair to them, I did explain the problem to them and let them ask any questions before they began. I let them know that this is just a simple problem to test their basic coding skills. I told them that there aren’t any tricks to this; don’t over think it. The #1 problem? They forgot to print the number when it wasn’t a multiple of 3 or 5 or both. Of course, this is the first sentence of the problem.
The second part of the exercise was for them to walk me through the code that they had written. It’s just as important to be able to explain their code in English as it is to write it in C#. The worst candidate literally read the C# code he wrote. Semicolons, parentheses, and all. Of course the stronger people immediately knew how to talk through their code. Their past experience on larger projects was clearly shown.
In the end, we’ve been happy with the person we selected. And, yes, he did pass FizzBuzz.