Recently there was a kerfuffle in the blogosphere about FizzBuzz as an interview question. It turns out that a wide swath of computer programmers don’t really know how to program a computer.
As someone who interviews candidates for jobs in software development, I know that there are a variety of ways to determine ideal candidates. At IBM we have a process of pre-screening, interviewing, testing, and selection that usually gets the best folks for the job. It is by no means foolproof, but we generally get really good people working here. In addition, we tend to fill a pipeline of internship students who go through a trial-by-fire to see if they would make good regular employees and we often (not always) hire from this pool of student employees.
Jeff Shantz is a student who outlined the entire experience of getting hired by IBM on his blog. (I had the privilege of interviewing Jeff myself. He declined the offer we gave him in favor of another IBM opportunity. He applied to 47 IBM jobs so he probably disappointed 45 other hiring managers too.) I am convinced that many companies would not get away with putting people through the kind of ordeal we do, but people who are motivated to work at a particular company will bite the bullet and accept a certain level of administrative agony. I hear stories about other high-profile companies with even more arduous hiring processes.
In a way, the process itself is a filter. Those who can navigate their way through it without tossing in the towel are better candidates than those who give up. I will still work to streamline the experience for others.