53

On the blog Coding Horror, Jeff Atwood quotes individuals as saying that a large number of programming job applicants are unable to implement FizzBuzz. Why Can't Programmers.. Program?

[Quoting Don't Overthink FizzBuzz]

Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can't write code at all. I repeat: they can't write any code whatsoever.

The author he's referring to is Imran, who is evidently turning away lots of programmers who can't write a simple program:

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes. Want to know something scary? The majority of comp sci graduates can't. I've also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

Are a large proportion of programming job applicants unable to implement FizzBuzz (or a similarly simple task)?

Andrew Grimm
  • 38,859
  • 36
  • 141
  • 342
  • 19
    The "large proportion" might need to be defined if you want a definitive answer on this. 199 out of 200 not knowing the modulo operator does sound ludicrously high – Mikey Mouse May 06 '16 at 11:10
  • The claim is not that 199 out of 200 coders can't do fizzbuzz (read the article by Joel linked to verify). The claim is that a "large proportion" can't. I don't think this can be answered conclusively, true or false, but certainly we could do with better data. – Sklivvz May 06 '16 at 12:54
  • @MikeyMouse The 199 out of 200 is probably a case of Chinese whispers, as it's based on "Me: “We get between 100 and 200 [resumes] per opening.”", not that all the rejected individuals can't program. – Andrew Grimm May 06 '16 at 13:36
  • 8
    @MikeyMouse even if you don't know the modulo operator, you can still work out the remainder using the standard arithmetic operators without too much difficulty, which makes 199 out of 200 even more ludicrously high. –  May 06 '16 at 14:01
  • @Dawn Comp sci grads applying for jobs. – Andrew Grimm May 06 '16 at 14:43
  • 26
    This is just a mixup of claims. The original source (Imran) only says "The majority of comp-sci graduates can't implement FizzBuzz in a couple of minutes". That's very different from saying 199 out of 200 programmers can't implement it at all. The '199 out of 200' comes from Joel's entirely hypothetical analysis of recruting, and says nothing about FizzBuzz. – DJClayworth May 06 '16 at 16:29
  • 2
    The follow up ["explaining" the math](http://weblog.raganwald.com/2007/03/thank-you-for-writing-such-heartfelt.html) makes absolutely no attempt to explain the math, but rather uses a "thought experiment" boiling down to "good programmers already have jobs, so only people who can't program are applying for jobs" to justify where the 199 of 200 claim comes from. Barring actually seeing unmodified results of their FizzBuzz exam it seems suspect, or at least impossible to verify. – Jimmy M. May 06 '16 at 18:12
  • Note that the problem isn't really well-specified: for multiples of 5, do we print just 'buzz', or the number and 'buzz'. This leaves a lot of room for claiming that applicants got it wrong, as whichever way they did it is 'wrong'. Only asking for clarification is 'right'. (And if I was doing the interviewing, anyone who showed me the example in the link would be asked leave right now :-)) – jamesqf May 06 '16 at 18:30
  • also I wonder about definition of comp-sci graduate. Is it B.Sc. of Comp. Sci. form major university? Is it a person who had one semester of Introduction to Programming in local community college? – vartec May 06 '16 at 19:09
  • 15
    Something to keep in mind--those same applicants apply and fail time and again and thus get way overcounted compared to their prevalence in the population of "programmers". – Loren Pechtel May 06 '16 at 22:56
  • @Dawn Atwood talks about Imran "turning away programmers", and Imran's blog post is categorised in "job interviews". – Andrew Grimm May 06 '16 at 23:58
  • 22
    Just to call out one detail, "on paper". The difference between writing code with pen and paper, and writing code using the tools of the trade, such as an IDE, or even just a compiler, may be pretty significant. I've always found evaluating a programmer based on the ability to write code on paper akin to evaluating a carpenter based on the ability to pound nails with a chicken bone. – femtoRgon May 07 '16 at 02:36
  • @femtoRgon Well put, though I suppose this depends on if the interviewer will accept pseudo-code. – Harris May 07 '16 at 14:49
  • 1
    Let us look at this a bit differently. Is there any peer-reviewed studies that document that many in the software industry do not know how to create simple algorithms when they require some maths knowledge? I doubt that there are any studies in which case we really can't answer the question. – Bent May 07 '16 at 15:11
  • 2
    http://codereview.stackexchange.com/questions/11489/fizzbuzz-implementation the currently highest voted answer is not that good as it does not allow for extending with outputting 'zoom' at the end when the number can be divided by 7. Why don't people just add to a string/stringbuilder and if it is empty (the tested number is not divisible by any of the required numbers) output the tested number. So the stack exchange finest do not get it absolutely right ;-) – Bent May 07 '16 at 15:22
  • 2
    There is no notable claim for this and it needs to be closed. – DJClayworth May 07 '16 at 19:22
  • @DJClayworth Are you saying that Jeff Atwood isn't notable enough, or something else? – Andrew Grimm May 08 '16 at 12:21
  • 1
    Aside from our obvious affiliation with Jeff, he is just one blogger and not notable by himself. But what I'm really saying is that I don't think Jeff is claiming what is in the question. – DJClayworth May 08 '16 at 15:45
  • 3
    @jamesqf - whether the number is printed for multiples of 5 is irrelevant for a FizzBuzz test. It's the programmer equivalent of a Captcha, it's trying to filter out non-programmers (and "programmers" who are utterly incompetent). If an applicant can write FizzBuzz, they can write it whether multiples of 5 print the number or not. Now, that said, the word "buzz" is printed *instead of* the number. – Mar May 11 '16 at 22:20
  • I've worked with plenty of people (in the 1990s) who were employed as programmers and would require about a day to get Fizz Buzz written correctly and debugged. I know that sounds insane and unbelievable but it's true nonetheless. I remember one taking over a day to add an extra column to an existing report. – TheMathemagician May 12 '16 at 16:47
  • @TheMathemagician: Perhaps I've worked in the wrong part of the industry (or perhaps have been grossly underpaid all these years). Though I do recall doing in an afternoon what the IT department said would take a month or two... – jamesqf May 14 '16 at 05:20
  • 5
    Also note that the claim is > 10 years old. That's a looong time in IT years... – Jared Smith Sep 28 '17 at 15:15
  • 2
    Worth repeating what the original article says: If you have 200 applicants, you have 1 that is good, and 199 that are useful and apply for every single job and never get it. You hire the good applicant. A new job opens, with another good applicant and the same 199 useless ones. – gnasher729 Aug 17 '19 at 21:58
  • 5
    @DJClayworth I suspect the success rate only goes down when forced to implement fizzbuzz on a whiteboard instead of an actual computer, with onlookers, while interviewing, and unable to test, lookup proper syntax, or fix a mistake. Measures ability to perform under pressure and memorize more than programming and problem-solving ability. – Paul Aug 20 '19 at 02:16
  • @Paul in addition, since the problem seems simple to capable programmers they may think that it is a trick and get stuck with the question „what is the trick?“ – Hartmut Braun Jun 28 '20 at 08:13
  • 1
    From my personal experience as a recruiter, it's not as rare as I had expected before I did recruitment. One would think someone with a software engineering degree would pass such an easy task with flying colors, but I saw around a quarter of the candidate unable to achieve something that easy in a correct and somehow smart way. I won't generalize, and that's why I don't write an answer, but that's what I saw. – Alexis Dufrenoy Jun 30 '20 at 16:35
  • 2
    Absolutely don't believe this. Unless today's graduates are confused by the word "print" in the test question. – user8356 Jul 02 '20 at 20:41
  • 1
    I'm wondering how many of these 'programmers who can't program' are being asked to write on paper for a programming language they've never used a syntactically-correct program for a very specific implementation, and being failed on basic syntax - something that *any* decent IDE would catch for you before you even compile. – Zibbobz Jul 08 '20 at 13:00
  • 2
    @zibbobz probably a few. That said, I've seen a number of people fail it. Most usual pattern is they start writing pseudo code as they read the requirements, realize (after a couple ifs) that it doesn't work that way, start flailing, and aren't capable (in the context of the interview) to go back on their thinking/mental model and fix it. How much of that is inevitable interview pressure (pretty hard to avoid with junior candidates), and how much is just lack of skill is hard to tell. That said, maintaining a cool head under pressure is a good skill to have as well. – ptyx Jul 08 '20 at 17:39
  • @ptyx To be clear here, my implication is that it is *incredibly* easy to fail that kind of test, and the way in which you would fail it is trivial at best when it comes to gauging a coder's actual ability to code. – Zibbobz Jul 08 '20 at 17:47
  • @Zibbobz not sure I agree. Anecdotally, when I've tried FizzBuzz as an interviewer, it was with the best intent, trying to make the candidate comfortable, successful, in their pseudo-language of choice, and certainly not paying attention to minor syntactic issues, etc. Despite that, I've seen an uncomfortable number of failures. (Plus even for those who have seen it online of can just breeze through it, it's a good base for follow up questions. e.g. 'now how would you write a unit test for it?'). – ptyx Jul 08 '20 at 18:34
  • 1
    @ptyx That is fair - I haven't been in that sort of position before in giving and observing the results, so I think you would probably know the actual results better. While I don't imagine it would be too hard for myself, I can still imagine younger less experienced programmers having some issues with the concept. – Zibbobz Jul 08 '20 at 18:46
  • I remember a version of this claim about Indian developers, with further claims like they couldn't write code that compiled. At the time it seemed like a simple xenophobic attack on H1B workers. Maybe this is similar, just attempting to slander all the competition for jobs. – dont_shog_me_bro Sep 22 '20 at 10:31
  • 2
    perhaps a better, related, question would be "how many self proclaimed programmers are unable to code?"... to which i would say: **about 40%**. because: i don't think there's anything special about programmers or jobs; that this is a common human behaviour, such as pointed by https://www.psychologicalscience.org/news/releases/self-proclaimed-experts-more-vulnerable-to-the-illusion-of-knowledge.html and; that like i saw on a recent veritasium video (https://cregox.net/random) about 40% of the time we do overestimate our own competency, as a human race. – cregox Oct 03 '20 at 01:26
  • In common for every dedicated task, we expect 10% incapables. When it comes to 90% or more, the statement also could assign its author. – Sam Ginrich Feb 15 '22 at 14:47
  • 1
    How do you define “percentage of applicants”? If 100 apply once, each to a different company, pass the test and get a job, and one applies to 100 companies and fail, each company would say “50% passed, and 50% failed”, when in reality less than one percent of the applicants failed. – gnasher729 Aug 27 '22 at 09:02
  • Voting to close as Too Broad: there are multiple different blog posts linked here, each of which is making a different claim - some are directly disputing the others. None of the authors appears to even claim real evidence for or against, only anecdotes and hypothetical scenarios. Which author's claim are we supposed to be examining? Where is the evidence of notability? – IMSoP Aug 30 '22 at 17:35
  • Some problem like Fizzbuzz can be put to an applicant in a variety of different ways. Sometimes the interviewer is judging on whether they produce results. Sometimes on the thought process. Sometimes the interviewer is trying to see how they handle missteps/mistakes. Sometimes the interviewer wants to see how/if they ask questions. Without more details on what passing actually means, a quantitative answer can't be given. – bharring Feb 02 '23 at 18:55
  • Note that what it means to pass can vary. In some cases, code that meets the spec is actually worse than code that doesn't, but that is too complicated a subject for this board. – bharring Feb 02 '23 at 18:57
  • 1
    Someone pointed out, as a criticism of my answer, that the blog post being referenced is 16 years old. Asking about how things ***are*** based on a complaint from over a decade ago is not a notable claim. Voted to close. – PoloHoleSet Feb 09 '23 at 18:53
  • 1
    @PoloHoleSet Just because it is older doesn't mean it is no longer notable. – Joe W Feb 09 '23 at 20:51
  • @JoeW - maybe not JUST because, but the programs used, programming tools programming platforms, now apps are hosted, delivered, possible features, styling, etc. are nothing like they were 16 years ago, neither is how programming is taught, how much experience people are immersed in early in life, how it's taught in schools, etc. Languages that were cutting edge 16 years ago are gone and no longer used. For this subject? The state of the subject 16 years ago bears to resemblance to how it is today. This is not a notable claim. – PoloHoleSet Feb 10 '23 at 00:23
  • from personal experience, no. Limited data set, obviously, but in my previous job I was involved in about half a dozen job interviews for a senior developer position. Only 1 of the applicants couldn't do it, and that was probably because of a language barrier (which quickly became apparent during the job interview, even before we got to the technical discussion, and ultimately was reason to end the interview). However, many people (including me up to that point) don't know what you mean with "the fizzbuzz problem" until it is explained, as we've never heard of it. – jwenting Feb 10 '23 at 07:25
  • once explained what's needed we can rapidly provide a solution. – jwenting Feb 10 '23 at 07:26
  • 1
    I repeat my comment from August: this question is quoting a *discussion between multiple authors*, who talk vaguely about personal experience, and don't reach the same conclusion as each other. It has no evidence of notability, and no clearly defined claim. All it's generating is lots of off-topic chatter. It should be closed. – IMSoP Feb 10 '23 at 07:50

0 Answers0