Why mock coding interviews are important
There are skills you need to develop outside of textbooks and leetcode
tldr; Supplement your studying with mock interviews
Everyone knows that you need to know data structures and algorithms for coding interviews, but sometimes people neglect the other key skills required to landing the job. You can use mock interviews to develop most of these skills. In this post I’ll break down what these skills are and offer some guidance on how to get started with them.
Key skills to develop
A common thing that sinks interviews is getting nervous. When the nerves kick in, you don’t inspire confidence, your communication becomes muddled and it becomes harder to come up with the right solution.
Mock interviews get you used to the social pressure of figuring out a challenging coding problem in front of another human. After you conduct 5-10 of these and add some structure to how you digest problems, you will start to notice the nerves subsiding.
Getting stuck sucks. The feeling of not knowing what to do next in an interview can be handled in a few different ways. Unfortunately people tend to default to freezing up and getting nervous. In moments like this, it’s important to recognize you are stuck and to start asking questions to help clarify the problem. There is a lot to say on this topic, so I’ll be writing another article on this newsletter soon focused on it. For now, know that the more you practice mock interviews, the better you will handle that terrible feeling of getting stuck.
Explaining your thought process
You can quickly write down a 100% perfect algorithm to a difficult problem and still not get the job. Your interviewer is looking to see how well you explain your thought process. Thinking through ideas out loud is different than having lofi beats on and having space to skip steps in your head. Doing mock interviews will help you develop this muscle quickly.
Hitting all of the key steps in the interview
You should be inspecting and reviewing every single programming interview you conduct. Inspecting is analyzing the problem at the top, reviewing is ensuring your work is correct after you think you are done coding. Leetcode questions don’t force you to write out your analysis of the problem and they don’t encourage you to manually test your work. Be sure to check all of the boxes in this rubric when conducting mock interviews to show your interviewer you are thorough in your work.
Handling combative interviewers
Sometimes it can feel like your interviewer is being aggressive, and it can really throw off your performance. Usually when you feel this, it doesn’t mean they hate you and that your interview is over. It just means that they are either looking for clarification or are prodding you in a certain direction. I’m not defending their behavior, I’m encouraging you to learn to handle different interviewer personalities by conducting lots of mock interviews.
Asking clarifying questions
When you are solving a problem on leetcode you can’t ask the computer any questions. Asking clarifying questions is super important skill to develop. Creating a dialogue with your interviewer keeps them engaged and makes them look at you like a peer if you are asking the right questions. I’m going to be writing another article on this topic specifically soon so keep an eye out. In the meantime know that having someone else on the other side of the call during mock interviews helps you develop this skill.
The goal here is to get you into a place where you feel comfortable in the worst case scenario. Imagine you are walking into Google, going through 4 or 5 technical interview, getting very difficult problems, getting stuck, and having interviewers who are not incredible communicators. You need to prepare for the worst and hope for the best.
To start, mock interviews are painful for lots of people(including me). You are more than likely to absolutely bomb your first 5. Remember: This is normal. After few mock interviews though, you will realize that you are getting more comfortable in the environment. You’ll be able to better articulate your thoughts, identify and handle different interviewer types, realize getting stuck is normal, ask intelligent clarifying questions, and remain composed when the nerves kick in.
Get your bad interviews out of the way in a mock setting so you can shine during the real thing.
Learn System Design
I’m actively tweeting about building LeetDesign, a massive list of interactive system design problems to help you learn system design faster.
If you are interested in the all of the lessons and wacky bugs I encounter building the product, give me a follow: https://twitter.com/DannyHabibs