Over the past 5 years, I’ve interviewed for various levels of software engineering positions from intern, new-grad, entry-level, and then mid-level software engineer. Through reading coding interview books, I’ve learned what’s necessary to pass interviews and get job offers at companies like Capital One, Google, and my current company Indeed.
In this article, I’ll be going over my recommended books to get better at coding interviews. These books cover not only the coding interview itself, but also everything the coding interview entails, such as coding fundamentals, mindset, psychology, and preparation habits.
You definitely don’t need to read all of these books to pass your coding interviews. You only need to read what’s relevant to your own personal circumstances, so I hope the notes I left on each book are immensely helpful in allowing you to make a decision on what books to read.
What Are The Best Coding Interview Books?
- Cracking The Coding Interview
- Elements of The Programming Interview
- A Common-Sense Guide to Data Structures and Algorithms, Second Edition
- Introduction to Algorithms, 4th Edition
- Grokking Algorithms
- Programming Interviews Exposed
- Design Patterns: Elements of Reusable Object-Oriented Software
- Clean Code: A Handbook of Agile Software Craftsmanship
- Think Like a Programmer: An Introduction to Creative Problem Solving
- Python Crash Course: A Hands-On, Project-Based Introduction To Programming
- Learn Java The Easy Way: A Hands-On Introduction To Programming
- C++ Crash Course: A Fast-Paced Introduction
- Master Your Emotions: A Practical Guide to Overcome Negativity and Better Manage Your Feelings
- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones
- How To Win Friends and Influence People
- Deep Work
- Relentless: From Good to Great to Unstoppable
Cracking the Coding Interview is considered the technical interview bible by many software engineers. It covers a lot of topics from what to expect before, during, and after a technical interview.
It also has some good, long, and descriptive sections on preparing for the most popular types of interview problems, which is great for beginners.
When I was starting out with interview preparation as a college student and had no idea about what to expect during interview loops at tech companies, Cracking the Coding interview was my compass to navigate the tech interview scene.
If you’re brand new to coding interviews and the technical interview process, this book is perfect for you. Specifically, I’d recommend this book to aspiring software engineering interns, new-graduates, and entry-level software engineers.
Elements of the Programming Interview is a book that primarily covers a broad range of types of coding interview questions that would be asked during a real technical interview.
If you’re looking for a comprehensive book that covers coding interview problems specifically, then this is the perfect boot for you.
It covers more problems than Cracking the Coding Interview and has many figures and variations given which are useful for knowing what to expect during coding interviews.
This is a book that gives an overview of common data structures and algorithms that can be applied to coding interview problems.
If you’re shaky on the fundamentals of data structures and algorithms to the point where you are struggling to complete the easiest coding interview practice problems, then this book might be for you.
It’s specially tailored toward beginners and is very verbose in its explanations.
This book, Introduction to Algorithms (also known as CLRS), provides you with a very deep understanding of algorithms and time complexity. Many people argue that this book goes into algorithms too deeply, but for certain job roles in software engineering, it’s necessary to understand algorithms on a deeper level.
If you’re pressed for time and are applying for Fortune 500, startups, and other big tech companies, you might be able to skip reading this book.
Only certain companies like Google may expect you to understand algorithms on a deeper level for their interviews, and that’s why I read through many of this book’s sections before I applied to Google (and eventually received an offer).
If you’re applying for roles in finance that deal with trading and or quantitative finance, then this book may actually be necessary to read.
If you’re a beginner to algorithms and want a basic book to introduce you to all the most important concepts of algorithmic problem solving, then Grokking Algorithms could be the book for you.
Personally, I’ve never used this book, but I read that it was useful for some other people online who couldn’t dive into books like Introduction To Algorithms (aka CLRS).
I would imagine that this book is especially good for people who come from a non-traditional tech background like bootcamp grads who need a little bit more guidance before diving into the heavier data structure and algorithm interview prep books.
This book is similar to Cracking The Coding Interview because it teaches you everything you need to know from start to finish for the entire technical interview process.
While this book and Cracking The Coding Interview both try to help you pass your technical interviews, they both provide different angles and perspectives to doing so. That’s why this book might be worth a read instead of or in addition to Cracking The Coding Interview.
If the book Cracking The Coding Interview is difficult to understand for you or you want more insights into the interview process to best prepare yourself, this book is worth a read as well even if you do skip some of the problems.
This book is another primer for the entire coding interview process that may click more than other books.
This book teaches you about the common patterns that are used within Object-Oriented software design (which is typically preferred within the current industry and in interviews).
Coding interviews will sometimes have low-level system design interviews disguised as regular coding interviews. During these low-level design system design interviews, you’ll be expected to know elements of the design patterns discussed within this book.
If you’re trying to be a competitive candidate across big tech, then this book might be worth checking out. However, it’s probably more important to study coding interview-specific topics like data structures and algorithms if you’re pressed for time.
Clean Code is a book about the principles, patterns, and practices of writing clean code. While this is primarily helpful in developing complete systems, lessons from the book can also be applied to the coding interview.
I think that this book is definitely worth it for aspiring and new software engineers to read through. Many of the principles of clean coding aren’t taught in a bootcamp or in college, and clean code has practical applications beyond just the coding interview.
While this book will help you learn to code cleanly for coding interviews (which is a skill worth some points during the interview), it’s not an absolute must-have for the purposes of coding interviews but a great supplemental book.
This book provides you with a light introduction to general programming problem-solving. This book might be nice to read before jumping into a coding interview-specific book where you’re expected to already understand creative problem-solving in programming.
- Covers many programming puzzles and problems to improve your problem-solving
- Many practical topics are covered like arrays, pointers, classes, and recursion
- Written for beginners to understand
If you’re already comfortable with programming, you might be able to skip this book. Otherwise, if you need an easy-to-read book on problem-solving before attempting to read and solve harder interview book problems, then this book could be for you.
This book teaches you to use Python to create projects and applications.
The reason some people struggle with coding interviews is that they don’t have strong control over a programming language, and this book could help you get enough strength in Python to pass interviews.
- Popular Python libraries and tools are covered (useful for an actual role that uses Python)
- Introductory Part 1 teaches you everything you need to know about Python before jumping into projects to get you comfortable
- Exercise / practice-driven learning helps you retain the information in the book better
If you are an absolute beginner who is trying to learn enough to pass coding interviews, you have to start with learning a language. I personally would recommend Python as an interview language because of how productive it is (you can do more with less code).
This book could help you learn Python to the point you’ll be comfortable with the programming language to start doing interview problems later.
This book teaches you to use Java through creating projects and applications.
The reason some people struggle with coding interviews is that they don’t have strong control over a programming language, and this book could help you get enough strength in Java to pass interviews.
- Heavily project-driven, meaning you get a lot of practice out of the book
- Teaches you to create GUI and Android applications
- Contains additional programming challenges to further challenge yourself to become a better Java programmer
If you are an absolute beginner who is trying to learn enough to pass coding interviews, you have to start with learning a language. While I would initially recommend Python because of how productive the programming language is (less code for more work done), if you already have a basic understanding of Java, this book could help you fill in your knowledge gaps.
This book could help you learn Java to the point you’ll be comfortable with the programming language to start doing interview problems later.
This book teaches you to use C++ to create projects and applications.
The reason some people struggle with coding interviews is that they don’t have strong control over a programming language, and this book could help you get enough strength in C++ to pass interviews.
- Teaches you everything from the fundamentals of the C++ programming language, to popular libraries, and popular frameworks
- The information within the book can be supplemented with additional exercises provided on the book’s website (source code and more included)
- While “pitched” as fast-paced, it’s really geared toward beginners and slow-paced enough for beginners to fully understand everything being discussed
If you are an absolute beginner who is trying to learn enough to pass coding interviews, you have to start with learning a language.
While I would initially recommend Python because of how productive the programming language is (less code for more work done), you might need to learn C++ if you’re applying to trade firms, quant jobs, or roles that require lower-level programming languages.
This book could help you learn C++ to the point you’ll be comfortable with the programming language to start doing interview problems later.
This book provides you with a lot of insight and wisdom into controlling your emotions.
I think this is very practical for coding interviews where you’ll find yourself in high-pressure situations and possibly face anxiety in waiting for decisions.
- 31 ways to cope with negativity (in a positive way)
- New perspectives on how to view and manage your emotions throughout your day-to-day life
- A downloadable workbook for accountability
Everyone focuses on LeetCode, data structures, and algorithms for coding interview preparation, but sometimes you need to focus on your own psychology (in my personal opinion).
If you’re a person who struggles in high-pressure situations, with anxiety, and/or negative emotions, this book could be good for you to read to learn to manage your emotions.
It only takes one bad interview within an onsite coding interview loop to jeopardize your potential offer at the end (not to give you more anxiety), but even if you have a bad performance on one interview you don’t want that to carry on into the rest of your interviews for that company and future company interviews.
This book shows you how to create good habits and destroy bad habits. As simple of a skill as this seems, it’s especially important when preparing for coding interviews.
It doesn’t matter how good your preparation materials are if you’re unable to make habits to utilize them to their full potential.
- Teaches you how to overcome the lack of motivation and willpower
- Gives you practical steps to creating atomic habits that’ll stick with you for as long as you need them to
- Describes how to create an environment for your success
- Shows you how to get back on track when you fall off
I’ve personally read this book (well, technically listened through Audible), and I highly recommend it to people who have issues with creating habits and sticking to them for long periods of time.
This is one of the soft skills that I think is necessary to prepare for coding interviews, but it’s a skill that’ll help you beyond the coding interview as well. The skill of creating good habits and breaking bad habits doesn’t only apply to your career, it also applies to your life as a whole.
This book is about learning to influence people around you to do things you want them to do. It’s a lot less manipulative than how that sounds.
This book is regarded as a timeless piece of non-fiction that I still reread every now and then.
- Includes practical ways to make people like you
- Includes practical ways to change people’s ideas of you without resentment
- Includes practical ways to shift people’s ways of thinking to yours
During a coding interview, you might think that you’re being evaluated solely on your code and thought process.
A bigger part of the interview is making sure you’re leaving a good mark on the interviewer to the point they’ll want to write a great evaluation of you after your interview is over. To do this, you’ll need to be able to persuade them to want to write you the best evaluation they can regardless of your interview performance.
Persuasion and influencing is a soft skill that transcends beyond the coding interview but can definitely be useful for the actual coding interview itself. For that reason, I strongly recommend this book.
This book highlights the importance of doing cognitively demanding work in a completely undistracted way. It also highlights ways of achieving time to do deep work within a busy schedule.
- You will be taught to learn to work deeply, along with its benefits
- You will learn how to focus in an increasingly distracting world
When you’re preparing for coding interviews, from my experience, it requires your undivided attention to study and practice through coding interview problems.
This book can aid you in setting up a proper environment to study. At the very least, this book will change your perspective on doing cognitively demanding work with your complete focus or undivided attention.
This book is about the mindset for becoming from good to great in any aspect of your life.
It’s a book by a trainer who coached various top-performing athletes like Michael Jordan, Kobe Bryant, and Dwayne Wade who highlights lessons in what’s necessary to achieve great feats.
- Teaches you the elite athlete mindset which is necessary to crack the most competitive interviews
Sometimes people think they need motivation or willpower to study for coding interviews. This book is essentially about the mindset that’s necessary to become an elite athlete, but its lessons span to anything else competitive.
If you’re serious about preparing for coding interviews and giving it your all, this book could be perfect for you. This could especially be the case if you’ve never participated in competitive activities because this book could offer you a unique perspective.