4 ms·
> It was designed as "This is one of the simplest possible programs one can write. Weeellll, I mean it doesn't totally succeed in meeting that design criteria.
by cellularmitosis 6y ago
> It was designed as "This is one of the simplest possible programs one can write.
Weeellll, I mean it doesn't totally succeed in meeting that design criteria. Fizzbuzz weeds out three kinds of candidates:
- candidates who are (currently) unfit for any programming job
- candidates who freeze up during the interview
- candidates who have never used the mod operator
I fault fizzbuzz a bit, because there are candidates in that last category who have several years of experience successfully duct-taping together libraries to meet product requirements, yet panic because they've never had to find the remainder of division in their language of choice. They might be fine for the rec you have open.
A fizzbuzz with fewer false-positive rejections might be something like "implement multiplication without using the multiplication operator".
edit: Oooh! "How many ways can you implement multiplication" would be a much more interesting warm-up/weed-out question! Allows the quality candidates lots of room to shine.
- BeetleB 6y agoI'm sure there exist jobs where its OK not to know that a mod operator exists, but none of mine were of those kind. I'm pretty sure my experience matches the majority by a pretty large margin. > A fizzbuzz with fewer false-positive rejections might be something like "implement multiplication without using the multiplication operator". While possibly a fair question, this is a whole order of magnitude more difficult than FizzBuzz. It requires more domain knowledge as well (lots of people have forgotten how to multiply). > Allows the quality candidates lots of room to shine. But this is precisely the opposite of FizzBuzz. The goal is to weed out horrible candidates, not identify great ones.
- cellularmitosis 6y ago> this is a whole order of magnitude more difficult than FizzBuzz Sorry, in my mind the input was restricted to positive integers. My fault for not making that clear. def mul(a, b): accum = 0 while b > 0: accum = accum + a b -= 1 return accum You are correct that accounting for floating point would make this more complicated than fizzbuzz. > But this is precisely the opposite of FizzBuzz. The goal is to weed out horrible candidates, not identify great ones. This accomplishes both at once. That's a super set, not an opposite.
- joks 6y agoIt's even easier to do it with the inclusion of non-integers, though - `prod = a / (1 / b)` Granted, that may be counter to the spirit of the question, but it's a valid answer lol
- jpindar 6y agoYou don't need to use the mod operator to do fizzbuzz.
- danmg 6y agoWhen I'm interviewing people I'll ask a fizzbuzz level question. Not fizzbuzz itself though. I'll pick something that just has them doing some basic operations with strings and arrays like reversing the words in a string. I'll give an easy question, but I'll have them do it ssh'd on to a remote machine. I'm more interested if they know how the environment works and how much coaching they need to navigate around.