Cracking the Coding Interview: An In-Depth Review 2023
Opened a random page of the book. Suddenly I know how to use regex to implement a word counter, and that is useful for text editors and the like. I also learned how to implement a swap function using xor arithmetic, and I’ll never forget it. It’s all because of this book. —One of our readers
We listed this book in our Essential Reading List article, but felt it deserved a larger review.
Facebook, Apple, Netflix, Google, and Microsoft are notorious for having a difficult interview process, and it’s no secret that landing a job at one of these companies can be tough. Competition is fierce, and the interview process can be daunting. But with the right preparation, you can increase your chances of success.
One of the best ways to prepare for a tech interview is to practice coding questions. Coding questions can be found a number of websites. Some of our favorites include:
These websites are amazing resources. You should visit them now and add them to your bookmarks. However, some of us will want more, something that will give us an even greater chance of landing a job at a FANG company. There’s a book that will help you. The best book for coding interviews, in our opinion, is Cracking the Coding Interview by Gayle Laakmann McDowell.
A look at Cracking the Coding Interview
Cracking the Coding Interview contains 150 programming questions and solutions, as well as advice on how to approach coding interviews. The questions are divided into sections by topic, so you can focus on the areas where you need the most practice.
Let’s take a peak at the contents of the book and explore them a bit:
- The Interview Process
- Before the Interview
- Behavioral Questions
- Big O
- Technical Questions
- Interview Questions
- Concepts & Algorithms
The Interview Process
This section discusses the interview process and gives you a glimpse of what the interviewer might think of you as a candidate. It explains the processes behind the interview, from the phone call, to the whiteboard.
Before the Interview
This section discusses what you should have as a candidate before the interview, such as getting experience, having a great resume (and how to craft it), how to list which programming languages you’re comfortable with, and more. It also lists some stigmas to be aware of, like certifications, and only knowing one or two programming languages.
Behavioral questions might possibly be the most important part of an interview. They’re asked to get to know your personality, and to ease you into an interview. This section discusses how you should answer a question such as “what are your weaknessess?", as well as gives you some guideline questions to ask the employer.
This is such an important concept that we are dedicating and entire (long!) chapter to it. – Gayle Laakman McDowell
However, our article is not quite as in-depth as Gayle’s chapter is! If you struggle with this topic, the section in Cracking the Coding Interview should help clear your confusion.
This section is great. It offers advice on how to prepare for technical questions, and gives you some adivce on what you should know (core data structures and algorithms). This section gives you a table of must-have algorithm and data structure knowledge. The table is as follows:
|Linked Lists||Breadth-First Search||Bit Manipulation|
|Trees, Tries, and Graphs||Depth-First Search||Memory (Stack vs. Heap)|
|Stacks and Queues||Binary Search||Recursion|
|Heaps||Merge Sort||Dynamic Programming|
|Vectors / ArrayLists||Quick Sort||Big O Time & Space|
This is where the fun begins, and where you’ll start to explore some of the interview questions you might encounter during an interview. Let’s look at an example question from chapter 1, Arrays and Strings
- 1.1 Is Unique: Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structures?
Can you solve it? If not, don’t worry, each question contains hints, as well as an answer (if you are really confused).
Concepts & Algorithms
Concepts & Algorithms jumps right into bit manipulation, and then explores those other topics which are very important for you to know (e.g. Object-Oriented Design, Recursion and Dynamic Programming, and more.)
Why read Cracking the Coding interview
That wraps up our quick overview of what the book contains, however, we didn’t even scratch the surface of evertyhing contained within the book. It offers so much more.
So, if you’re serious about landing a job in the tech industry, Cracking the Coding Interview is a valuable resource that can help you prepare for success.
If you’re lucky, you might be able to find a job at a small company that doesn’t require an algorithm-based interview. There’s nothing wrong with working for a small company. However, if you want to work at one of the large companies mentioned above, you’re going to need to be able to solve these problems, explaining why you chose a specific algorithm, how you can make it more efficient, and more. This is required.
That is the sole purpose of Cracking the Coding Interview – to help prepare you for success during your coding interviews. The book covers a wide range of topics that can be helpful in your interview preparation, including data structures, algorithms, and programming challenges. In addition, the book includes tips and advice from experienced interviewers on how to approach and answer coding questions.
Let’s think about this. You’re getting this $30 book to prepare for an interview at a company that will pay you $100,000 or more per year. That’s not a bad tradeoff, no?
There’s zero reasons to not own this book.
And let’s look at it this way – the book will be valuable not only for preparing you for interviews, but also by helping you become a better software engineer.
Frequently Asked Questions
Is Cracking the Coding Interview worth it in 2023?
Yes! FANG interviews aren’t going away. The information contained in Cracking the Coding Interview will be useful now and far into the future.
Is Cracking the Coding Interview good for beginners?
You should definitely have some computer science and programming knowledge under your belt before reading this book. Afterall, it is an interview book, and not a coding tutorial.
How should I use Cracking the Coding Interview?
You should use it alongside the websites listed above, such as Leetcode. Try to solve all of the problems in the book without looking at the hints or answers. And we mean to really try. If a question is beyond your abilities, take a look at the hints, and if you still can’t find a solution, check the answer – but study it!