Stop Fearing the Whiteboard: Conquer It!
Tech blogger, author, overall geek. Love tech and love writing about it.
It's time we stopped fearing, complaining, and arguing about whiteboard coding interviews.
With a solid plan, a little skilling up, and some practice, you can master the whiteboard interview. We can argue for days about the validity of this type of interview, but the fact is many organizations require it. So are you going to let this obstacle stop you from getting the job you want? Of course not. Let's tackle the whiteboard interview, and defeat it.
How Bad Do You Want It?
I'm a volunteer firefighter, and I'm afraid of heights. I know how silly that sounds. To try out to become a firefighter, you must climb this 104 foot ladder into the sky. It's the first task. Oh yeah, and you get to do it every year after that if you're accepted. If you want a job in another fire department, you'll do it again.
If I'm more than about 15 feet off the ground, I'm uncomfortable. I've defeated the fear pretty well over the years, but at first, this ten-story ladder climb sure seemed like a nightmare to me. If you want to see what's like, here's a helmet cam video of someone doing this test
I had to ask myself a simple question:
Am I going to let this scary but surmountable task keep me from being a firefighter?
Of course, you know the answer. I gloved up and conquered that ladder. I've done it many times since. I've never had to climb this ladder configured this way on a fire call. Just like whiteboard interviews, this isn't the best way to judge how skilled of a firefighter you are or could be. But it's part of the process. Deal with it.
Are you going to let a whiteboard interview stop you from getting the job you want?
Of course not, so let's make a plan to get you whiteboard ready.
Step 1: Learning the Basics
A solid grasp of the basics is crucial for the whiteboard interview. At most organizations, you don't have to be an algorithms wizard and scribble out genius theorems up there. They just want to see how you think. They want to know how you break down a problem and work it out with some pseudo-code.
These are programming language agnostic skills. They are core elements you should be learning as a Junior Developer. As a Senior Developer, you better know it well.
- Strings, arrays, lists
- Linked lists
- Stacks and Queues
- Trees and Graphs
- Binary Trees
- Hash Tables
- Time complexity
- Space complexity
- Bubble Sort
- Insertion Sort
- Merge Sort
- Quick Sort
These are all things you should know at a basic level, so you'll need to get familiar. Here's how you can do that:
You can search for these things on Google, but it's kind of a mixed bag. There's good and bad information out there. I would suggest:
If books aren't the best way for you to learn, here are a couple of courses that cover all these topics in-depth, that you can learn in about 6 hours.
You could spend a Saturday on these two courses and be leaps ahead in the interview process. The more you work on it, the more polished you will be.
So now you have the basics down. What do you with this brain full of information?
Step 2: Write It Out
As you go through each of the concepts above, you should try writing out code in your chosen language to demonstrate the concept. Over and over again. This will not only help cement the concept in your head, but you can see how it applies.
You must write it down with pen and paper.
Preferably with a felt tip pen. It's even better if you use a whiteboard to practice.
This can help you tremendously.
- It helps you focus on what you're writing.
- It pulls you away from IDEs and editors - just like the interview.
- You activate multiple parts of your brain while writing and thinking it out.
Make an effort to write out each concept in your chosen language on paper. Find someone you can explain it to, and practice explaining the concept to them with only pen and paper. This will increase your skills in the interview as well.
Step 3: Find Some Practice Problems
Practice problems are the best way to polish your skills for a whiteboard interview. You should take a couple of hours at a time and find a problem, then work it out with code.
- Check out Project Euler and start writing code solutions to the problems.
- Sign up at Hacker Rank and begin taking challenges there.
- Also, LeetCode is another excellent challenge site.
Take as many challenges as you can, routinely. Start getting ruthlessly good at coding challenges.
Write out your solutions on paper for this too. Seriously. The more you do pen and paper or whiteboard coding, the more comfortable you'll be.
Follow This Plan and Get That Job.
Instead of fearing the whiteboard, conquer it. Dominate it. If you follow this plan and put in the work, you will be able to walk in that room and hit the whiteboard like it's old hat. It will be so familiar to you and look so fluid it's bound to impress even the most skeptical of interviewers.
Good luck, you got this!!!
Subscribe to get your daily round-up of top tech stories!