Finally, a bulletproof, step-by-step system to be interview ready in 6 weeks
- Memorizing random interview questions and answers
- Grinding Leetcode
- Studying every algorithm under the sun
You open up your email and you’re greeted with this email:
An offer to interview. At Google!
You’re finally getting your shot at the bigtime. Of course you’re excited. Who wouldn’t be?
Where else can you receive $250k in total compensation in your first year?
Where else do they have ping pong tables and 20 percent time and free laundry on site?
Where else can you work whenever and wherever you want (as long as you get your work done)?
Where else will give you the credibility to have companies fighting over you for the rest of your career?
No wonder everyone wants to work at Google. Or Facebook. Or Netflix…
But that’s the thing. Everyone wants to work there.
Google’s acceptance rate is less than 0.2%
That means you have to be the best out of 500 people to even get an offer.
And now that they’re asking YOU to interview, this is your chance to prove you have what it takes.
This is when the fear sets in…
It’s not like you get these sorts of opportunities all the time. You need to make this one count.“I always find the interview process quite daunting and I don’t know what the employers are looking for… so it gives me a lot of anxiety to go through the interview process.”
– Matt D.
Maybe your friend referred you for the position. I can’t make them look bad!
Maybe you’re way underpaid. How does everyone else make 6 FIGURES?!
Maybe you’re moving to another city and need the job ASAP. I can’t afford to be jobless…
Whatever it is, you need to make this work.
So what do you do?
You can go on Leetcode. Start solving the 1000+ practice questions that they have in the hopes that a similar problem comes up on your interview.
You can pick up Cracking the Coding Interview, Elements of Programming Interviews, or one of the hundreds of other books on Amazon. Now you have even more practice problems to solve.
You can turn to Google and start reading some of the 120 MILLION articles written by randos on the internet who aren’t even sure know what the heck they’re talking about.
And with all these resources, you fall into the same trap that thousands have before you: You don’t know where to start. You don’t know what to focus on. There are an overwhelming number of resources out there.
There is so much to know. Do you need to know this topic? Do you need to know that topic?
This person says I need to know Djikstra’s algorithm.
That person says I need to know Kadane’s algorithm.
You’ve heard machine learning is important so maybe you need to know A* search.
Ultimately, this leads to 1 of 3 outcomes…
Outcome #1: You go into your interview feeling like crap
Yes you’ve studied a bunch of different practice problems. Yes you’ve learned a bunch of different algorithms.“I am too nervous about the entire thing and mind goes blank most of the time.”
– Rosa T.
But we all know just how much more there is for you to learn.
And on top of that, how much do you really remember of what you studied? It was hard enough to remember it without the pressure of the interview…
What if they ask you about bit manipulation? After all, you spent a ton of time studying trees but didn’t actually have time to look at this.
What if they ask you the Knapsack Problem? You spent that whole day studying it but now it’s only a fuzzy memory.
What if they ask you the difference between an inorder and a postorder tree traversal? You know you learned this somewhere but as soon as you’re in the interview, your mind goes totally blank.
Now just compound the nerves on top of everything else.
They’re judging you.
This is your one shot.
You can’t blow it!
This pressure isn’t exactly helping…
Ultimately, you crumble under these circumstances. There’s simply way too much working against you.
Outcome #2: You delay your interview indefinitely
Maybe instead of going in unprepared, you decide you’re going to put off your interview until you’re fully prepared.
That’s the great thing about these companies that are constantly hiring, right? You have the flexibility to interview pretty much whenever you want.
That time never comes!
You tell the recruiter you’re not quite ready to make a change and ask them to follow up in 6 months.
Then you frantically start grinding on Leetcode. You do problem after problem and slowly work your way through 100, then 200.
And every time you start to get close to completing the problems, they add more.
Every time you go back to that problem you solved a month ago, you feel like you’re relearning the whole thing over again.
Even after doing all of these problems, you can’t seem to wrap your head around a problem that you’ve never seen before.
You still have to look up Leetcode problems that are supposed to be Easy/Medium.
You never seem to make any actual progress.
All the while people around you are landing awesome jobs.
Oh did you hear? She just landed a job at Facebook.
Yeah he’s been working at Google for about 4 months now.
I heard both of them got competing offers from Apple and Uber. I wonder which they’re going to choose!
And your interview is looming. You’re unprepared.
So you ask to delay it another 6 months.
Just 6 more months and you’ll be prepared.
Just 6 more months of grinding the same problems.
Of studying the same crap.
Of feeling unprepared for your interview…
And so the cycle repeats.
Outcome #3: You give up
Or the worst case scenario… You just give up.
This is when you tell yourself, “Oh I don’t really want to work there anyway.”
“I’m not a sellout.”
“I just prefer working at startups.”
“This system is rigged.”
Trust me, I hear this all the time!
Ultimately you decide to settle for less. You’ve dreamed of working at Google for years. You’ve committed months of study. You’ve given up your weekends.
And now you’re just throwing it all away. All because you can’t cross that final hurdle.
All because of a stupid interview.
Why nearly everyone fails their Google interview
Why is it that so few people pass their interview?“Hope is not a strategy.”
– James Cameron
Is it that…
- Some people are just lucky?
Nope. As a matter of fact, the same people tend to get the best offers over and over again. Clearly they’re doing something right.
- Some people study way more?
Surprisingly, also no. There are people who study for 8 months and fail their interview miserably and those who take a couple weeks and land multiple job offers.
- Some people are just smarter?
Thankfully not! With the number of people top tech companies are hiring, it’s simply not possible for them to hire only people with genius IQs.
Most people never learn how to interview.
No matter how good you are at coding, you also need to be good at interviewing.
That’s right! Even total rockstars will fail their interviews if they don’t learn the proper skills. And if you’re not a rockstar programmer, what chance do you have?
If you can code perfect bug-free code at work but freeze up during your interview, you won’t get the job.
If you can architect complex microservices but aren’t able to code on a whiteboard, you won’t get the job.
If you can develop tools used by millions of developers but can’t invert a binary tree, you won’t get the job.
No. You need to know how to interview.
Without learning to interview properly, you’re likely making a few super common mistakes. Mistakes that can cost you everything.
These are mistakes that can cost your dream job. They can cost you a $20k pay raise. They can cost you $150k in stock options…
But if you avoid these mistakes, you’re already better than most interviewees.
Despite being such a critical skill to know, no one ever teaches us leading to almost everyone making at least one of these 3 major mistakes:
Mistake #1: Studying the Wrong Things
Chances are, if you’re reading this, that you’ve done this before.
Maybe you spent weeks studying a language that you totally didn’t need to know for your interview. Weeks that you could have spent focusing on studying those graph problems that your interviewer asked you about.I spent 3 weeks reading a 1,000-page book on C++. I don’t remember 1,000 pages worth, but I know a good bit about C++ now. As it turns out, I’m using Python for the interview, not C++. I had assumed I needed C++, C, or Java, but I was wrong.
– John Washam, Why I studied full-time for 8 months for a Google interview
Maybe you spent an entire weekend memorizing Djikstra’s, Kadane’s, Boyer-Moore, and 20 other random algorithms that you forgot a week later and didn’t even end up using in your interview anyway.
Maybe you spent all this time learning deep operating systems stuff and got foiled in your interview by a simple string problem.
The fact of the matter is, there are only a few topics that you really need to know for your interview. If you focus on just these things, you’ll be 80% of the way there.
In fact, our research has shown that at Google almost every interview problem is either:
- Trees and Graphs
- Arrays and Strings
- DP and Recursion
- System Design
Frequency of Google interview topics
See? No C++, no bit manipulation, no machine learning…
Other companies differ slightly, but the core topics are basically the same.
And when we dug deeper, we found that most of the algorithms that we “need to know” aren’t necessary either.
Learning Djikstra’s algorithm? Waste of time.
Kadane’s? Boyer-Moore? KMP? Not worth it.
Just focusing on the core patterns of these topics would give you the answer to almost every problem.
Mistake #2: Focusing on Memorizing Solutions to Interview Questions
Ah the biggest myth in interviewing of all time:
You can only be successful if you’ve already seen the problem.
In fact, the only reason anyone thinks this is because that’s what everyone else does. That does NOT make it right.
Let me guess what you do when you go to solve a practice problem.
First, you randomly pick a problem. To Leetcode!
Let’s say you pick a Tree problem.
Then 1 of 2 things happens:
- You look at the problem and you see the solution. Easy peasy.
- You give up and look at a solution.
But most of the time that’s not what happens.
You stare at the problem.
Why did you even bother to try to solve the problem? You were never going to solve that hard problem anyway so you go straight to the solution.
Reading it, the problem makes sense. Okay. I get it. Time to move on.
Now rinse and repeat. Ad nauseum.
There are always more problems to do. Gotta make sure I’ve studied every possible problem they might ask me in the interview. What if I get in there and I don’t know how to solve the problem?
So far none of this seems that terrible until you get into the interview. That’s when it all falls apart.
On a good day, you get lucky and they ask you a question you’ve seen before…
But do you remember how to solve it? You did that problem once. Three months ago.
You read the solution and it made sense. But now under the pressure of the interview, your mind is blank.
Why didn’t you spend more time on that problem? Obvious. You had to also spend time on all the other problems. It’s not like you can spend hours studying each problem. That’s ridiculous.
And so you sit there in your interview. Frozen. Trying to figure out what the hell you’re going to do.
Mistake #3: Not Having a Plan B
So now you’re frozen, in your interview, staring at this code.
It looks like a foreign language. You’re sure that you studied this problem before, and you remember vague snippets of it, but it’s really just a vague fog in your memory.
What do you do now?
This is where so many interviewees fall apart. They’re so dependent on a single approach to solving the interview problem. They’re so dependent on that recognition of a problem.
By focusing all your attention on memorizing solutions to problems, you never have an opportunity to develop a plan B. You never think about what you’re going to do if things go wrong.
Rather, you just hope.
You hope that things will go the way that you want them to.
You hope that you see a problem that you recognize.
You hope that you don’t get stuck…
Because the alternative is failure.
The alternative is going from nailing your interview one second to completely falling apart the next.
Existing interview prep resources DON'T WORK
If you’ve been making any of the mistakes I mentioned, I know it can kinda feel like crap. After all you’ve been working hard and here I come telling you how you’ve been screwing up.
But here’s the thing:
It’s not your fault!
In my research into coding interviews, I’ve used countless resources. I’ve studied books and websites, software tools and blogs. And none of them really work.
I hear from students who come to me after studying for months and simply not making the progress that they want. Within weeks, we’re able to completely turn things around.
The problem with all the materials out there is that they simply throw information at you.The problem solving framework is the core content of your course and I will definitely use it in my coming interviews. It is really really great.
– Santosh D.
They say, “Learn A, B, and C and then you’ll be successful,” but they never tell you how to do that. They don’t show you how to actually learn. They don’t give you an actual framework.
They just throw more and more information at you and you end up in a hamster wheel.
If I just learn this one more thing, then I’ll be successful.
So you keep studying and preparing. Studying and preparing. And never really making any progress.
And on top of that, they just teach you information.
More algorithms. More data structures. More practice problems. The list is never-ending.
But even if you learn the information, you never learn how to apply it.
That’s why everyone reverts back to simply trying to memorize solutions to interview questions. We all know in our hearts that it’s not an effective approach, but what other option is there.
Luckily, there’s a better way...
Here’s the thing about the people who succeed at interviews.
They’re not smarter than you…
They don’t study harder than you…
They aren’t just insanely lucky…
These people just have a strategy.
Rather than prepare for interviews at random, they do so strategically.
Rather than try to answer interview questions by just staring at the problem, they have a step by step process for answering the question.
Rather than their mind going blank, they practice getting stuck and have specific techniques for getting back on track.
What would it be like if you had a strategy?
Imagine how your interview prep would change if you had a strategy…
No longer are you picking random topics that you think you need to study.
Rather, you know exactly what you need to focus on every single day so that you can progress towards your goal.
No longer are you spending hours studying trees only to forget everything you learned 2 days later.
Rather, your approach is organized so that you are continually reinforcing your existing knowledge while building on it and expanding so that you are perfectly prepared for your interview.
No longer are you going into your interview freaking out that you haven’t prepared enough.
Rather, you followed a clear plan that ensured that you would know exactly what you needed to know in time for your interview, while skipping all the irrelevant crap.
And that’s just before you get into the interview.
Once you get into your interview, having a strategy can change EVERYTHING.
You go into the interview confident. It doesn’t matter whether they ask you a problem that you’ve seen before because you have a strategy to tackle any problem.
You can relax in your interview because you know you’ve prepared for every possible situation that comes up.
And your confident, relaxed approach actually makes you perform better.
It makes you more likeable.
It makes you seem like a real, relatable person.
It makes you someone your interviewer is going to fight for because they actually want to work with you every day.
And that’s just the beginning.
With a strategy, everything changes.
With a strategy, you can have 5x the success in half the time.
With a strategy, you can study SMART, not study HARD.