If you clicked on this post, just looking for a quick answer, then yes, coding interviews are getting harder.
But here's the thing, that doesn't mean you can't be successful at coding interviews and that you can't land a great job. It also doesn't mean that you have to spend months and months preparing. It just means that you need to know how to stand out from the crowd so that you can separate yourself from everyone else.
Here's an example of a LeetCode problem that over a million people have solved. If all you're doing to prepare for your interviews is solving problems just like this, then you're doing the same thing as everyone else. So when a company is choosing one out of a hundred people to give a job offer to, what are the chances that they're going to choose you? You're the same as everyone else.
In this post, I'm going to show you four strategies to help you stand out and make sure that you are actually seeing results from your interview prep.
Decide What You Want
The first thing to do is to decide whether landing a job at a top tech company is really worth it to you. I know lots of people want to land a FAANG job; there are lots of reasons that you might want to do that.
But the reality is that you're going to have to put in a lot of work to get there. It used to be that these companies weren't as competitive. If you just walked in and had good software engineering skills, you'd be able to land the job.
But obviously that's no longer the case. So if you're going to prepare for interviews, there's no reason to half-ass it. If you half-ass it, you're going to spend time preparing for interviews, but you're still not going to see results because you're not going to stand out from everyone else.
Now, if you decide that it's not really worth it to you to prepare for these interviews, that's okay. There are lots of jobs out there that don't require coding interviews. Here's a long list of companies that do different sorts of interviews.
But if you are going to prepare for one of these coding interviews at a top company, you need to really commit and have a reason why. If you don't have a reason why, you're not going to stick with it; you're not going to make consistent progress. And you're not going to go deep enough to see the results that you need to ultimately be successful. And it's just going to be a waste of time.
Focus on the Fundamentals
Once you've decided that you are going to commit and you are going to put in the work to prepare for these coding interviews, the next thing that you need to do is focus on the fundamentals.
So many people jump into just solving practice problems, doing random things here and there. And they don't actually understand the fundamentals well enough to support everything else that they're doing.
This is a lot like trying to play basketball without knowing how to dribble the ball and without knowing how to pass the ball. You can learn all the strategy in the world. You can learn specific plays. You can learn all these different things, but if you don't have those basics down, the rest of it doesn't matter. I can tell you, okay, you're going to run the ball up the court and do X, Y, and Z. But if you can't actually get the ball there, then it doesn't matter.
So when it comes to interviewing, those fundamentals are data structures and algorithms. You really need to dial in those fundamentals first, before you do everything else. If you dial in the data structures and algorithms fundamentals, that means that when you go solve practice problems, you'll actually be in a position to not just look at the solution and understand what that solution is doing, but actually really develop solutions for yourself.
You'll have those basic building blocks that you can put together to work up to a solution so that you can understand it. And then when you're in your interview and they ask you a question about whatever data structure, you have those foundations, so that even if it's something that you haven't studied before, you understand that data structure well enough that you can recreate what you need to do.
Apply a Framework
Once you get the fundamentals down, this is where you need to start applying a framework.
Going back to our basketball analogy, if you know how to dribble the ball and you know how to pass the ball, but you have no idea what basketball strategy is or how the game works, you're also not going to be successful.
So now that we have those fundamental moves down, those data structures and algorithms, how do we actually apply those in the interview? This is where having a step-by-step framework is so important. A simple example of this framework comes from Cracking the Coding Interview.
The framework that she presents in there is:
This is a very simple framework, but what you can see is that it gives you a linear set of steps to follow when you are doing an interview.
By practicing a framework like this, and by actually breaking down the steps, you will understand how to work through to a solution. And you will have a consistent process to follow every time you go into an interview.
What most people do when they go into their interview is use a strategy that I call the hoping and praying technique. And basically what that looks like is they go into the interview and they hope and pray that they see a solution to the problem.
But by using a strategy, like the framework from Cracking the Coding Interview, or like the Coding Interview Success Framework that we teach inside Coding Interview Mastery, you have a step-by-step process, so every time you go into an interview, you know exactly what you're doing and when.
Get Help
And the final step – step number four – is to get help.
So often as software engineers, we want to find out everything for ourselves. If there's a bug in our code, we'll spend hours and hours going through documentation, trying to figure out how to fix it, even if someone who could give us the answer to our solution is right there in the next room. And the same thing is true for coding interviews. There are specific things that interviewers are looking for.
There are specific data structures that you need to know, and that you don't need to know. There are frameworks that work, there are strategies for optimizing your code. There are people who can give you mock interviews and give you feedback on the process and tell you, are you doing well or not? And taking advantage of all of these as resources is an incredibly valuable way to take your interviewing to the next level.
If you're really intent on finding the most efficient way to get from where you are now to being successful at coding interviews to ultimately landing that job, then getting help is one of the most important things that you can do. It's one of the best tools available to you to optimize that process.
And if you want to learn more about how you can work with me directly to take your interviewing to the next level and ultimately land that next job, go to byte-by-byte.com/training. We have a free training over there that will show you some of our best strategies and also talk a bit more about how we can work together.
At the end of the day, there are millions of different ways that you could prepare for coding interviews, but some of those ways are going to work better than others.
If you focus your attention on starting with those fundamentals, then dialing in a framework, and getting help to support you along the way, you're going to get results much faster than if you just go try and grind out as many problems as possible.