I was asked by our company’s HR guy to take part in a job interview with a candidate and ask a few “technical” questions. The candidate was final year undergraduate at the Technical University and hasn’t worked anywhere yet (at least his CV was silent about it), so I prepared really easy questions for him. The interview started like this:
Me: Can you tell us about some of your bigger projects? What were they about? What technologies did you use?
Candidate: Well… I haven’t done anything bigger. Only the tasks they gave me at the university. And some examples from the books.
Me: What Java technologies do you know or have used? (He wrote in his CV that his Java knowledge was ‘good’.)
Me: Hmm… what’s the biggest thing you have written in Java then?
Candidate: It was a compression utility.
That tickled my interest, as compression is one of my favourite topics in Computer Science (even my Master’s Thesis was about compression algorithms).
Me: Can you tell me more about it? What algorithm did you use?
Candidate: I don’t know the algorithm. I just used the standard Java class ZipOutputStream.
Ah… What a disappointment. Trying not to show it, I carried on:
Me: Okay… so maybe you can tell us about something you have written that you’re proud of?
Candidate: Err… Not really. You know the tasks they give you at the university. Mostly boring computations and so on…
Me: Haven’t you written anything for your own pleasure? Or to see if some idea works?
Candidate: Hmm… no, not really. You know, only the examples from the books…
After these few questions I knew for sure that this guy had absolutely no passion for programming. He wasn’t even mildly interested in it. He probably chose studying Computer Science because it’s easy to find a good job afterwards (oh, irony). And while we aren’t looking for fanatics, a candidate without skills and experience must compensate that in passion. If he was passionate, we might say: ok, he’s going to learn everything he needs quickly. We probably wouldn’t but we might.
Then I asked about several more general things and found out that the candidate haven’t heard of design patterns or unit testing. He also couldn’t remember reading anything interesting in the Internet, no articles, no computer oriented news-sites, no blogs. This all confirmed my opinion about his lack of interest.
But still the worst was to come:
Me: Okay, now for an SQL question: how do you implement a many-to-many relation in a database?
Candidate: With an additional table.
Me: That’s right. And what does this additional table store?
Candidate: Hmm… Err… Well… I don’t remember.
Me: Well, try to invent something. What information would you put there?
Candidate: Hmm… Well… No, I don’t think I’ll be able to invent anything.
Me: Let’s look at some example, ok? If you have a table like Employees and another table like Projects and you know that every Employee has many Projects and every Project has many Employees, how do you represent such information in a database?
Candidate: I don’t know.
Me: What about one-to-many relation? E.g. an Employee can only belong to one Project. How would you implement this relation?
Candidate: I don’t know.
No passion and no motivation. What was he thinking? You can’t go to an interview and say: I don’t know how to solve this problem and I’m not even going to try it. That’s the worst answer ever. Teh worstest. Evar.
Would he say that to his boss if he was actually hired? “Sorry, boss, this problem is too hard for me. I won’t bother looking for a solution. Find me something else.” And, best of all, his CV stated that he has a “high degree of self-motivation and determination”. Oh really?