Those of us with FAANG-level coding aspirations also have FAANG-level uncertainty. There are plenty of variables to consider. From submitting your application to getting a callback, the first interview to the third, you want to present your experience with confidence.
Working for one of these places is a fantasy. A Dream. But could it become a reality? Your reality?
Quite possibly. But you have to pass the first interview (and probably a few more).
So you should be prepared to answer their questions. And be ready to solve their coding problems in real time.
This post contains affiliate links. I may receive compensation if you buy something. Read my disclosure for more details.
But how do you know what they’re going to ask?
Because Cracking the Coding Interview tells you. It features nearly 200 programming questions and solutions asked by Amazon, Google, and Facebook… to name a few.
The book includes:
- 189 programming questions based on algorithm, coding, and design
- Walk through for each solution
- Proven strategies to tackle algorithm questions
- Extensive coverage on Big O notation, data structures and core algorithms
- Behind the scenes look at how Google & Facebook hire developers
- Techniques to ace the soft side of interview with behavioral questions
- 70% more material than the 5th edition
And that’s just the beginning.
Cracking the Coding Interview is basically two books in one.
The first 90 or so pages goes over what to expect during the interview. And how to prepare for it.
Then, there are hundreds upon hundreds of pages of coding problems, hints, and solutions.
You might be thinking, “I’m still not convinced. Is Cracking the Coding Interview really worth it?”
I think so. Let’s take a deeper look at what it has to offer.
🚨 Important note: The vast majority of coding problems in this book are written in Java. If you are not proficient in Java, the coding questions will not be useful. 🚨
ABOUT GAYLE LAAKMANN McDOWELL
Author Gayle Laakmann McDowell worked as a software engineer for Google, Microsoft, and Apple. She was on the hiring review board at Google and hired 100s of software engineers and evaluated 1000s of hiring packets.
Gayle is also the founder and CEO of CareerCup.com.
She put together Cracking the Coding Interview for anyone who wants to be prepared when interviewing at a FAANG company.
Cracking the Coding Interview is broken down into two sections:
🦩 The Interview Process
🦩 Coding Problems
1. The Interview Process
In this section, McDowell covers most aspects of what to expect during the first interview.
🍎 Interview Questions
In this opening section of the book, you learn:
- Why interviews are structured how they are
- How questions are selected
- Frequently asked questions
By having a better understanding of the logic behind the interview, you can better prepare for it.
🍎 Behind the Scenes
Every company interviews a little differently. Cracking the Coding Interview’s Behind the Scenes section contains insider knowledge of:
- The Microsoft Interview
- The Amazon Interview
- The Google Interview
- The Apple Interview
- The Facebook Interview
- The Palantir Interview
McDowell gives a detailed rundown of what to expect for each company’s recruiting process, how to prepare and what is unique about their interview.
Let’s take her Facebook interview as an example.
Interview process: You can expect a phone screen that will involve coding via an online document editor. Then you may have a series of coding and algorithm assignments. Following that, an on-site interview.
No detail is spared in explaining every step of the process.
But note: According to McDowell, Facebook prefers fast, entrepreneurial, and accurate coders. They also interview for non-specific departments. If hired, you’ll go through their bootcamp for their code base, get mentorship from senior devs, then earn flexibility in your choosing projects.
🍎 Special Situations
This book isn’t just marketed to aspiring software engineers. It also caters to:
- Experienced Candidates
- Testers and SDETs
- Product and Program Management
- Dev Lead and Managers
- Acquisitions and Acquihires
In this Special Situations section, McDowell addresses each of these.
For example, maybe the startup you work for is in the process of being acquired by a major company. Acquisitions by bigger companies will often require employees at the startups to re-interview with them. This holds the startup employees to the same standards as the larger company’s employees.
Google, Yahoo, Facebook and more have done this. Cracking the Coding Interview will prepare you for this scenario.
🍎 Before the Interview
It’s hard to know what qualifications you should have before applying to FAANG companies. This section gives you clear guidance on what experience you should have before applying to the job:
- Experience with internships
- Working on group coding projects or hackathons
- Building a project on personal time
It also shows you how to write a great resume:
- Appropriate resume length
- Relevant employment history
- What projects to include
- How to list languages
- Advice for non-native English speakers and internationals
And it has a handy map of dos and don’ts when you’re leading up to an interview.
🍎 Behavioral Questions
Many of us have a hard time interacting with other people. It’s hard to just turn on your social skills.
And that’s okay.
Like anything else, it takes practice.
You may be a coding genius. But during the interview process, you need to have a touch of positive social interaction with the interviewers. They want to know if your personality will be a good fit with their company culture.
Whether you’re talking about relevant hobbies or explaining Big O notation, you want to be relatable to the interviewer.
This section of the book gives proven strategies on how to optimize your communication. It includes an interview preparation grid, how to respond to behavioral questions, social cues and more.
🍎 Big O
Big O notation is the language and metric used to describe the efficiency of algorithms. If you get lost in the understanding of Big O, FAANGs will usually see this a red flag.
Know your Big O.
McDowell dedicates a huge section of Cracking the Coding Interview to the Big O:
- Time and space complexity
- Dropping constants, non-dominant terms
- Multi-part algorithms
- Amortized time
- Log N runtimes
- Recursive runtimes
And there are examples and exercises to help you bulk up your understanding of Big O.
🍎 Technical Questions
In addition to showing you how to prepare for the technical questions, Cracking the Coding Interview walks you through a sample problem.
There are also 4 “Optimize & Solve Techniques”:
- Simplify and Generalize
- Base Case and Build
- Data Structure Brainstorm
This section also covers best conceivable run time, how to handle incorrect answers, repetitive questions, good coding examples, and more.
🍎The Offer and Beyond
“Interviewers assess you relative to other candidates.” – Gayle Laakmann McDowell
We don’t always get the job. And that rejection can be hard to swallow. In this section you’ll learn how to channel that rejection into effective motivation for your next interview.
But say you do get the job.
McDowell offers valuable insight into handling and evaluating offers, negotiation, and navigating your career path.
2. CODING PROBLEMS
Now that we’ve got the what-to-expects out of the way, let’s get to why you’re at the interview: to code!
Cracking the Coding Interview has almost 200 explicit and in depth problems, solutions and hints.
While they might not be the exact questions asked at the FAANGs, there will be overlapping concepts. So you should be able to attack many of these with the skills and experience you have.
“Receiving an offer is not about solving questions flawlessly (very few candidates do!). Rather, it is about answering questions better than other candidates.” – Gayle Laakmann McDowell
🌎 Interview Questions
McDowell categorizes the coding questions based on:
- Data Structures – arrays and strings, linked lists, stacks and queues, trees and graphs
- Concepts and Algorithms – bit manipulation, math and logic puzzles, object-oriented design, recursion and dynamic programming, system design and scalability, sorting and searching, testing
- Knowledge Based – C and C++, Java, databases, threads and locks
And much more.
There’s also an expansive section on advanced topics:
- Useful Math
- Topological Sort
- Dijkstra’s Algorithm
- Hash Table Collision Resolution
- Rabin-Karp Substring Search
- AVL Trees
- Red-Black Trees
McDowell included this section by popular demand… Not because they’re necessarily frequently asked by interviewers. Regardless, try to be with familiar them in case they come up.
🌎 Code Library
These useful chunks of code are used throughout the programming questions in the book:
- TreeNode (Binary Search Tree)
- LinkedListNode (Linked List)
- Trie & TrieNode
🦋 So… Is Cracking the Coding Interview worth it?
If you’re ready to start interviewing with FAANG companies, Cracking the Coding Interview is worth your time and investment.
It covers everything from the interview process to special situations, pre-interview preparation to behavior questions, Big O to technical questions, to 189 real-world programming questions.
This book was written with the intention of helping programmers realize their dream of being part of a FAANG company. And it’s by someone who used to work for many of them.
Whether you’re ready to level up or know someone who wants to take the next step in their coding career, Cracking the Coding Interview is highly recommended.