Despite the bad press, coding interviews — or technical interviews — are an expected step in the interview process at most tech companies. At App Academy, we’ve placed over 4,500 people in software engineering jobs at companies like Amazon, Google, and Netflix, and our team has coached students through thousands of coding interviews.
Since you’re likely to come up against one, we created a comprehensive guide on how to prepare for a coding interview and what you should do before, during and after the interview.
What is a coding interview?
The coding interview is a standard practice employers use to vet potential software engineering candidates. These interviews are problem-oriented to test your understanding of dynamic programming fundamentals, algorithms, system designs, syntax, and data structures. We’ll get into those in the next section.
While some companies have adopted a similar approach to these programming interviews, they’re not created equal. Big tech companies like Amazon and Google and your local startup do not use the same interview questions. In any case, you’ll be given a series of questions to solve by writing code in real-time while talking through your thought process.
What types of skills are tested during a technical interview?
As previously mentioned, every technical interview is different. Companies determine what’s most important to test in order to evaluate the technical acumen of their candidates. Luckily, you’re able to ask ahead of time the types of skills you’ll be tested on so you can incorporate them into your study. You’re also able to ask about the tech stack the company uses internally.
You can expect to be tested on:
Algorithms, like bubble, merge, and heap, plus linear search, binary search, breadth-first search and depth-first search. Also look for time complexity.
Data structures including arrays, stacks, heaps, queues, hash tables, binary trees, and linked lists.
Programming languages — both those you’re most familiar with and those the company uses in their tech stack.
Syntax within each of those languages.
Strings, including how to manipulate them and understand rotation and concatenation.
System designs are complex, but they’re popping up in more technical interviews these days.
Recursion for problem solving methods.
While the technical skills are largely weighted during coding interviews, hiring managers are also looking a little deeper. They’re interested in your problem-solving skills, your speaking abilities, your critical thinking methods, and how you tick socially. These softer skills speak volumes to how you’ll perform as an employee, beyond simply doing the technical tasks put before you.
What should interview prep look like?
Knowing how to prepare for a coding interview is a multi-step process. Let’s break down each step and what you can do to get the most out of your research and practice.
I’m planning on interviewing.
Practice makes perfect (or at the very least, it instills confidence). Leetcode is particularly helpful here. If you’re not familiar, it’s a practice forum where software engineers can find practice questions and work through coding problems. Educative also provides interview insight from top tech companies down to the smallest startups.
There’s also strength in numbers; pairboard with a partner while they watch and assist you as you’re solving test cases on a whiteboard. This gives you an opportunity to practice talking through your method.
If you carve out time in the weeks leading up to your interview or as you’re going through the application process at different companies to tackle each of these steps a few times over, you’ll be in good shape when you finally land that interview.
I just found out I have a coding interview.
So you’ve applied and gone through the initial interview stages. Now, you’re slated to complete a technical interview.
Before you begin additional research and study, ask the interviewer or the hiring manager a few clarifying questions:
- Is there anything about the format I should expect?
- Is there anything about my local coding environment I should have prepared?
- What have successful candidates prepared for in the past?
Get as much information as you can ahead of time so you can focus on the parts of the interview that are in your control.
Next, conduct any research you can about the company itself. More established companies like Netflix, Google, and Spotify have dedicated tech blogs written by their engineering team. Within them, they talk about updates to their products and projects the company is working on. You’ll likely manage to find out what tech stack they use internally through these blog posts.
Quora and Reddit are great resources, too, as are Facebook or LinkedIn groups. You will likely find people who have interviewed at the same company or similar. Lean on their experience to know what types of technical questions the company asked and what the interviewee wishes would have gone differently about their own attempt. If not, create your own post in related forums and take in as much first-hand information as you can.
Now’s a good time to double-down on studying your data structures and algorithms. If possible, schedule a mock interview with someone in your community or with a mentor. Pramp is a service that offers mock interviews and walk-throughs of coding interview questions. App Academy graduates have this baked into the 1:1 career coaching that every student receives once they complete their curriculum, and they’re uniquely qualified to do so. Technical Career Coach Mark states:
“They (career coaches) have either worked in education, life coaching, career coaching, or they’ve worked in admissions at universities or in career opportunity or career placements in other fields and have found their way to us. They’ve done this for years and are fantastic at getting you or getting a job seeker set for that stage of the interview.”
Additional research definitely doesn’t hurt in the days leading up to a coding interview. Get your hands on literature about technical challenges and research what’s expected of you. In other words, don’t walk in with any lingering doubts. Be confident in the skills you’ve learned and the coding projects you’ve worked on prior and get comfortable with speaking to your experience.
I’m in the coding interview.
Preparation includes not only what to do before your interview, but also knowing what to expect mid-interview. Though the questions may be new to you, the principles behind restating the problem at hand and asking clarifying questions should be old hat. You’ll be familiar with doing both of these from your mock interview prep.
Articulate your thought process and speak out loud as you’re working; if you’re changing languages mid-problem, explain why. Let them know how you came to conclusions or found solutions. Behavioral cues are just as important as technical acumen.
I’ve completed the coding interview.
Once you’ve completed a coding interview and you’ve left the room (either figuratively or, quite literally, the onsite interview room), take a deep breath and give yourself a pat on the back. Coding interviews are challenging. They’re designed to put you under pressure. You’ve put weeks of prep work into a 60-minute presentation and you deserve to feel accomplished.
Within 48 hours of completing your tech interview, send a thank-you email to your interviewers and hiring managers thanking them for their time. You should also ask for feedback and notes on your interview, regardless of whether you move forward in the role or not.
Finally, take some time to reflect; both on your own performance and on the team at this company you’ve spent time interacting with. Now that you’ve gone through a few steps, does the company feel like a good fit for you? If an offer were to be made, would you take it? Is it your dream job?
Making a pros and cons list isn’t a bad idea to get your thoughts down on paper after every coding interview. Especially if you’re interviewing frequently, it will help you keep track of the different organizations and what you like and dislike about them.
Conclusion: Practice, research, then practice again
Cracking the coding interview process isn’t easy. Even seasoned professionals spend time preparing for them well in advance; some, even before they’ve been invited to interview. For newer and mid-level engineers, giving yourself lead time to practice your hard skills, gain confidence in your soft skills, and do enough research to solidify both skill sets will afford you more confidence and hopefully, a better performance.
In addition to the above resources we mentioned, we invite you to try App Academy Open entirely for free if you want a refresh on core software engineering topics. It will help strengthen your understanding of languages you may already know, as well as reaffirm your comfortability with those data structures, algorithms, and syntax you need to have nailed down prior to your interview.