I've helped a lot of software engineers with their coding interview prep over the last six years. And I've seen a lot of mistakes.
In this post, I'm going to share with you six of the most frequent mistakes that I see and how you can avoid them in your interview prep.
Mistake #1 – Not Having a Clear, Controllable Goal
The first mistake is not having a clear goal that you can control.
Most people go into their interview prep having set a goal that is completely outside of their control. They say, ‘I want to get a job at Google,’ or ‘I want to get a job at Facebook.’ And while on the surface, these may seem like solid goals, they're actually really bad goals.
The reason for that is that no matter what you do, you cannot a hundred percent control the outcome of that goal. So you're working towards something where your success is completely outside of your control. You can prepare for interviews, get really ready and still not succeed in the interview because your interviewer simply didn't like you.
A much better way to think about goals for your interview prep is to create process goals. What is the process that I'm going to do every day that is going to help me make the most progress forward? You can create a North Star vision for where you ultimately want to be, but in terms of setting a goal, think about setting a goal as something that you have full control over.
For example, I'm going to sit down every day and solve two LeetCode problems. Or, this week I'm going to learn these two data structures, or I'm going to complete one mock interview and meet with one recruiter this week.
Whatever those goals are, setting a goal that you have complete control over is going to put you in a much better position to be successful and keep you motivated because there's not something outside of your control where you are going to fail because something didn't go the way that you wanted it to. You're able to control that goal and control whether you succeed or not.
Mistake #2 – Not Building a Consistent Study Habit
Mistake number two is not building a consistent study habit.
So often I see people go into their interview prep and they're like, ‘Okay, well, I'm kind of busy during the week, so I'm going to spend eight hours on Saturday.’ It gets to Saturday, they wake up late. They're tired, they're hung over from the night before and they maybe get a couple hours of studying in and it's not really good studying anyway.
Now on the flip side, the people who are the most successful are the ones who do a little bit of studying every single day. Our brain works way better when we give it that constant stimulus over time.
In the same way that you wouldn't go to the gym and do 10,000 pushups in one day, you shouldn't try to do all your brain exercise on one day of the week. Spreading it out and doing a little bit each day makes a big difference for your ability to improve at the skill. And along with this, think about how you can make this habitual. How can you make this something that you do every single day?
I don't have to think about whether I want to go to the gym in the morning or not anymore. It's just a habit for me. I go to the gym every single day. It doesn't take any willpower. I don't have to be in a good mood. I don't have to even want to go to the gym. I just go because it's a habit.
In the same way, if you can create your interview prep into a habit, it means that no matter what else is going on in your life, you're going to do your interview prep because it is habitual, because it's something you're used to doing. It doesn't take willpower for you to do it so you're much more likely to just go sit down and accomplish what you want to accomplish.
Mistake #3 – Trying to Learn a New Coding Language
Mistake number three is that people try to learn a new coding language just for their interviews.
A lot of people hear, ‘Hey, Python is the best language for coding interviews.’ And yes, if you're great at Python, it is an awesome language for coding interviews. It's very efficient, both in terms of the number of lines of code that you need to use and in the way that you phrase some of the things that we need to do in our interviews; it offers a lot of built in functionality that's super helpful.
But if you're not familiar with Python and you're just learning it for your interview, it's going to be way harder than if you just used a language that you were more comfortable with. The reality of interviewing is that so much of it is how do you perform under this high stress environment? How do you perform when everything is on the line?
And what happens if you go in and you're trying to use a language that you don't remember very well is that your intuition is not there. Your intuition about the language is not the same as if you use the language that you were familiar with. So when you end up in a situation where you're stuck on something, or you're not really sure how to approach it, and your intuition fails you.
Versus if you use a language you already know well. Let's say that you're a Java developer and you use Java in your interview. Yes, Java can be more verbose, but you're likely to be much more efficient at coding in Java. And when you get stuck, you'll be much more able to solve your problems than if you try to learn a new language like Python, just because you heard it was better for interviewing.
Mistake #4 – Memorizing Specific Algorithms
Mistake number four is focusing on memorizing specific algorithms and implementations of certain data structures rather than understanding the underlying fundamentals.
What most people do when they want to study data structures and algorithms is they go on LeetCode and sort by topic. They'll say ‘sort linked lists,' and then they'll go solve a bunch of linked list problems.
And while this is certainly better than nothing, it's not a great way to prepare because when you get into your interview and there is a linked list problem that you've never seen before, then how do you actually work from what you know to a solution? You're trying to take specific examples, specific code — you may not even understand that code very well — and translate that into a solution to a different problem.
Versus if you took the time to really understand the underlying algorithms, understand how this stuff works. For example, with a tree, if you understand depth first search beyond just ‘how does the code look,’ but rather understanding what you’re actually doing, then it doesn't matter whether you remember exactly how to implement that code. It doesn't matter in your interview if they ask you that exact question, you understand the fundamentals, you understand the principles behind the algorithm and behind the data structure that allow you to come up with solutions on the fly, even if it's not exactly what you've seen before your interview.
Mistake #5 – Memorizing Solutions to Problems
Now more broadly along with this, mistake number five is trying to memorize solutions to problems rather than understanding the thought processes behind the problems.
At this point, there are over 2000 problems on LeetCode. So let's say that you were able to go through every problem. Let's say that you have that kind of time. By the time you get to your interview, how many of those problems will you actually remember how to solve? And let's say that your interviewer doesn't actually ask you that exact question. Will you have the intuition to be able to adapt those specific solutions to what they ask you in your interview?
When you're going through practice problems, the key is to understand the thought process behind the problems. How do I get from this question to this solution? That's the beauty of doing LeetCode problems. And that's where it doesn't matter how many problems you've solved. It matters that you understand the thought process and that you understand the intuition behind solving these problems.
Mistake #6 – Not Getting Help
And finally, mistake number six is not getting help.
A lot of software engineers believe we should be able to figure out everything for ourselves. And that is possible. You can figure out interviewing by yourself if you take enough time to do it. But that doesn't mean it's an efficient approach.
If you're working a full-time job, if you have a family, if you have other commitments, are you able to spend eight months full-time studying for your interviews? And do you want to wait a year before you're able to interview at that top company? Do you want to wait a year before you're able to land those bigger and better opportunities?
The beauty of asking for help is that you can learn from someone who's already done what you're trying to do and can give you guidance that will get you there faster.
At this point, I've worked with over a thousand students, helping them specifically with their coding interview prep. And if you want help from me, go to byte-by-byte.com/training, and I'll show you exactly how our process works to get people up to speed on their interviews in just three months.
If you can avoid making these mistakes in your interviews, it's going to make a huge difference for your interview prep overall.