I have recently had the peculiar experience of trying to hire software developers. I have read resumes, posted on different job boards, talked to people live and by phone.
The funny thing is that I have had to reject almost every single applicant.
You might say that perhaps I was too demanding. That’s certainly possible, but I don’t think that’s the case. The only thing I was looking for was the ability to independently solve simple programming problems. If I had lowered my requirements any further I don’t know what I’d be hiring but certainly it wouldn’t be software developers.
After having read dozens of resumes I felt confident in the abilities of a few candidates. They all had the right keywords in their resumes. They all had valuable real life experience. They all had been able to keep a job for more than a year. They had good educations.
So I administered my little litmus test. The test was to write a routine that finds the largest possible product of two numbers in an array of positive integers. I like this test because it’s just a couple of lines of code, so it shouldn’t take too long for the candidate – I don’t want to waste their time unnecessarily. At the same time there are many ways to solve the problem – some better than others.
I gave each candidate unlimited time to solve the problem. Since there weren’t any time constraints I didn’t think anyone would fail, and I expected to see excellent solutions.
What I saw was… strange. I gave the test to the people I thought were the top ten people from a set of 40-50 candidates from Silicon Valley.
Only two candidates came up with a working solution.
Even people who submitted their answers via email submitted non working solutions!
It’s not a large sample. Maybe I failed to find the top candidates out of all the applicants. But as anecdotal as it might be I am still shocked. How can highly educated software developers with many years of experience fail to write software to find the two largest numbers in a list?
What do you think? Is the educational system so horrible? Is software development fundamentally hard? Are resumes misleading? Did I just run across a bad batch?
Update 1: The cuzimatter links were updated on February 28th, 2007.
Author: Alexander Ljungberg Tags: analysis