Hacker News new | ask | show | jobs
by sureaboutthis 2610 days ago
I've been programming for 35 years and I can't fizzbuzz cause I don't know what it is. Yes, I've heard about it before cause it's mentioned on forums, and I even looked it up once, but I always consider such things childish. (I honestly don't remember anything about it.) Ask me about an algorithm and I'm there but don't play games with me.

EDIT: Just looked it up. Yep. A game. Now compare that to my years of accomplishments and you'll say asking me to write fizzbuzz childish, too.

6 comments

Fizzbuzz isn't a trick questions that you have to have heard of. It's designed to be an EXTREMELY easy question, answerable by anyone with even a basic knowledge of programming. It's not a game. It's a way to weed out people that don't know anything.

If you have been programming for 35 years, you'll probably be appalled by how easy it is. Look it up.

I never said it was a trick question. Where did you and the other guy come up with that?

It may be easy but you would have to explain it to me if you were interviewing me.

After looking up what it is, as I said I did, yes, I could do it easily but don't ask me to code your game "fizzbuzz" as if I would know what it was.

No-one remotely confident would ever fail a candidate for not knowing what "fizzbuzz" means. But any competent interviewer would fail a candidate who, having have "fizzbuzz" explained to them, could not implement it.
In internet discussions, people say "write fizzbuzz" because it's a well known trivial problem.

In an interview, they ask you to print the numbers 0..n to the screen, while replacing numbers divisible by 3 with the string literal fizz, and numbers divisible by 5 with the string literal buzz. The biggest trick or gotcha is that they will also specify that numbers divisible by 15 should be replaced with 'fizzbuzz', but they'll probably say 3 and 5 instead of 15.

If your list of accomplishments is really as impressive as you say, you can write a loop, a conditional, and use the modulus operator. And honestly if someone couldn't figure out modulus, they might still be able to pass. (But I'd be VERY curious about their background)

Fizzbuzz is not a trick question. It's not a difficult question. It's not meant to make you look stupid if you know how to program. It is only meant to check whether you understand conditional logic and looping. It's intentionally chosen to be the lowest of low bars, because there are so many people who literally can't program but apply anyway. All it's meant to do is weed out the people who have never programmed in their life.

I never said fizzbuzz was a trick question.

The OP said that one should know how to write a fizzbuzz. I said I couldn't cause I don't know what it is. That doesn't mean I couldn't once it was explained to me.

My point is that they clearly didn't mean you should be able to write one from hearing the word fizzbuzz. It's used by name online because it's fairly widely known around these parts. In an interview question it would be given to you as a set of requirements, not just the word fizzbuzz.
You wouldn't be asked to "fizzbuzz". You would be asked to write an extremely trivial program, which would take you about 3 minutes.

Also, if you have guaranteed years of experience, fizzbuzz isn't for you. However, a suprisingly large number of applicants who can write an impressive looking CV can't write it.

I've also "heard" that the ratio of people who fail at fizzbuzz is truly disturbing even if they have impressive CV's.

It makes me wonder, though. Has anyone ever just admitted they failed at fizzbuzz here on HN?

I can imagine someone bombing it if they're nervous or if they forgot the modulo operator in their language of choice and got lost doing it an "ugly" error-prone way because they were too embarrassed to change tack once started.

If someone reasonably competent were to spend years working with some limited api's, on a codebase that has hundreds of man-years on it, could they fail at fizzbuzz when asked out of the blue? I think so.

I've wondered before how many of the "OMG tons of candidates can't fizzbuzz" anecdotes come down to messing up syntax or forgetting the name of something in the language they're using and mixing in something from another language, or making a plausible but incorrect guess. I could definitely see doing those things in an interview, and I've usually been considered the "smart one" or one to come to with weird/low-level/architecty problems where I've worked. Hell I know for a fact I once used the wrong friggin' method invocation syntax in an interview. That stuff barely has any place in my long-term memory, I mostly rely on context to get it right when doing real work.

I can also see a lot of folks forgetting about the modulus operation and doing something uglier and smug interviewers deciding that means they're a fraud and/or an idiot. I've only used it a handful of times in real code, in... oh man, over 15 years. If it hadn't been (for some reason) among the first things I picked up when first learning to write code it might not be as relatively-well stuck in my head as it is.

It depends—when I was at one of the really visible companies, it wouldn’t have surprised me if as much as a third of the people I screened had lied on their resume. I’d ask folks to write functions to count the number of times the letter ‘a’ appears in a string, stuff like that. Did not need to compile or run.

I had a person break down and confess, and we spent the rest of the interview talking about how their codecademy lessons were going.

That turned out surprisingly wholesome.
I really don't think it is very many. There are clear patterns of failure for fizzbuzz - the biggest is the "copy-paste programmer" who sees a blank canvass and just has no idea where to start. Then you have your people who can write conditionals but can't reason about them - they will very often end up with a solution that compiles, but always prints the number no matter what, or never prints FizzBuzz, or some other obvious error that should be apparent on a quick review of ones code. Most of these people also take 10-15 minutes to write it out, where competent programmers consistently bang it out in five minutes or less. (And yeah, some of them probably know it by heart by now. Oh well.)

Screening someone who just absolutely can't program at all is, IMHO, by far the worst part of technical interviewing.

> a suprisingly large number of applicants who can write an impressive looking CV can't write it

There was another HN thread recently where posters were ardently justifying lying on their resumes.

Anyone who can claim to be able to code at least a bit should be able to implement FizzBuzz. As such, it's a childish joke for most programmers.

But the alarming thing is that I've read there are people coming to programming interviews who can't fizzbuzz despite the experience listed in their CV. While rather unbelievable, if it really is true then it only makes sense to ask candidates to write FizzBuzz in the first screen before they waste any more of the teams' time.

No sane interviewer says "write Fizzbuzz" as if you should already know what the name means. They give you the specification.
That's what I'm saying.
FizzBuzz is much less of a game and much simpler of an algorithm than e.g. looking up something in a sorted binary tree. Do you have a problem with the latter as an interview question?
No I don't and that's my point.