The comments are abuzz over at Jeff's blog as he's aggreblogged the current discussion on the FizzBuzz problem. It started when Imran said that he has found so few programmers who can code that he, as Raganwald put it, "set the bar ridiculously low."
A FizzBuzz-style question is:
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”.
And for the sake of your immortal soul and your webutation, don't post the solution in the comments. You'll only die a little inside if you do.
Speaking of comments, there's some pretty choice comments on the various blogs that are worth looking at:
It's just performance anxiety.Most people are terrified/stressed out during interviews.Not "Can you X?" -"Can you X whilst terrified?"
This is, to a point, reasonably valid, but I think that if you're hiring someone to sing, it's reasonable to have them sing at the interview. If you're being paid to write code for the better part of your week, and you're offended by being asked to write code at the interview, I say you're hypersensitive. If the interviewer pulls out a laptop and says, "let's write some code" at an interview, as the interviewee, I'd be happy to see that they mean business. I mean, we ARE writing code to solve business problems, right? Seems like not having someone write any code until you've worked somewhere two or three weeks, gone through orientation and company training, could be a dangerous gamble.
Here's another:
However, I have never *once* used - or had call to use - recursion to solve a problem, since I learned about it at university.
Statements like this are kind of dodgy as well. I don't know this individual, but based solely on this one sentence I would surmise they are either, rather young (i.e. recently out of school, maybe the last 5 years) or they've been writing the same general kind of code in their career. Saying that I have never used X since school either means you haven't been out of school long, or that X is a totally useless thing.
What's really important isn't whether a person has used recursion since school, but:
This can of course be make generic:
A few years back I kind of got some flack for posting on "What Great .NET Developers Ought to Know." I just wrote that post on a plane, brainstorming the general kinds of things I thought that someone who worked for me should be able to answer. It wasn't an exercise in trivia, I was literally writing it up to prepare to hire someone.
Some - very fervent - folks thought it was a manifesto, dictating that one had to know these things to be successful. Certainly this isn't the case.
But what can we ask folks who are being hired to code? What do you think they'll say if we ask:
Surely these are all reasonable questions...I could go on. Here's the deal, when I hire someone, I'm looking for them to be tall. A boss told me once that he just wanted his programmers to be tall, because when you're putting together a basketball team, you have to remember that you can't teach height.
We're looking for folks who are excited about computers, who are lifelong learners, who are easy to get along with but willing to fight for what they know to be right. We want folks who will raise the quality of their own code with experience, and also raise the teams level of quality through a process of ongoing improvement and introspection. Seems reasonable to me.
One other thing that's amazing to me about this blogversation (look at me coining B.S. Web 2.0 words left and right!) is that some of the programmers who read these blogs feel the need to actually solve the FizzBuzz problem.
They've completely - no, I need a work with more oomph - utterly? missed the point.
The FizzBuzz exercise is an interesting one, but it certainly should only be considered as a single arrow in one's interviewing quiver. But, Imran ends his post with this, and I shall as well: "This sort of question won’t identify great programmers, but it will identify the weak ones."
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.