Why The “199 Out Of 200 Applicants Can’t Write Code At All” Claim Is Misleading

Or “Software Engineer Screening, FizzBuzz History, and FizzBuzz In The Modern Age”

Evan SooHoo
6 min readOct 24, 2023
Photo by Victoria Strukovskaya on Unsplash. The % operator

The title I just used was a mouthful, but it is derived from the much catchier blog post titled “Why Can’t Programmers…Program?” The blog post states:

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.
https://blog.codinghorror.com/why-cant-programmers-program/

Though Jeff Atwood posted this in 2007, it still remains widely discussed to this day. Here is someone asking about it in 2020, here is someone posting that exact same blog post to HackerNews in 2021, and here is someone quoting it on a corporate site.

I have been asked before to be more concise, so here is a short version of my post. I hope to convince you that:

  • The “199 out of 200 applicants” statistic is not really based on anything
  • Even if the statistic were based on anything, it would only apply to applicants, not programmers as a whole
  • If you can solve FizzBuzz, that does not mean you are automatically well-equipped for coding interviews

My Motivation And Source

In my opinion, there are two very different problems in programming right now: On one hand we have people over-selling programming as easy money, and on the other we have the complete opposite — elitism and unnecessary gate-keeping.

I already wrote about Jeff Atwood’s blog post in the past, and I received a pretty critical response. Instead of responding to it directly, I wanted to focus specifically on the “199 out of 200 applicants” claim. If there were definitive proof that in 2007 199 out of 200 applicants for every programming job could not write code at all, as Raganwald claimed here, then my personal feelings about elitism and gate-keeping would become irrelevant in the face of cold, hard data.

Here is a little internet history:

  • On January 27, 2005, StackOverflow co-found Joel Spolsky wrote this blog post that was simply called “News”
  • On January, 2007, software developer Imray Ghory (today he is a venture capitalist) wrote that the majority of computer science graduates cannot even solve FizzBuzz
  • On January, 2007, a software developer and author named Raganwald wrote that 199 out of 200 applicants for every programming job can’t write code at all. As a source, he left a link to Joel Spolsky’s aforementioned blog post
  • On February, 2007, StackOverflow co-founder Jeff Atwood finally wrote his “Why Can’t Programmers…Program?” blog post and tied everything together. He quoted Raganwald, who in turn referenced Joel Spolsky

Why have I refrained from discussing Joel Spolsky’s blog post? Because it does not really say what Raganwald claims. From Joel’s post:

Everyone thinks they’re hiring the top 1%.

Martin Fowler: “We are still working hard to hire only the very top fraction of software developers (the target is around the top 0.5 to 1%).”

Me: “We get between 100 and 200 [resumes] per opening.”

I remember when I started working for David Shaw he told us they only hired “1 out of 200.”

I hear this from almost every software company. “We hire the top 1% or less,” they all say.
Source

Spolsky is not providing any evidence that 199 out of 200 applicants cannot program, nor is he claiming to. Instead he is musing about how if everyone seeks to hire the top 0.5% then the best candidates will be removed from the job market. This is not wrong, and this is interesting, but it also confirms that the number was hypothetical. Raganwald later wrote this response post to explain the math, but what he included was a thought experiment about how in interviewing, like in dating, some of the best “candidates” are not searching. This is not controversial, but it is a far cry from the “199 out of 200 applicants” statistic.

Further Discussion

I am not the only one confused by this. It was answered very succinctly here, in a Quora post:

I read all 3 of the author’s sources in the article and the author in question is mistaken or misinterpretted the meaning. However in his defense, he also doesn’t put all the 3 articles together. So perhaps you just misunderstood the point he was getting across.

The first source says that 199/200 people don’t land a job and that companies hire that 1/200 not because they’re hiring the top 1% but because they’re hiring the 1% that are not continuously out of a job. It has nothing about FizzBuzz.
— David Shi, from this thread

And on StackExchange, someone with the handle DJClayworth wrote:

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
Source

Another user, Jimmy, writes immediately after that:

The follow up “explaining” the math 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.
Source

The Implications Of FizzBuzz

When I first wrote about this, a commenter with the username James responded. He said (and I am paraphrasing): “As you kind of get to later, if you think that the ability to solve FizzBuzz puts you at the top then you would be missing the point of the test. The test is not to see if you are qualified, but if you are unqualified. If you can solve FizzBuzz then it actually tells me very little, but if you cannot then I already have seen everything I need to know.”

As someone who graduated college in 2016, I have never personally seen FizzBuzz, but I have seen things similar to FizzBuzz. For example:

  • String Compression. I see this is a LeetCode medium, but I think it is medium because it has to be solved in place. If not for that, it would correspond perfectly to Cracking The Coding Interview 1.6 (and it does not help that LeetCode phrases the problem so confusingly)
  • Valid Parentheses (Hint: What data structure would be useful for solving this problem?)
  • The string question. I do not remember exactly how the “string question” went, but I believe it was to take two equally-sized strings and return true if a letter matched and false otherwise. This was an interview question for technical writer, though, so perhaps it should not be included

What is FizzBuzz in the modern age? Maybe the “invert a binary tree problem,” but only because it has become something of a meme at this point.

Closing Thoughts

Not everyone asks a coding question. I have received clarifying questions about projects, domain knowledge questions like “What is the difference between dynamic_cast and reinterpret_cast?” and more than a few tests in which I did not receive a choice of programming language. I even had someone provide me with HTML/CSS/JavaScript files, once, and ask me to implement a new UI feature while they watched.

Here are a couple brain teasers I have received as well:

  • 3 1 3 6 = 8. Insert operators (such as + or -) to make the equality true. I have posted this question before, so let me clarify: You cannot change the order https://www.careercup.com/question?id=1691
  • “There are three boxes, one contains only apples, one contains only oranges, and one contains both apples and oranges. The boxes have been incorrectly labeled such that no label identifies the actual contents of the box it labels. Opening just one box, and without looking in the box, you take out one piece of fruit. By looking at the fruit, how can you immediately label all of the boxes correctly?” (Source)

--

--

Evan SooHoo

I never use paywalls (anymore) because I would get stuck behind them.