Results 1 to 4 of 4
  1. #1
    BustTheCode is offline Member
    Join Date
    Sep 2013
    Rep Power

    Default FizzBuzz? Is it really 'that' trivial?

    Poking around the internet today I came across the FizzBuzz interview question. Poking around a bit more, I discovered that the problem is a boiling pot of programming angst. It very well may be completely worthy of the stigmatization as being trivial, but I wonder how much of that actually is fair weighed against the implications it has on me that I spent 20ish minutes working on it?

    It may be that I'm not that far along in my programming classes and mathematics, and so I don't have the experience yet to make this 100% intuitive, but it doesn't seem like it's measuring exactly what it's purported to be measuring. Or maybe it's doing exactly what it's meant to?

    My background prior to FizzBuzz:
    It wasn't until last year that I finally learned I can do mathematics (and thus computer science). What i had to first realize, is that I don't process math the way most people do. I think in images and movies. If numbers relate to something visual, their meaning is immediately clear to me, otherwise I have to problem solve via wrote memorization.

    Last summer I completed at a community college the equivalent of high-school algebra 2 for the first time in my life. I was excited so I started researching mathematics. I came across a euclidean algorithm to solve ax + by = 1, where a and b are co-prime. I memorized the steps and could work the problem backwards and forwards, but the reason for the steps wasn't obvious (what relationship does a remainder imply?). I became obsessed, for days, working the algorithm to figure out WHY it worked.

    It wasn't until I stopped, closed my eyes, and let my brain develop pictures for it that I began to understand it. I went all the way back to basic arithmetic to visually understand division. My brain produced immediately an acutely detailed movie of a man loading a truck with crates. One crate wouldn't fit, so part of it's contents were removed and added to the truck. That's when it began to become intuitive. My brain made another leap, showing me an image of a cube. I kept sub-dividing it, and sub-dividing mentally trying to get it to 1 unit, and that's when it clicked. The euclidean algorithm isn't describing one set of operations, it's describing something both infinitely large and infinitely small. The cube in my mind was a sub-division of another cube, and "was" the single (but not smallest) unit of a different problem I wasn't trying to solve.

    So back to FizzBuzz- It may be that I've only just finished pre-calc, but had I been asked this today at some interview (not that i have interviews yet haha), according to the internet, it would have been laughable that it took me 20 minutes-ish to solve. It's not that the problem is so complicated that I need 10 years of doctorate level mathematics, but that it's describing the very mathematical concept that is THE leap from basic arithmetic to math as a universal connector of everything.

    It also may be that solving problems like this will be more time consuming for me (as I had to go back to my infinite cube image in my mind to solve it) because of how I process information and concepts. Does my ability to solve these problems quickly have implications on my ability to become a good, or even great programmer that companies want to hire? I'm not sure. I do know that when I'm faced with a modulo, my brain immediately conceptualizes the infinite and the problem at hand becomes only a tiny piece of that. I also know that while working the FizzBuzz problem, my brain pulled up the cube and applied this simple interview exercise to tens of other immediate applications while making connections to other problems I've worked on in the past.

    So I'm posting this because - what the frick is up with FizzBuzz? It is complex in it's implications (maybe not in its solution) no matter where you come from, so maybe some of the 99.5% of programmers who can't solve it readily are are actually struggling with something else? Or maybe my practical abilities just aren't up to par yet? If that's the case, what types of challenges do I need to take on to become FizzCapable? What does FizzCapability even look like and can it be figured out with modulo?

  2. #2
    DaveW is offline Member
    Join Date
    Jul 2014
    Rep Power

    Default Re: FizzBuzz? Is it really 'that' trivial?

    Like you I'm very much a visual thinker. I failed my CS101 class and for the next 10 years thought I was not cut out to be a programmer, until I tried writing some simple scripts for animation software; the visual nature of it just made it really easy to understand what was going on. I think I've turned into a pretty good software developer, but my different thought process can sometimes make it tricky to communicate with developers who have a hard time thinking visually.

    I've spent most of my career doing front-end development for visually extravagant trade show presentations, and there have been many times where modulo proven very useful. So when I first came across the FizzBuzz test, I immediately knew the answer. I've also been part of the hiring/interviewing process, and I would be reluctant to hire someone who had a hard time with that test. There are many programming jobs where you will never use modulo, but for the type of work I do I think it's pretty good at weeding out people who aren't going to be very good. It's not going to make or break the interview, but it is a red flag if you can't solve it, especially if you give up quickly.

    As for whether or not it's really 'that' trivial, yes I think it is pretty trivial. But if you ever end up in the position where you're part of the hiring/interview process you'd be amazed by how unqualified many applicants are.

  3. #3
    KevinWorkman's Avatar
    KevinWorkman is offline Crazy Cat Lady
    Join Date
    Oct 2010
    Washington, DC
    Rep Power

    Default Re: FizzBuzz? Is it really 'that' trivial?

    FizzBuzz is so commonly discussed on the internet because it's a pretty standard homework assignment in most first-year programming courses. It serves as a good interview question because it weeds out people who can't program their way out of a bag. Other similar exercises include printing out the first X primes, or the first X Fibonacci numbers.

    I wouldn't worry too much about how long it took you, especially if you're just starting out. Thinking about modulus can be counter-intuitive to novice programmers, mostly because it's not used very often outside of programming.

    Without getting too into the "how I think" aspect of this (which seems a bit overstated, imho), I might recommend that you check out Processing, which is a language built on top of Java meant to be more visual and interactive.
    How to Ask Questions the Smart Way
    Static Void Games - GameDev tutorials, free Java and JavaScript hosting!
    Static Void Games forum - Come say hello!

  4. #4
    gimbal2 is offline Just a guy
    Join Date
    Jun 2013
    Rep Power

    Default Re: FizzBuzz? Is it really 'that' trivial?

    I guess this is the "offending" link:

    Fizz Buzz Test

    Its a cute test but it proves basically one thing: if you know the modulo operator and integer math or not. It is NOT an effective test to weed out the helpless.

    In any case if you don't know the modulo operator / integer math, you can just create a program which has a 100 print statements. Now that I think about it, perhaps that is the point :)
    "Syntactic sugar causes cancer of the semicolon." -- Alan Perlis

Similar Threads

  1. Replies: 3
    Last Post: 02-27-2011, 12:03 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts