“I hear and I forgot, I see and I remember, I do and I understand.” — Confucius.
Preparing for a coding interview seems straightforward enough, right? All you need to do, seemingly, is study every practice problem you can find. If you’ve seen everything, then you’re prepared for anything. But that’s the wrong way to think about it.
As anyone who has interviewed a few times knows, standing in front of a blank whiteboard with a few senior engineers looking over your shoulder feels a lot different than reading a book at home. Even if you’re handed a problem you’ve seen before, the pressure of the interview can freeze you up. And it only gets scarier when someone throws you a curveball.
But don’t worry, there are a few techniques you can use to take your preparation to the next level.
Check out my tips for the best way to prepare for a whiteboarding interview below.
Enhance Your Communication
Interviewers evaluate candidates on how they solve a problem, not just whether they get the right answer in the end. You’ve probably heard that talking through your thought process is important, but most candidates don’t practice this ahead of time. And so you must.
Communication is important because your interviewer needs to understand exactly what you’re doing and why. He or she is not a mind reader. If you don’t verbalize your thoughts, they will have no idea whether you’re systematically breaking down the problem or just hopelessly lost. Instead, if you tell them what you’re thinking throughout the process, the interviewers will often give you a nudge in the right direction.
In addition, there are times when you just can’t finish a problem in the allotted time. But if you’ve shown your interviewer you were making steady progress the whole way, you can still make a strong showing. I’ve seen many candidates, including myself, receive offers in similar situations.
To communicate well under fire, you need to practice. Even though it seems like talking is something we all do pretty naturally, the pressure of an interview can rob you of your voice.
To see just how natural it really is to communicate in tough interview situations, I recommend that you take a video of yourself working through a whiteboarding problem. Afterwards, watch it immediately, while the experience is still fresh. Then don’t be afraid to be critical. Communication is a chance to explore, analyze, and ask questions so don’t just dictate what you write. Also, avoid “dead air” — it’s fine to focus silently for 30 seconds or so, but after that you’re asking your interviewer to read your mind. And remember, your interviewer is a human being. Don’t talk into the whiteboard for 40 minutes. Instead, turn and have a conversation, be confident, and even make eye contact now and then.
Every time you do a practice problem, you should talk to your “interviewer” whether there’s actually someone in the room or not. You’ll feel weird talking to yourself at first, but if do it every day it will be second nature by the time you get to the real interview.
Finally, record yourself every few sessions so you can chart your progress.
One extra tip here: Figure out how to you chew gum and walk at the same time. A trick strong interviewers use is to separate speaking and writing. If you try to do both at the same time you’ll just end up dictating what you’re writing. So take turns. Brainstorm and analyze out loud. Then, when you’re ready to write, stop talking so you can focus. This will keep you organized and on task.
Get Comfortable With a Specific Platform
If you’re preparing for a whiteboarding interview, you need to practice on a whiteboard. If you don’t have access to a whiteboard, at least use paper and pencil. Writing and erasing is way slower than typing and candidates are often thrown by the change of pace on interview day.
Most candidates also tend to run out of space, so practice managing your whiteboard real estate. This means getting used to separating diagramming and brainstorming space from the area where you’ll actually code up your implementation..
If the interview is conducted on a computer instead of a whiteboard, find out what platform you’ll be using. Don’t be afraid to ask. In fact, it feels very different to code in a plain text editor with no syntax highlighting than in an IDE where you can run and debug your code.
When I interviewed for Airbnb, I was told in advance that the interview would be conducted via codepen. I spent a few days coding up widgets using their UI. When it came to the phone interview I didn’t have to struggle with the platform and was able to focus on solving the challenge and passing the phone screen, which I did.
Lower the Pressure of the Moment
You’re probably going to be nervous when you get to the interview. This makes sense — after all, your livelihood is at stake!
So get friends, colleagues, teachers, or family to be mock interviewers. Better yet, join a meetup for people who want to practice interviewing so you can whiteboard in front of strangers. You’ll be more relaxed each time. You’ll still feel a twinge of nerves at the interview, but you’ll be used to dealing with it.
Whiteboarding Time Management
In my experience, most technical interviews last about 30 minutes. Use a timer when you practice and budget time for brainstorming, implementation, and testing. Most candidates are afraid of running out of time and so dive into implementation before they’re ready. If you’ve been practicing with a timer, you won’t fall into this trap.
You should also practice at the same time of day as your real interview. If you practice at 8PM every night it’s going to feel strange when you show up for an 8AM interview.
One hour a day of highly focused work is far more effective than three hours spent casually reading through solutions with a Frasier TV marathon in the background. Your interviewer probably won’t be too impressed that you know the name of the sitcom Daphne acted in as a child (but just in case, it was Mind Your Knickers).
Here’s how I break down my hour:
5 minutes: Review. Read your notes from the last few sessions. Write down one thing that you will focus on during this session.
30 minutes: Work through a single problem. Use a timer. Practice good communication.
25 minutes: Evaluate. If you recorded this session watch the recording. If you worked with a mock interviewer, ask them for feedback.
Write down at least one thing you did well and one thing you would like to improve. How well did you achieve the goal you set for yourself at the beginning of the session? These are the notes you will review at the beginning of your next session.
Go Crush it
Training this way puts you in control. You’ll tackle whiteboarding problems with confidence, even when you come up against a problem unlike anything you’ve seen before. If you’re not careful, you might even have some fun.