Whiteboard for Programmers
Whiteboard programming has long been a staple of the creative process. After a long time spent looking at a keyboard and monitor, it’s easy enough to develop writer’s block. Using a whiteboard lets you abstract yourself from the raw nuts and bolts of brackets and strings, building at the data structure layer instead. Once you create an architecture for your program, it’s easy to hop back onto the text editor and write out your code. For programmers, whiteboards may represent one of the best and simplest productivity tools imaginable—here’s how to master them.
What is Whiteboard Coding?
Whiteboard coding is what it sounds like. You set up a whiteboard (or a notebook and pencil) and write code there instead of in your IDE. Whiteboard programming is often used to assist the ideation process during everyday programming. It can also be used to help gather ideas during meetings or collaborative programming sessions. More frequently, however, you’ll find whiteboard programming in use during the technical interview process.
Whiteboard code can be used to express ideas in programming that don’t necessarily translate well to the format of an IDE. It’s easier and faster to write down a binary tree first as opposed to implementing it within a text editor from scratch. The same goes for other data structures as well.
Why do Programmers use Whiteboards?
For programmers, whiteboards can be valuable for several reasons. The first, as we’ve already mentioned, is to get past writer’s block by using a medium that isn’t subject to the usual constraints of an IDE. The second reason is so they can collaborate with other programmers without the hassle of setting up a networked environment.
In addition, whiteboards help break down applications down to their pure concepts better than an IDE (at least in some cases). You’re able to think through the logic of the code, rather than the syntax of your programming language. By removing the stricter environment an IDE provides, you can think purely about edgecases and logic structuring rather than implementation detail.
By contrast, using a whiteboard sets programmers up for instant feedback. As soon as a programmer writes down a line, their collaborator can approve it and offer advice. Although this approach requires more programmers and can take longer, the instant feedback is worth it when it comes to more complex or mission-critical components of the application.
The last reason programmers use whiteboards is the most common one: so programmers can practice for a job interview. This can be a problem—one we’ll get to in a moment—in which companies select candidates based more on their ability to provide good answers to interview questions as opposed to their skill level.
Why do companies conduct whiteboard interviews?
Companies like whiteboard interviews for two reasons: they’re easy to set up, and it’s theoretically easier to understand a candidate’s thought process by watching them work on a whiteboard.
Although it’s preferable to set up an online collaborative IDE for the technical interview process, many companies still resort to a text editor and a screen-sharing program for remote interviews. Since there aren’t many ways to express creativity within a text editor, the second round of interviews has traditionally involved an in-person meeting where the candidate demonstrates their whiteboard coding skills.
All the benefits of whiteboard programming should apply to the technical interview. It’s easy to collaborate, so the interviewer can see how well the candidate works in a team. It’s easy to edit, and the output doesn’t matter as much, so there’s less of a chance that the candidate will freeze up if they make a mistake. Lastly, using a whiteboard is more imaginatively freeing than using a barebones text editor. This means that the interviewer can see the candidate at the height of their creativity.
All this being said, there are a few downsides to using a whiteboard for programmers in an interview context. We’re not saying that whiteboard programming should be eliminated from the interview process, but there are several elements that should be scrutinized more closely.
Downsides of Whiteboard Coding Interviews
Although setting up a whiteboard for programmers might be traditional, it may not be the best way of gauging a programmer’s skill.
One issue is that while using a whiteboard is a common productivity tip, it’s not a primary coding method. Ordinarily, a programmer sticks to their IDE and then uses a whiteboard only when they’re stuck on a big problem or need help. They might use a whiteboard only once or twice a week. Therefore, if your goal is to simulate an average workday and watch how your candidate tackles the challenge, asking them to solve a problem using a whiteboard is going to detract from the accuracy you’re looking for.
This leads to another problem related to whiteboard code: it’s a skill that not everyone has, and it’s a skill that’s not primarily deployed in the workplace. In other words, nearly anyone looking for a programming job is going to practice whiteboard interviews and memorize the solution to a few common whiteboard problems. The result is that you’re going to hire people who are good at whiteboard interviews—and those people won’t necessarily be the best at the job you’re hiring for.
Finally, there’s an argument to be made that whiteboard interviews can be biased against people who don’t have good penmanship, who are physically disabled and can’t hold a pen, those who have dyslexia, etc. These are important concerns that should be addressed in proper whiteboarding interviews. Let’s take a look at how we can do them correctly.
Tips for conducting a whiteboard interview
Interviewers must prepare carefully to make sure that they hire a candidate who’s good at their job they’re interviewing for—as opposed to someone who’s good at whiteboard programming. Here are some best practices.
First, if you make your questions too difficult, you will filter out everyone except individuals who have memorized certain rote techniques for creating algorithms and data structures. Make your questions more grounded and representative of issues you’re likely to encounter in the real world – rather than obtuse and arcane algorithm questions
Second, don’t get too worried about whether a candidate solves your problem perfectly. It’s more important that a candidate shows their work, demonstrates creative problem-solving skills, and works collaboratively.
Third, remember to ask open-ended questions about whether the candidate is happy with their solution, how they’d improve on it, or what they’d add if they had more time. This gives you a sense of what the candidate would do if they had the resources of the company at their disposal.
Finally, make sure to add options for accessibility. Some talented programmers might not be able to hold a marker, see the whiteboard, or stand for long periods of time. Take this into consideration.
Tips for acing a whiteboard interview
If you’re a candidate, how can you demonstrate that your whiteboard code is the best there is? Maybe you’ve memorized a bunch of algorithms, but hopefully your interviewer is looking for more than that.
One of the biggest tips we can offer is to make sure to set a strong foundation. This means that you must make sure you understand the question, so first repeat it back to the interviewer and then write it down. This will help keep you on track.
Next, don’t rush ahead. Writing slowly and smoothly will make your penmanship neater, which in turn will make it easier for the interviewer to understand your thought process. Speak out loud as you write so the interview knows what’s going on inside your head.
Lastly, don’t be discouraged by slip-ups! Even if you can’t finish the problem in the allotted time, and even if you’re not sure you have the right answer, your ability to show your work and demonstrate creative problem-solving skills should hopefully give you an edge.
Virtual whiteboards for remote interviews
One last consideration for interviewers—distance. Even though the pandemic appears to be ebbing away, remote work will continue, especially in the programming sector where you may be hiring candidates from other countries. Short of screen-sharing a copy of MS-Paint, how can you create an equitable and enjoyable whiteboard programming experience for remote interviews?
How CoderPad facilitates whiteboard interviews
With the Drawing Mode inside of CoderPad, interviewers have a way to create collaborative remote interviews in which participants can sketch out systems, describe technical architectures, and let their creativity run free. Drawing Mode allows both interviewers and candidates to add their input to a collaborative whiteboard space—creating shapes, lines, text boxes, as well as erasing them at will. In short, CoderPad helps bring the functionality and accessibility of whiteboard code into context of a remote interview.