5 ms·
I suspect that you are thinking of FizzBuzz differently than it was originally intended. FizzBuzz is not designed as a test of real-world programming skills; r
by donw 10y ago
I suspect that you are thinking of FizzBuzz differently than it was originally intended.
FizzBuzz is not designed as a test of real-world programming skills; rather, it is a deliberately easy test to ensure that a candidate can solve an elementary programming problem from scratch.
The idea being, that somebody that can not solve a trivial problem is in no shape to tackle a harder problem.
Many companies overthink this. They add TDD, or try and test if a candidate can implement Dijkstra's Shortest-Path Algorithm, or any number of other complications.
But that all misses the point of what FizzBuzz does.
FizzBuzz is a first-stage filter, and exists only to screen out copy-pasta programmers that, while their resumes might look good on paper, can't actually code.
There are a lot of those programmers out there, even today.
FizzBuzz should take a candidate no more than five minutes in a language they are familiar with. It really should be that level of simple.
After FizzBuzz is when you can dive into the real-world problems, because the candidate has demonstrated that they can write code.
Now, admittedly, I have moved past FizzBuzz, and now prefer doing a simple pairing exercise over-the-phone, but FizzBuzz is still a useful tool in the interviewing toolbox for companies that don't use pair programming.
If you do use FizzBuzz, I do recommend changing it up. Don't just copy Atwood's FizzBuzz problem. Change the numbers, mix the conditionals around, that sort of thing. But keep it just as simple.
- vacri 10y ago> FizzBuzz is a first-stage filter, and exists only to screen out copy-pasta programmers that, while their resumes might look good on paper, can't actually code. I said recently in another thread that the lead tech at my company was complaining during one round of interviews for a senior position, that some of the candidates couldn't even conceptually 'get' FizzBuzz, let alone code it. > FizzBuzz should take a candidate no more than five minutes in a language they are familiar with I'll go a step further and say that if you're the kind of person that takes FizzBuzz as a personal insult, then you should be able to write it out in 60 seconds max, and move on with the interview. FizzBuzz is not for 'you', it's for the people who claim to be as good as 'you', so take it easy and move on. Complaining about FizzBuzz is like complaining about having a police check done, even though you don't have a criminal record. The check isn't for 'you', the innocent person.
- donw 10y ago> I'll go a step further and say that if you're the kind of person that takes FizzBuzz as a personal insult, then you should be able to write it out in 60 seconds max, and move on with the interview. I see your step, and raise you. :) Asking a developer to spend five minutes to write a trivial problem is not an insult. Somebody that takes this as such is probably not going to be the type of person I, or my team, will want to work with, and we can end the interview process there. I can totally understand balking at a one-day "homework problem" given out as part of the interview. Not because this is an insult, but because it gives nothing to the candidate. An on-site or remote "test drive" where they spend a day working with the team is fine in my book, because that experience is valuable to the candidate in answering the question of "will I be happy and productive here?" A company that demands a full- or half-day of time in exchange for nothing, not even information, probably does not value its employees much. My personal policy is that the interview process can consume no more than one day of a candidate's time in total, plus an hour for a phone screen, and that at the end of the interview, both parties can make an informed decision as to whether or not they want to continue. But five minutes to complete a trivial programming test? Writing this post took about that amount of time.
- falcolas 10y agoPersonally, I think FizzBuzz is stupid as hell, but I understand its role as an initial filter. My real frustration with FizzBuzz rises from getting this "test" at the in-person interview. Multiple times. Do it in a live coding session as part of the phone screening, and make those results available to all interviewers. Reserve the limited time that is available for in-person interviews for real questions, not filters. Or think of a better filter question than FizzBuzz. One great example for someone who claims to be a Python programmer - fix this: def foo(x, bar=[]): bar.append(x) return bar That lets me know that you as the interviewer also know more than FizzBuzz.
- dTal 10y agoWell, I guess I just failed your interview. As that's perfectly valid Python that does exactly what I expect, what's "wrong" with it?