It is extremely difficult to evaluate a candidate in a job interview, and even more difficult if this candidate is a fresh graduate. In this case we can talk about his grades, the courses he took and the projects he did during his studies. But we cannot learn from his previous experience. Of course we can focus on his soft skills or his problem-solving abilities, but we still need to predict his performance doing a job that requires specific technical skills.
In the case of software developers, we would like to predict if the candidate will be an effective programmer and a good team member. As I’ve written in a previous post, I believe that nothing is more effective than enthusiasm. Then, the question becomes: Will this candidate enjoy being a programmer? Will he be enthusiastic about his tasks?
I believe this question is extremely relevant today, because software development became a popular profession with very high salaries. In the past, people wanted to study Computer Sciences because they really were interested in working with computers; they were very technical-oriented and liked Math. But unfortunately today it is very common to meet students that chose Computer Sciences just because they know that it will be easy to find a good job with a great salary. And I say “unfortunately” because if these students do not really enjoy programming they will not be happy in their future jobs.
Thus, when interviewing the fresh graduate, we want to know: Is this guy of the first kind, the one that always loved computers and has a passion for programming? Or is he of the second type, the pragmatic that chose his faculty with the goal of finding a good job afterwards, but without any special attraction to algorithms and data structures?
Malcolm Gladwell, in his book “What the Dog Saw”, has a chapter entitled “Most Likely to Succeed” in which he discusses the challenge of hiring the best candidate. He mentions one corporate recruiter who used to ask the question “Give me a typical day”. I think this question is excellent, especially for fresh graduates, and I can imagine it in an interview:
Interviewer: “Please describe your typical day.”
Candidate: “I wake up at 7:00. I arrive at my first class at 8:00 and then I’ve classes until 12:00. I eat lunch with my friends, and then I spend the afternoon doing my home works or projects. Sometimes I need to go to the library or to a computers farm in the faculty. Around 18:00 I go either to the gym or to the swimming pool. When I come back home I have dinner and then I watch TV or surf the Web until I go to sleep around 11:30.”
Interviewer: “And when do you code?”
Candidate: “Well, I normally have projects in which I have to code, and some of my home works also require some programming.”
Interviewer: “Sure. But when do you write your own programs?”
If a candidate presents himself as a programmer, I expect him to have his own pet projects, besides home works or projects he had to do during his studies. Today there are many platforms that allow programmers to develop interesting ideas with relatively small effort: Web sites, Facebook games, iPhone or Android apps. These are examples of applications that can be implemented by a single person working during his free time. And of course there is also the option of contributing to a much greater project as part of an Open-Source effort.
If you are a fresh graduate, perhaps you got a nice diploma, but if you do not have any personal project I doubt you truly enjoy programming. And since I believe that you must really have fun coding to be a great programmer, I’m sorry, but if you do not have pet projects I would not hire you.
You may want to take a look in my other posts about the hiring process.
Feel free to leave a comment or question, and good luck!