The first chapter focuses on the interview process. A typical interview process can be divided into two phases:
phone interviews (including phone-screen interviews) and on-site interviews. Usually there are three steps in
each round of interview, which are the behavioral interview, technical interview, and general Q/A. Tips are
provided for each stage of interviews.
The next three chapters cover basic programming knowledge. Technical interview questions on four
popular programming languages (C, C++, C#, and Java) are discussed in Chapter 2. The most common data
structures (including arrays, strings, lists, trees, stacks, and queues) and algorithms (including search, sort,
backtracking, dynamic programming, greedy algorithms, and bit operations) are discussed in Chapter 3 and
Chapter 4 respectively.
Chapter 5 discusses three factors of high quality code. Interviewers usually expect candidates’ code to
fulfill the functional requirements as well as cover corner cases and handle invalid inputs gracefully. After
reading this chapter, you should get the idea so that you will write clear, complete, and robust code.
Three strategies to solve difficult coding interview problems are provided in Chapter 6. If hard problems
are met during interviews, candidates should figure out solutions before they write code. After reading this
chapter, you may get three strategies to solve problems: figures to visualize problems, step-by-step analysis on
examples to simplify problems, and divide-and-conquer strategies to break complex problems into
manageable pieces.
The topic of Chapter 7 is performance optimization. If there are multiple solutions to a problem, usually
interviewers expect the most efficient one. The strategies to improve time efficiency and make trade-off
decisions between time and space are discussed with several sample coding interview questions.
Chapter 8 summarizes various skills for interviews. Interviewers usually pay close attention to candidates’
communication and learning skills. Additionally, many interviewers like to examine candidates’ skills of
reapplying knowledge, mathematical modeling, and divergent thinking.
Chapter 9 closes this book with two interview cases, which highlight good behavior expected by
interviewers and the most common mistakes made by candidates.