Whiteboarding for the Win!
Tips and Tricks for Acing Your Coding Interview
The Assignment
Whiteboarding is a popular type of technical assessment in technical interviews.
In the context of doing a live coding challenge, it tests your coding skills in a real-time environment.
As a viable employee, it can be a great way to show off your problem-solving skills and expertise in a particular concept. However, it can also be quite a stressful experience, if you’re not used to coding (and laying out your thought process) in front of an audience.
Never fear, Help is Here!
There is a structure to how you approach whiteboarding
- Read through the problem and ask clarifying questions
Most of the coding challenges will have intentionally vague phrasing to invite you to think about edge cases and necessary requirements. So ASK! - Break down the problem into manageable tasks
Identify key pieces of the problem and focus on solving one of them at a time. The interviewer will find it SO EASY to follow along! - Pseudocode a possible solution
Write down your logic and algorithm flow in plain human-readable language. Also, think about the steps that your brain used to solve the example testcases. This promotes clarity as well as debugging, which will help you avoid pitfalls when you ACTUALLY start coding! - Code with the proper syntax in the language required
Follow the rules of the language you have chosen to code in to ensure that your code is readable, maintainable, and error-free. This shows off your BRILLIANT coding skills as well! - Test your code
Use all the available testcases to stress test your solution and think up some WILD edge cases to impress the interviewer! - Talk about the time and space complexity
Have an idea about the worst-case time and space complexities (Big O Notation) and be able to talk about these in relation to your solution ARTICULATELY! - Optimize it!
Now, that you have a solution and an idea of how much time and memory it would use, try to REFACTOR it to provide an optimal one to improve the performance and efficiency of the code. This gives off a dash of panache to your coding interview session!
Tips to Power Through
- Practice, a great deal
The more you practice these problems, the more comfortable you will be with the process. - Think out loud
As you work through the problem, be as vocal as possible. This helps the interviewer to understand how you are approaching the problem. - Plug in some values and use diagrams
The use of visual aids or simply putting in values from the testcases to explain your solution will help the interviewer to understand the solution, and you to elaborate more if needed. - Be honest
If you get stuck or don’t know the answer to a question, it’s okay to express that. Be sure to follow up with how you would find the solution. - Be receptive to feedback
If the interviewer recommends a different approach or a more efficient way of solving the problem, be ready to change your solution accordingly. - Keep it simple
Write code that is easy to understand and maintain, and follow best practices for code. - Be mindful of the time
Manage your time efficiently to ensure you can complete the challenge within the given time.
Here are a few resources to practice commonly asked coding challenges in technical interviews.
Structy is a site that helps you learn how to approach problems using animated overviews which I find to be very intuitive.
ALWAYS remember that the goal of this type of interview is not to see if you know the answer, but to see how you think and approach problems.
GOOD LUCK!
I hope you learned a few tips and tricks for your next live coding interview session!
Do comment below and follow along for more content like this.