Coding and Whiteboard Interviews: How to Prepare
If you’re applying for a technology job that touches on programming and software development, chances are you’ll have to face a coding skills test. These tests can take the form of the dreaded whiteboard exam, a programming glove in the office, or a home project. Regardless of the format, how can you anticipate and prepare for these types of exams?
First, it’s important to keep a few basic things in mind. Regardless of the format, you should ask questions to ensure you understand the issue (and don’t be shy; hiring managers and recruiters want you to ask questions as it demonstrates your curiosity and thoroughness). Make sure you show your work as you solve the problem: your thought process is just as important as the right answer.
Things could diverge from there. Coping with many whiteboard problems depends on memorization and your knowledge of theoretical concepts and processes. When Max Howell, the creator of Homebrew, once famously joked about this kind of testing: “Google: 90% of our engineers use the software you wrote (homebrew), but you can’t invert a binary tree on a whiteboard like that [expletive] the end.”
With in-office and take-out coding tests, you’ll have a little more leeway to showcase your creativity and streamlined approach to problem-solving. Many enlightened interviewers will allow you to use a search engine to look things up during the test because that’s how developers and engineers actually do their jobs in the real world.
When it comes to coding tests—especially those at home—it is extremely important to recognize the line between research and outright code plagiarism. Many companies rely on sophisticated plagiarism detection tools based on machine learning. If you try to cheat by simply copying and pasting large blocks of code, chances are very good that you’ll get caught, and you definitely won’t get the job. A well-informed interviewer will make it clear from the start what is considered acceptable use of existing code; If not, it never hurts to proactively ask her about it.
But what questions will the interviewer actually ask? That’s the question that worries many technologists, and with good reason. Thankfully, the trick questions that have been so popular with tech companies for so many years (“How many golf balls can you stuff in a 747?”) seem to be fading. The focus now is heavily on the basics – can you actually build what the prospective employer needs?
Especially in the first few rounds of interviews, recruiters and hiring managers often focus on what technologists (sometimes derisively) call “LeetCode questions.” If you’re not familiar with LeetCode, it’s a platform that allows developers and engineers to explore and discuss all manner of programming language questions and problems, complete with examples and snippets. While experienced technologists often portray LeetCode problems as overly simplistic, recruiters and hiring managers often rely on them as a source when creating interview questions – they can even easily cut and paste LeetCode directly into the testing platform.
Regardless of what role you’re applying for, check out LeetCode, as well as HackerRank and Codecademy (which also offer code challenges). Make sure you can solve the questions and problems related to your specific discipline. If you can do that, you’ll be well-prepared for whatever the interviewer throws at you, especially if it’s a first-time interview where questions tend to be broad.
Over at HackerNoon, there’s a detailed breakdown of the most common items in tech interviews, including how often certain topics come up (e.g., algorithms and string and array manipulation). Watch this for some great advice on the technical aspects of the interview – but remember that every interviewer will also want you to talk about your communication skills, teamwork skills and how you relate to the culture and values of the interviewer company.