What Is an Algorithm Technical Interview? Reading "Cracking the Coding Interview"
- Published on
For software engineers who want to level up their careers and jump to top global companies like FANNG (Facebook, Amazon, Apple, Netflix, Google), beyond having English good enough for workplace communication, the other big boss to beat is the algorithm technical interview.
The must-read bible while preparing is this book: "Cracking the Coding Interview: 189 Programming Questions and Solutions".
Here, let's read chapters one through three together: what is a technical interview? What does the process look like? And what mindset should you bring to it?
Note: I read the revised 6th edition.

The structure of "Cracking the Coding Interview"
The book has two main parts.
The first 100 pages walk through the entire interview process — from preparing your resume early on, to problem-solving techniques during the interview, to negotiating salary at the end — going from soft career planning all the way to hard technical interviewing. Concretely, it covers:
- The interview process
- How interviews differ at big companies like Microsoft, Amazon, and Google
- Preparation for different interview scenarios: candidates with work experience, test engineer interviews, PMs, management roles, startup interviews, acquisition interviews, or when you are the interviewer yourself
- Interview preparation: building experience, resume writing, planning your timeline
- The Behavioral Interview: how to highlight your strengths and introduce yourself
- The Technical Interview: preparation and problem-solving approaches
- Offer-related topics: negotiating salary, evaluating a job
- Big O notation: describing algorithm efficiency
The remaining 800 pages present 189 technical interview questions, categorized by question type, data structure, and difficulty, with problem-solving approaches and detailed solutions, mostly in Java and C++. The chapters break down like this:
- Data structures
- Array & String
- Linked List
- Stack & Queue
- Tree & Graph
- Concepts and algorithms
- Bit Manipulation
- Math & Logic
- Object-oriented design
- Recursion, Dynamic Programming
- System design
- Sorting and searching
- Testing
- Knowledge based
- C/C++ and Java fundamentals
- Database design and SQL
- Thread & Lock
- More problems
- Moderate problems
- Hard problems
- Solutions
- Advanced topics (topological sort, Dijkstra, AVL Tree, etc.)
- Common libraries
This article covers the first half — the interview process.
About the author, Gayle Laakmann McDowell
The author worked as a software engineer at Microsoft, Apple, and Google, and served on Google's hiring committee, interviewing hundreds of candidates and reviewing thousands of interview packets and resumes.
She also founded CareerCup, which offers an interview question database to help candidates perform at their best in interviews.
The book is written from her experience as both a job seeker and an interviewer.
Gayle has written three other books — "Cracking the Tech Career", "Cracking the PM Career", and "Cracking the PM Interview" — also well worth reading if you're building a tech career or working as a PM.
What is a technical interview
The goal of a technical interview is to evaluate a candidate's algorithm and coding skills.
Take Google: the first round, the Phone Interview, is a video call with an interviewer where you solve 2 algorithm problems within 45 minutes.
The problems might be things like: how do you find the fifth-largest number in an array? Or, given a chart of stock price movements, on which days should you buy and sell to maximize profit?
After hearing the problem, you need to proactively ask the interviewer for more details, clarifying the problem's goal, boundaries, and constraints.
Then, in an online Google Doc, you come up with test data, draw diagrams, and write pseudocode to sketch out the frame of the algorithm — all while verbally walking the interviewer through your thinking.
Once you've confirmed the algorithm's direction is right, you write it as actual code in a programming language, and finally hand-write test data and verify the program's output line by line.
Based on your solving speed, algorithm efficiency, communication skills, and code correctness, the interviewer decides whether you move on to the next stage.
The content and difficulty vary a bit from company to company, but that's roughly the flow.
Solving the problems within the time limit is very challenging, and a normal software engineer doesn't run into algorithms this heavily in everyday work — start a technical interview with zero preparation and you're guaranteed to hit a wall. But big tech companies like FAANG all have one or more rounds of technical interviews, so if you want to take your career to the next level, technical interviews are something to practice hard!
"Cracking the Coding Interview" is the secret manual for conquering technical interviews. I recommend picking up a copy and pairing it with hands-on grinding through LeetCode problems — let's push our careers one step further together!