Maybe the title should be “Why Can’t Johnny Code?”. I had a conversation a while back with my wife about hiring for a software engineering position and how difficult it is to find a decent programmer. She was surprised how many posers there are in the software industry.
I have interviewed (and been interviewed) many times. An interview is really disquieting to both sides. The interviewer is trying to figure out the competency of the interviewee. The interviewee is trying to keep their anxiety down and impress the interviewer with their incredible programming prowess. My experience has been that the interviewee’s anxiety either gives the wrong message or makes them prone to mistakes. The interviewee has no chance to prepare ahead of time for every different question that the interviewer can ask. I once failed an interview because the interviewer kept on asking me “whats kinds of things do you do?”. I gave a general answer which didn’t suit him. If you want a specific answer, ask a good question.
Because of this anxiety, I think it is the interviewer’s duty to put the interviewee at as much ease as possible to give them a fair chance. Getting the interviewee into some kind of comfort zone will allow them to be as normal as possible.
That said, I have conducted some interesting interviews. There was one guy who I interviewed over the phone and seemed like a good programmer. I told him there would be a very simple test when he arrived. The test was the equivalent of a DHTML “Hello World”. As soon as I brought up the test he became very visibly nervous and started sweating. I told him not worry and he would do fine. After 1.5 hours, he told me he couldn’t do it.
I was curious why he couldn’t do it. He eventually said that he would usually copy and paste code from the Internet. From his resume, he had already done this through 3 previous jobs.
I was reading an interesting blog about another person’s experiences with interviewees. He wrote a way to see some write live code via the web. This would have saved so much time and money.
I have found a good basic metric for a programmer’s abilities is the simple “FizzBuzz” or write a program to output different things every X times. You would be surprised how many people don’t know what the modulus is.
My experiences as an interviewee seem to depend on which interviewing book the interviewer read last. Some people do the word questions (manhole covers, etc). Personally, I hate those and they are more about memorizing the responses than knowing the response. In other words, you get a lot false positives and negatives.
Interviewing seems to be an art unto itself. A good interviewer will know relatively quickly how good a candidate is and the rest of the questioning will firm that up.