The previous candidate to me at a job a few years ago left the room in tears after not being able to write Fizzbuzz. On a laptop with Visual Studio installed, on their own in a an empty room with nobody looking over their shoulders. The same company said they’d had so many candidate, including university graduates, who simply couldn’t code, that they were almost giving up on it.
Same, fizzbuzz was one of our tests. Nearly everyone messed it up. The telling part was how. We had a guy with 20 years of experience who demanded ample compensation write code that not only didn’t compile, but it made little sense. A lot of people were pretty good bullshitters - then after the test they went “Yeah, well… That went bad huh?”. We had a different, more difficult test that people could choose. We had one guy who did somewhat poorly on that… But asked to take the assignment home for his own sake. He was a very god hire. Not because he worked overtime or anything but because he cared.
Suddenly I feel like a fucking accomplished programmer, despite only doing some questionable stuff on Godot lately, but never messing up my loops… Not too badly anymore, anyway.
A fizzbuzz type of question I know I would mess up on the modulo operator. I know the logic is ifthe division ofthe current_number by3 has a remainder ofzero, write fizz, but I always look up the operator
Yeah it always feels like “negative logic” to me. If it’s not this and not that then don’t do the other… Does my head in. Next time I’m going to use a lookup table “x…f.bf…fb.f…” then mod15 the index. f=Fizz, b=Buzz, x=both. Nice thing about this is that it’s easier to change with the requirements. Want to shift the second fizz right one? No problem “x…f.b.f.fb.f…”. Good luck doing that with the standard approach. Add Gronk which collides with Fizz, Buzz or both at various times? Also no problem - just extend and modify the LUT accordingly and change the mod.
I can already hear people asking why x is at the start. Arrays are indexed from 0. FizzBuzz starts at 1. 15 mod 15 is zero. Loop N from 1-100, switch on lookup[N%15], case ‘f’ print Fizz, case ‘g’ print Gronk, case ‘p’ print FizzGronk and so on. The only “nice” original feature you lose is when both %3 and %5 fire at the same time and it prints FizzBuzz without any extra code.
The previous candidate to me at a job a few years ago left the room in tears after not being able to write Fizzbuzz. On a laptop with Visual Studio installed, on their own in a an empty room with nobody looking over their shoulders. The same company said they’d had so many candidate, including university graduates, who simply couldn’t code, that they were almost giving up on it.
Same, fizzbuzz was one of our tests. Nearly everyone messed it up. The telling part was how. We had a guy with 20 years of experience who demanded ample compensation write code that not only didn’t compile, but it made little sense. A lot of people were pretty good bullshitters - then after the test they went “Yeah, well… That went bad huh?”. We had a different, more difficult test that people could choose. We had one guy who did somewhat poorly on that… But asked to take the assignment home for his own sake. He was a very god hire. Not because he worked overtime or anything but because he cared.
Suddenly I feel like a fucking accomplished programmer, despite only doing some questionable stuff on Godot lately, but never messing up my loops… Not too badly anymore, anyway.
A fizzbuzz type of question I know I would mess up on the
modulo
operator. I know the logic isif the division of the current_number by 3 has a remainder of zero, write fizz
, but I always look up the operatorYeah it always feels like “negative logic” to me. If it’s not this and not that then don’t do the other… Does my head in. Next time I’m going to use a lookup table “x…f.bf…fb.f…” then mod15 the index. f=Fizz, b=Buzz, x=both. Nice thing about this is that it’s easier to change with the requirements. Want to shift the second fizz right one? No problem “x…f.b.f.fb.f…”. Good luck doing that with the standard approach. Add Gronk which collides with Fizz, Buzz or both at various times? Also no problem - just extend and modify the LUT accordingly and change the mod.
I can already hear people asking why x is at the start. Arrays are indexed from 0. FizzBuzz starts at 1. 15 mod 15 is zero. Loop N from 1-100, switch on lookup[N%15], case ‘f’ print Fizz, case ‘g’ print Gronk, case ‘p’ print FizzGronk and so on. The only “nice” original feature you lose is when both %3 and %5 fire at the same time and it prints FizzBuzz without any extra code.