How to interview a candidate/programmer -- Version 0.0.1
Note: It's based on my process of short-listing candidates/programmers and experiences so far in selecting and building my great team. I'll expand it whenever I get time and will amend versions.
Not many of you were wise in the way the world judges wisdom. Not many of you had great influence. Not many of you came from important families. But God chose the foolish things of the world to shame the wise, and he chose the weak things of the world to shame the strong.- St. Paul
Core facts
- Interviewing is a serious effort and interviewing has great career prospects. Take it as a serious profession.
- Interviewer/interviewee – no one is genius.
- You cannot find a person who knows everything.
- You're not a foreteller and so you cannot identify people by appearance. That's the need for the interview.
- No interview question is right or wrong. You need to take good decision based on many factors—not just by the answers of the candidates
- In most of the ideal cases, the interviewer and interviewee will share only a part of the knowledge (see the Venn diagrams below)
Intro
- Interviewing—face-to-face interviewing needs at least 1 hour
- Big job – think of career
- Projecting company and our name – marketing ourselves
- Serious and selfless process
- Identifying potential is plus and a good for everyone. If you identify and appreciate a potential, they'll remember you for their lifetime
Preparation
- Interviewing needs tough preparation.
- Learn what is interview and why interview is important and how to interview
- Using books and Internet
- The Guerrilla Guide to Interviewing (version 3.0) by Joel Spolsky
- Job interview – Wikipedia
- Microsoft interview - Wikpedia
- Read at least 3 books and articles on interviewing. Remember again that there is no correct approach; every author may have his own opinion. Take opinions or ideas that are very rational to you.
- Technical questions preparation
- We're looking for programmers. So, technical is very important and needs great amount of preparation.
- Prepare as many questions possible in DB, PHP, General, Programming, etc
- OOP – Prepare as many as questions on writing OOP code. Many people ask theoretical definitions; but that many not help to identify the real programmers. Give suitable problems that can be approached by OOP. Give suitable problems to use reuse OOP code or write OOP based library.
- Have at least 3 form of questions prepared for a single answer. That would help avoid the question is been leaked over Internet
- Communication preparation
- Prepare well on how to ask questions, how to open questions, how audible you should be, and the modulation needed.
- As English is the formal language for interviewing in India, understand proper pronunciation for the words you may have to use while interviewing
- Prepare lot of bogus and or tough questions
- This is merely to project the name of the company—something like Microsoft interview. If the questions are too easy, the candidates may feel bad about the company and current employees' potential. But, these questions are not deciding factors. These answers shouldn't be accounted.
- Prepare lot of "deciding" questions
- Question such as "find whether the given integer is odd" is deciding type of questions. If the candidate doesn't answer such questions, he is most likely not a good programmer.
- For PHP OOP, this question may be considered "deciding" question: using the following class, how will you find the area and perimeter of a ground that is 1250meters X 5290meters in dimension?
<?php class Rectangle{ public $width = 5; public $length = 10; public function getArea(){ return $this->width * $this->length; } protected function __getPerimeter(){ return 2 * ($this->width + $this->length); } } ?>
Facing interview
- Dress
- Should be decent, no vulgar, not disturbing – so that the interviewee will not feel uncomfortable facing the interviewer
- Punctuality
- Policies – no mobile phone, etc
Basic objectives
- Smart candidate (with reading, writing/typing, programming skill, attitude, aptitude)
- Candidates for getting thing done—our current job
- Growth for both interviewer and interviewee
- No growth for the interviewer, if interviewee has lesser knowledge than the interviewer (refer the Venn diagram above)
Don'ts
- Insult
- Even if you reject the candidate, there is 99% chance that the candidate can still become a CEO of other company, president or prime minister of the country. Always be kind to the candidates.
- Interviewing is not choosing life partner
- The jollu nature of the interviewers is wasting majority of the interviewing process in India. ("jollu party: [Tamil Slang] Jollu refers to spittle. Party refers to a person. A jollu party is someone salivates at the sight of the opposite sex." -- http://www.vsubhash.com/die.asp?word=jollu%20party )
- Judge over appearance
- Judge over dresses or dress codes
- If the dress code is too informal, ask for the reasons. If the candidate has no answers, then the candidate may not be serious about the career in the company. But, if his answer is something like "I thought that you'd look at my stuffs—not at my dresses", then it shows his confidence.
- Judge over answer
- This is very important: do not ever judge the person by merely looking at the answers. If you think the answer is wrong, ask for the reasons. The guy may be next Newton or Einstein to disprove the theory that you've believed to be the answer of the question.
- Stop asking after few questions by judging the person by previous answers (see above) or judging the person with set of prepared questions. If the candidate is not answering anything, it's better to ask for the reasons and his knowledge domain.
- Speak in other language that the candidate is not comfortable with. It's not the right time to showoff your linguistic skills.
- Look at salary
- Look at disability
- Face the candidate without question sheet.
- Many think that interviewer should showoff and so having question sheet is shame. In fact, having the well-prepared question sheet will focus the interview in right direction and will save lot of time.
- Blinking with each other
- If the interviewing is done by more than one interviewer, don't ever blink at each others.
- Think for question–blinking
- Underestimate & overestimate
- Showoff your skills
- It's not a time to showoff your skills
- It's not a time to prove that you're smarter than the candidate.
- Avoid prejudices such as poor reasoning for rejection of candiates such as the one mentioned in The nightmare interview: "Data Modeling" (it shows showoff by the interviewer)
Dos
- Listen
- If the answer is unexpected, check practically or ask for the reasons
- Identify real interest & experience
- Read resume & check projects (links, etc)
Common steps
- Start with ice-breaking type of questions
- Understand about the nature of work and project
- Understand about domain
- Understand about involvement and percentage of contribution
- Start with medium level question
- Go up to the level of the candidate
- Fix the weightage of the candidate – ranking
- Close with ice-breaking type of questions
- If the candidate isn't doing well, ask for reasons
- If you think that the candidate has some other potential—other than what you’re looking for the current job, politely inform him that he may focus on that area. Also, if there is a scope for that potential in the company, suggest and refer him for that position. For example, the person may have good designing skills, but he may have applied for programming positions for "survival reasons"
Interview framework
- Prepare set of questionnaires – software based questionnaires (possible with LimeSurvey)
- Ask for personal details (Educations, Experience, Project Details or domain)
- Provide them with collection of tougher and "deciding" type of questions—both in analytical and programming
- Evaluate the candidate's performance by "deciding" type of questions
- Even if the candidate isn't performing well, conduct face-to-face interview. You'll have the opportunity to ask for reasons for not performing well or can able to find if the candidate's interest lies in other domain or if the candidate isn't feeling well or if the computer/keyboard/mouse that the candidate used for filling the answers isn't perfect.
- Shortlist the candidates based on the performance in questionnaires and face-to-face interview, for the next real time round.
- In the real time round, give the candidate computer with Internet access and possible problem from current projects.
- Take final decision based on all the rounds.
Comments