

Find the Bug in my Fizz Buzz Interview (2:47 video) - edw519
http://edweissman.com/find-the-bug-in-my-fizz-buzz-interview

======
AshFurrow
You're checking for a null local variable value in the third conditional, but
appending to that same variable in the first two, which would either cause a
runtime error in most languages or never pass the third conditional.

~~~
jpeterson
This was my first thought as well. If he instead initializes:

    
    
        var result = "";
    

and checks for:

    
    
        if (result.length === 0) {
        ...
    

in the third conditional, is there still a bug?

~~~
AshFurrow
Yes, he specifies the conditional is "examine the variable result; if it is
still null ..."

------
mikeryan
The bug in the interview is not having a whiteboard or paper or a computer
that the interviewee can use.

Forcing anyone to do a coding exercise in their head is ridiculous.

------
steven_h
It might have been when he initialized the variable result.

He goes on to append strings to this variable which would lead me to believe
it has some value that you can append to.

This would make the third conditional where he checks for null to fail, he
should check for an empty string.

~~~
waffle_ss
This is my conclusion as well. To wit, an approximate translation of his
method into Ruby:

    
    
      fizzbuzz = (1..100).to_a.map do |i|
        result = "" # 1:23 initialize a variable
        result += "Fizz" if i % 3 == 0
        result += "Buzz" if i % 5 == 0
        result = i.to_s if result.nil?
        result
      end
    

The corrected solution would be to change `result.nil?` to `result.empty?`,
i.e. checking for "empty string" instead of "null".

------
jersni
I see paper and pen/pencil in that office...

He doesn't ever print out result either

------
mobjedgar
Hahaha genius. "...What??" Oh, and I have no idea what the bug is.

------
denzil_correa
Shouldn't he check the divisibility by both 3 AND 5 first?

~~~
extension
No, in that case the first two conditionals will both pass and the result will
end up as "FizzBuzz".

~~~
denzil_correa
Well, that would depend on the print statement. Generally, all of them have
new lines. Even if they don't you would have to generate new lines
appropriately otherwise the next number would print right next to Fizz.

PS : My assumption is that you need to print each number or Fizz or Buzz or
FizzBuzz in a separate line.

------
lucian1900
That video is so fucking annoying. Why not just show a page with the fucking
text?

