What to put on whiteboard during an interview
As a programmer, you may go through different kinds of programming tests from the interviews. The most famous and difficult one is whiteboard test. Usually the interviewer will give the candidate an algorithm problem and ask the candidate to implement the algorithm with his/her favorite programming language. The codes to be written is not too much but it requires the candidate to thoroughly consider different edge cases.
So what are the interview expects to see on the whiteboard when giving an interview question? We first need to understand the features of whiteboard test.
The whiteboard test has following features:
- Write by hand, you cannot use a computer. Hence you cannot search for the functions you want to. You have to rely on your own memory and experience;
- The question usually is related to implement algorithms. Hence the candidate has to consider different edge cases;
- Since the candidate needs to write the code right in front of the interviewer, the candidate may feel compressed and nervous;
- The time given to the candidate usually is not too long, so the candidate has to some out a solution which may not be optimized within a short period of time
Due to above features of whiteboard test. Candidates may make mistakes or fail to consider different conditions. Are the candidates expected to write perfect codes on whiteboard? Let's see experience from Istvan Jonyer, he is currently working at Google and has interviewed many engineers at Google.
His approach to ask the whiteboard question and he expects the candidate does following:
- Understand the problem well,
- Develop an algorithm using drawings and examples
- Pay particular attention to edge cases
- After both interviewer and interviewee agree on the algorithm, should a candidate start to actually write code
- If they make a syntax error, it's OK. The most important thing is that how the candidate handles being corrected if the interviewer points the syntax error out. Are they defensive? Insecure? Or confident and collaborative?
- The code reflects the algorithm they developed
If you launch into writing your code, as opposed to developing the algorithm using examples, you are likely to make mistakes. You are skipping an important step -- the algorithm development. Writing code while at the same time thinking through the algorithm in your head is unnecessarily difficult in a high-pressure interview process.
The worst is when a candidate, upon hearing the question, turns to the whiteboard and presents a flawless algorithm, writing it out sequentially. It indicates that the person had heard the question before, and the interviewer learned nothing about their abilities.
If the candidate is not confident in their answer, The candidate may even throw in a "mistake" to see if they're confident enough to disagree with the interviewer. This could also happen by an honest mistake on the part of the interviewer, which should not throw you off track, and you should stand up to your answer if you know you're right (and prove it).
Hope these tips can help you in your future whiteboard test.
A meal of a programmer. With this doll, it's not just a cup of instant noodle now.