Coding interviews suck. I’ve gone through plenty, including some with Microsoft, and I can confidently say: I hate them and I think they’re a terrible idea. Unfortunately, they’re not going away anytime soon, and if you’re here you’ve probably got one coming up soon. Here’s how to survive it!
Make sure you refresh all your first-year compsci knowledge. Many coding interviews, particularly with Microsoft in my experience, will want to see you demonstrate knowledge about sorting algorithms, operations on binary trees, recursion, linked lists, etc. You know - all that boring stuff you covered years ago and then forgot.
Get on HackerRank and start doing some challenges, and make sure you pick one language to focus on so you’re not messing up your syntax during the interview. I use Python since it’s easy to write and all interviewers should accept it.
Other than that, read up on the theoretical concepts such as Big O Complexity, since it’s not uncommon for interviewers to ask questions on this.
Yes - it’s possible, and it’s just as bad as being under-prepared. I define this as spending any more than 40 hours in a week studying, but YMMV. There are three key reasons why you shouldn’t overprepare for coding interviews.
Reason 1: Studying too hard for long stretches of time is inefficient. Research shows that your brain needs rest to encourage memory retention. There’s a certain point where studying just doesn’t help you anymore, and it looks a little something like this:
Instead of cramming for your coding interview (if it’s not too late already!) just practice for a few hours a day, about a week or so in advance. You’ll learn better, and it’ll be much less of a chore.
Reason 2: You risk confusing yourself or panicking mid-question. If you fill your head with too much information, you’ll find it hard to pull out the stuff that really matters when you most need it. Even worse, the more you prepare, the more you build up the expectation in your mind that this will be difficult. You’ll stress yourself out, and if you’re anything like me you’ll be more likely to panic during the interview.
Reason 3: You’ll look fake, and you’ll feel fake. Managers can tell when you’re overprepared for an interview. If your answers are too rehearsed, they’ll know that you’ve memorized solutions, and they’ll be less likely to trust you. Similarly, you’ll feel like a fake yourself. You’ll siphon the fun out of coding (remember why you’re doing this in the first place!) and you’ll lose confidence in yourself and your abilities. Coding interviews suck - don’t make them suck even more by torturing yourself too much while preparing.
You can’t escape it. Even in a coding interview, managers will want to see that you have decent communication skills and that you’ll be competent at working in a team. You can be the best coder in the world, but if the thought of interacting with another human makes you recoil back into your Vim set-up - you won’t do well in the interview.
Unfortunately, improving this just comes with experience. Going to networking events and interviewing with companies often will put you on the right track. Check out places like Meetup.com for networking events where you can practice communicating in a professional environment.
This is an important, but often neglected tip. Remember that not only is the company interviewing you, you are interviewing them. Starting from now, every day until the interview - tell yourself that you are interviewing them. Remember it during the interview whenever you’re getting anxious.
You’ll have a more casual, confident attitude that’ll make you stand out from the other candidates. This takes some time, but it’s the #1 tip that took me from desperately begging companies for jobs, to getting multiple offers and choosing who I want to work with. It takes practice and might feel weird at first, but try it and watch as it pays off!