The Non-Programming Programmer

I just discovered this article, as well as an earlier article on Coding Horror, and can’t help but agree – the majority of programming/software engineering candidates out there looking for jobs are not qualified to be programmers. They do not have the skills and cannot write anything beyond simple programs.

From the article:

“…I am stunned, but not entirely surprised, to hear that three years later “the vast majority” of so-called programmers who apply for a programming job interview are unable to write the smallest of programs. To be clear, hard is a relative term — we’re not talking about complicated, Google-style graduate computer science interview problems. This is extremely simple stuff we’re asking candidates to do. And they can’t. It’s the equivalent of attempting to hire a truck driver and finding out that 90 percent of the job applicants can’t find the gas pedal or the gear shift.

I agree, it’s insane. But it happens every day, and is (apparently) an epidemic hiring problem in our industry. “

Joel Spolsky from Joel on Software had also written about this problem back in 2005, positing a hypothetical 200 resumes received for a job posting:

Now, when you get those 200 resumes, and hire the best person from the top 200, does that mean you’re hiring the top 0.5%?

No. You’re not. Think about what happens to the other 199 that you didn’t hire.

They go look for another job.

That means, in this horribly simplified universe, that the entire world could consist of 1,000,000 programmers, of whom the worst 199 keep applying for every job and never getting them, but the best 999,801 always get jobs as soon as they apply for one. So every time a job is listed the 199 losers apply, as usual, and one guy from the pool of 999,801 applies, and he gets the job, of course, because he’s the best, and now, in this contrived example, every employer thinks they’re getting the top 0.5% when they’re actually getting the top 99.9801%.

Interesting insight, and I think very close to reality.

Recruiters are of little help, as they 1) are not technical enough to weed out the weenies, and 2) in some instances they lie and maneuver to get these weak candidates past your screening process.

The importance of the screening process cannot be overstated. There’s no reason why you should have to perform in-person interviews on anyone that can’t do the job.

About Kevin

Kevin Jarnot is a technologist who lives just South of Boston, MA. He is currently employed as Chief Technology Officer at Micronotes, an AI-driven conversation-marketing company based in Boston, MA.
This entry was posted in Management, Tech and tagged . Bookmark the permalink.

7 Responses to The Non-Programming Programmer

  1. vinicius hisao suzuki says:

    That is the reality! to reach the best employee, you need to be fast – reach then as soon as you can!

  2. Markus says:

    I disagree. The source article is just esoteric programmer nonsense. Blasting a potential stellar candidate because they can’t produce a solution in a “couple of minutes” to a silly brain teaser math problem? Maybe they’ve spent more time resolving revenue-based enterprise development issues? I’d be more interested to see how they constructed the code rather than if they remember basic elementary school math. If an interviewer judges you on your memory of syntax, then run for the door. That’s what Google is for. This level of coder is almost useless in the fast-paced enterprise environment. They stay entangled in the weeds and cannot see the bigger picture. They are equivalent to driving down a one-way road versus a 4 lane freeway – deep, but narrow. If you are a CompSci graduate and doing low level algorithms in a commercial product environment, ok, then sure. But most of us are working with business data and solving real world problems. Understanding enterprise platforms, databases, business intel, OO concepts, integrations and the myriad of languages available for a given solution are more important in the enterprise. I would hire a well-rounded psych major turned developer who can create a solid solution from an abstract business problem over a “spend all day debating the number of decimal places in Pi” computer science major any day.

  3. Kevin says:

    Hi Markus, I don’t believe they were referring to a “silly brain teaser math problem”. They were giving simple programming problems to candidates to determine if they could code a solution. Any good programmer should be able to write code for a FizzBuzz-style problem in minutes, and if they can’t, they’re probably not a very good programmer. If anything, these problems can be effective in screening candidates. Nothing theoretical or “intellectually masturbatory” about it.

    Yes, syntax can (and in many cases should) be referenced via Google, but pure programming skills are different. You can either code well, or not code well. When I give these types of problems to candidates, they have their choice of languages for the solution, and can even decide to use bastardized pseudo-code. Memorization of language syntax or library methods is not the point of the exercise.

  4. Markus says:

    I see your point Kevin ; however, I just respectfully disagree, at least in part. Maybe it’s the difference between a traditional “programmer” and an enterprise “developer” or consultant. If they wanted pseudo-code in a few minutes just to make sure they aren’t dealing with an idiot, then sure, I guess I can see some value in it. But I don’t value speed coding. I actually did the exercise myself, took me about 10 minutes. Then I saw that I could have made it cleaner so I spent another 5 or 10 minutes making it smaller. Honestly, most of that first 10 minutes was spent trying to remember that darn modulus operator. Coding a loop and adding conditional logic was simple. Anyway, that’s how I design. I don’t and never have rushed through a model. I’ve had a great development career, but by the criteria of that article alone, I’m probably sub-par. I guess my concern here is that hiring managers and recruiters are reading this stuff and potentially forming preconceived opinions about candidates out there. With unemployment at record highs, and our industry plagued with offshoring making it a rotten situation, the last thing we need is ivory tower programmers painting a picture of a bunch of dimwits applying for programming jobs. It’s simply not true. All that will do is make hiring managers over-compensate and start requiring only Mensa members for programming jobs.

    I have interviewed dozens over the years and hired quite a few. I have never seen stats as bleak as in that article. I think the degree of the problem is no worse than any other profession. The difference is that business people are not nearly as critical as we are. We’re shooting ourselves in the foot by calling into question the quality of the talent pool. Be careful doing so…it could be you who is unjustly judged one day.

    I also found it hilarious that so many programmers did the exercise, supposedly in seconds, then spent time posting their code, criticizing others’ and debating the best way of doing it. To me, that is a perfect example of my previous posting. Effective use and prioritization of time is a skill they should consider testing as well 😉

    • Kevin says:

      Markus, how else can you separate the wheat from the chaff during interviews? If I’m hiring programmers (or software engineers, or developers – there is no real difference IMHO), how can I determine if the candidate can do what I need them to do? Testing during the interview process is the only way. Experience listed on resumes is only words until proven.

      Believe me, as a hiring manager, it’s pretty bad out there. I’m not looking for Mensa members (even though many are). I’m just looking for programmers who can program, and I have interviewed many candidates that couldn’t do the job.

  5. Markus says:

    I see the point, truly…and I’m sorry you have come up against so many ill-equipped programmers. When I have interviewed candidates I have never asked them to complete a puzzle or do a fizzbuzz type of thing. If their resume shows 8 years of coding at respected organizations, I’m going to assume they can code *something* or would have been called out long before now. Instead, I weed out the lesser candidates by presenting typical problems and asking them to tell me how they would solve it – including some ideas on design, integration, database stuff, etc. If they are clueless and cannot come up with anything, then I know they are a “tell me what to do” box-thinker and are not equipped to create enterprise-class solutions.

    I will also say that I have never hired a 100% -pure programmer; that is, someone who does nothing but sit and wait to be handed a very detailed specification and told “start now and be done by X”. If you need someone at that level, then I can see where you’d want to know well they can code, code, and code. We had those types of programmers 10 years ago, but they have been commoditized completely and all are now all offshore.

    Thank you for the exchange of ideas. I appreciate the candor. And by the way, I’m very impressed with your profile 🙂

  6. Mark says:

    I believe self taught programmers are more competent when it comes to writing code but not so competent in ares such as explaining it in detail, or defining certain methods. Being a self taught programmer I’ve bombed a few on-line assessment tests. but I’ve still created extensive applications by my self. I believe the university programmer believes that just because they went to school for it, they can program.

    Furthermore I think some people write a hello world app and and go apply for a job.

    Thats why HR reps have turned to writing insane job postings, like 10 years C# experience required, 7 years this and 6 years that. I’m only 23 so it really irritates me that they think someone needs that much experience to program effectively. I’m so close to just giving up on the C# programmer job hunt and just sticking with some old dead end job and live that pay check to pay check life that nobody wants and never having an actual career.

Leave a Reply