Why Cant Programmers Program?

Coding Challenge Coding Live

Id hate interviewers to dismiss [the FizzBuzz] test as being too easy – in my experience it is genuinely astonishing how many candidates are incapable of the simplest programming tasks.

Lest you think the FizzBuzz test is too easy and it is blindingly, intentionally easy a commenter to Imrans post notes its efficacy:

Maybe its foolish to begin interviewing a programmer without looking at their code first.At Vertigo, we require a code sample before we even proceed to the phone interview stage. And our on-site interview includes a small coding exercise. Nothing difficult, mind you, just a basic exercise to go through the motions of building a small application in an hour or so. Although there have been one or two notable flame-outs, for the most part, this strategy has worked well for us. It lets us focus on actual software engineering in the interview withoutresorting to tedious puzzle questions.

Logo image © 1993 Steven C. McConnell

A surprisingly large fraction of applicants, even those with masters degrees and PhDs in computer science, fail during interviews when asked to carry out basic programming tasks. For example, Ive personally interviewed graduates who cant answer Write a loop that counts from 1 to 10 or Whats the number after F in hexadecimal? Less trivially, Ive interviewed many candidates who cant use recursion to solve a real problem. These are basic skills; anyone who lacks them probably hasnt done much programming.

Like me, the author is having trouble with the fact that199 out of 200applicants for every programming job cant write code at all. I repeat:

I was incredulous when I readthis observation from Reginald Braithwaite:

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.

Thevast divide between those who can program and those who cannot programis well known. I assumed anyone applying for a job as a programmer had already crossed this chasm. Apparently this is not a reasonable assumption to make. Apparently, FizzBuzz style screening isrequiredto keep interviewers from wasting their time interviewing programmers who cant program.

After a fair bit of trial and error Ive discovered that people who struggle to code dont just struggle on big problems, or even smallish problems (i.e. write a implementation of a linked list).They struggle with tiny problems.

So I set out to develop questions that can identify this kind of developer and came up with a class of questions I call FizzBuzz Questions named after a game children often play (or are made to play) in schools in the UK. An example of a Fizz-Buzz question is the following:

they cant write any code whatsoever

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what Im talking about. Find me here:

The author hes referring to is Imran, who is evidentlyturning away lots of programmers who cant write a simple program:

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 cant. Ive also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

Between Reginald, Dan, and Imran, Im starting to get a little worried. Im more than willing to cut freshly minted software developers slack at the beginning of their career. Everybody has to start somewhere. ButI am disturbed and appalled that any so-called programmer would apply for a job without being able to write the simplest of programs.Thats a slap in the face to anyone who writes software for a living.

Coding Horror has been continuously published since 2004

Its a shame you have to do so much pre-screening tohave the luxury of interviewing programmers who can actuallyprogram. Itd be funny if it wasnt so damn depressing. Imno fan of certification, but it does make me wonder if Steve McConnell was on to something with all his talk ofcreating a true profession of software engineering.

Dan Kegelhad a similar experience hiring entry-level programmers:

Speaking on behalf of software engineers who have to interview prospective new hires, I can safely say that were tired of talking to candidates who cant program their way out of a paper bag. If you can successfully write a loop that goes from 1 to 10 in every language on your resume, can do simple arithmetic without a calculator, and can use recursion to solve a real problem, youre already ahead of the pack!

Due to high volume, comments for this entry are now closed.

Leave a Reply