Chances are, the way you’re studying for your interviews is completely wrong. Don’t worry, though, you’re not alone.
When I coach people, I see the same problem over and over again. I don’t blame them, though, because there are many resources out there that promote this form of studying.
With giant directories that compile hundreds of practice interview questions as well as tons of sites with people offering up their own favorites, it’s easy to think that you need to study more questions.
But that’s the problem everyone faces. They focus on quantity over quality.
When you focus on getting through as many questions as possible, your goal shifts from truly understanding each problem to getting through it quickly. This leads to skimming and attempting to memorize solutions, rather than truly understanding the material.
Skimming is like a drug. It’s a quick fix to make you feel like you know what you’re doing, but can easily lead to everything falling apart when you get into the interview.
When you skim, you look at the problem and then skip to the answer before taking time to really work through the problem. It’s so easy to say “oh that makes sense” when you see the answer, but not ever learn how to get from the problem to the solution.
Since you never learned the actual process for solving a given problem, you are relying on your memory of the solution rather than your ability to solve the problem on your own. This is a critical mistake.
Chances are you’re not going to get asked any of the questions you studied, or if you do, your interviewer will ask a variant on it that you haven’t seen.
If you understand how to work through the problem, then this is easy. You’re not relying on your memory of the exact code, but rather using the broad concepts and understanding of the problem to construct the solution. Therefore it doesn’t matter if the problem changes slightly, because the code is written based on the underlying problem.
On the flip side, if you memorized the code, you’re probably screwed. Even if you have seen this problem before and do remember how to solve it, it now has to change because they asked you some variant of the problem. To make the changes, you have to reconstruct your understanding of the problem from the code you memorized, make the change, and then rewrite the code.
The solution here is simple: focus on quality over quantity.
When you study, don’t just pick any old problem, but consider topics that you’re struggling with and find problems where the core concepts are broadly applicable.
Take the time to work through the problem yourself before turning to the solution. It may take an hour or more, but that’s okay.
If you get to a point where you’re really not making progress, it’s okay to turn to the solution, but now the real work begins. You have to really understand the solution.
This does not mean you read it and think “oh that makes sense.” You have to understand how you could solve a similar problem if you came across it in the future. How did someone see the problem and get to this solution? It doesn’t help you in your interview if you can only recognize a correct solution when you see one.
I think the main reason people focus on quantity over quality is that it’s easy. It takes time, but you don’t really need to think. It’s passive.
Focusing on quality, on the other hand, takes work. You have to really think deeply about the problem, both working through the problem and then trying to understand the solution.
That extra work, however, can pay massive dividends. By truly understanding the content that you study, you don’t have to worry if you’ve seen every possible problem your interviewer could ask you. Rather you can rely on your confidence and understanding of the material to succeed in your interview.
Nail your coding interview and get the job you deserve
Sign up for my weekly emails and I’ll show you how to become an interview rockstar, solve brutal coding problems, and get the dev job you deserve.