I always thought that there is a paradox around the FizzBuzz test.
On one hand companies claim that X% of their candidates could not solve FizzBuzz, where X can be as high as 95%. This somehow suggests that it is rare that people who call themselves programmers can program even a little bit.
Let’s look at the other side of the coin: There is evidence that there are millions of living programmers who can create working software. Software that actually achives something, that is used, that can be selled. Where do I know it? Even the lowest-paid tier of our industry can create working software. Let’s see some stats: There are more than 900.000 apps alone in Apple’s appstore, created by at least 250.000 devepers, most earning very low amount of money. Similarly for Google Play. We all know that the number of websites, the number of web programmers is way bigger than this, maybe an order of magnitude bigger. On sites like ‘rentacoder’, ‘elance’ etc… people are offered very low amount of money for actual working code.
How is it that on one hand it seems that a programmer who can even program some lines of code is someone special, on the other hand it seems that there are millions of programmers who maybe write mediocre code, write maybe unmaintanable code, but it is beyond doubt that they can write some lines of working code?
This is a huge paradox. I don’t know the exact resolution of it. I think it is a combination of lots of things, which are all (half)true:
– Most programmers can solve FizzBuzz. It is the programmers who do not have jobs and try to get into hundreds of companies that cannot solve FizzBuzz. They are the minority but they apply to lots of jobs.
– Programmers got better, FizzBuzz results from 2007 are no-longer relevant in 2013.
– People are incredibly stressed on an interview
– Geographical differences. At some parts of the world there is probably really shortage of even mediocre programmers, because the demand is so high. At other parts of the world it is not true, but we hear the FizzBuzz stories from the high-demand places.
– It is possible to create relatively simple but working software without algorithmical and/or mathematical thinking. The tasks at a real job are THIS MUCH different than an algorithmization task.
What do you think? How can this paradox be resolved?
(If you liked this post consider downloading and trying my iOS puzzle game called ‘Find the Mafia!‘, which I just made free for some days to reach more people. It is especially interesting for geeks because it is based on a graph-theory problem, called ‘maximum clique problem’.)