Programming Interviews Exposed by John Mongan, Noah Kindler, and Eric Giguere just might be one of the best books for programming interview prep.
Now on its fourth edition, it’s helped countless devs prepare for their interviews. And many of them have gone on to work for their favorite tech companies.
This post contains affiliate links. I may receive compensation if you buy something. Read my disclosure for more details.
TLDR: Programming Interviews Exposed
💥💥💥
Programming Interviews Exposed is a programming interview prep book filled with over 50 problems and solutions covering linked lists, recursion, sorting and concurrency.
In addition, you’ll learn about object-oriented programming, design patterns, and databases.
Then you’ll learn about valuable tips and tricks to revamp your resume.
Programming Interviews Exposed
Now let’s see what makes Programming Interviews Exposed a cut above other programming interview books.
Let’s explore each section in greater detail.
1. Before the Search
Instead of randomly applying for jobs, you should have an idea of which programming position you’d like to apply for.
With that comes improving your own skills to ensure companies think you’re the best candidate.
In this section of Programming Interviews Exposed, you’ll learn how to improve upon:
- self awareness
- knowing the market
- developing marketable skills
And being able to accomplish the task at hand.
So in addition to looking good on paper, you’ll learn how to actually solve the company’s problems.
Finally, you’ll learn about why it’s important to manage your online profile to make yourself a more desirable candidate. So you’ll work on improving:
- Google search results for your name
- articles and blog posts
- your LinkedIn profile
- your GitHub profile
And other social media sites.
2. The Job Application Process
Because they’re similar, programming interviews are predictable. So the more prepared you are, the better you’ll do.
In The Application Process section of Programming Interviews Exposed, you’ll learn about everything from submitting your resume all the way up to starting your new job.
So first you’ll learn about finding and contacting companies. This includes methods like:
- getting referrals
- job fairs
- contacting the company directly
And beyond.
Then you’ll learn about the interview process such as types of interviews and how you should present yourself.
This section also briefly touches upon navigating offers and salary negotiation.
3. The Phone Screen
Now we’ll finally get into some programming problems. In this section, we’ll discover what you can expect in a technical phone interview.
The phone screen is kind of like the interview before the interview. So if you don’t pass the phone screen, you won’t move forward in the interview process.
After learning how to navigate the phone screen such as how to prepare your environment and how to speak, you’ll encounter a few phone screen problems to practice such as:
- Memory Allocation in C
- Mobile Programming
- FizzBuzz
- Removing Duplicates
And beyond.
4. Approaches to Programming Problems
Coding questions are found at the core of the hiring process. They can make or break your interview. How well you do or don’t do can affect things like if you’re hired and what your salary might look like.
These questions typically take 45 minutes to an hour each to solve.
In Programming Interviews Exposed, you’ll learn about what to expect when you’re in the technical portion of the interview.
After learning things like what languages to use and how to interact with interviewers, you’ll learn about how to solve the problems.
This includes things like making sure you understand the problem and what to do if you get stuck.
Then you’ll spend some time on big-O notation and how it works.
Now here is where Programming Interviews Exposed starts to ramp up its problems.
You’ll start to dive into programming problems based on:
- linked lists
- trees and graphs
- arrays and strings
- recursion
- sorting
- concurrency
Each concept has its own chapter. In addition, you’ll work on a series of problems. These problems are similar to ones you’ll find at actual coding interviews.
These problems come with step-by-step, detailed solutions to explain problem-solving methods.
Most solutions are presented in Java and C#.
5. Then you’ll move onto Object-Oriented Programming.
In this section, you’ll work on problems that are dedicated to OOP.
As with other problems in Programming Interviews Exposed, each solution is explained in detail.
6. Design Patterns
Every programming problem is different. However, there are patterns that can be found within these problems. So by learning design patterns, you’ll be able to apply them to, and solve, almost any programming problem.
These design patterns create efficiency and reusability within your code.
Programming Interviews Exposed covers patterns commonly used for solving coding interview problems:
- Singleton
- Builder
- Iterator
- Observer
- Decorator
Each pattern is explained in detail. They’re then followed by a series of problems where you can exercise your newly-learned design patterns.
7. Databases
Databases are used for data storage and manipulation of web-based applications. At the coding interview, you may be asked to solve some database problems.
You’ll start by learning about database fundamentals in Programming Interviews Exposed. This includes learning about:
- relational databases
- SQL
- database transactions
- distributed databases
And beyond.
Then you’ll work through a series of database problems and solutions.
8. Graphics and Bit Manipulation
While they aren’t as common, you still may see some graphics or bit operators problems at the coding interview. This section covers graphics and bit manipulation and includes a series of graphics problems.
9. Data Science, Random Numbers and Statistics
While Programming Interviews Exposed does have a section on data science, it’s by no means comprehensive. Rather, it’s an introduction to data science fundamentals.
It’s more of an introductory section so you can decide if pursuing data science is right for you.
First you’ll learn about:
- probability and statistics
- artificial intelligence and machine learning
- random number generators
- data science
- random number and statistics
Then you’ll work on problems related to data science and statistics.
10. Puzzles
In addition to technical and programming problems, interviewers sometimes include brainteasers. These are used to assess your ability to problem-solve, which is crucial to computer programming.
In Programming Interviews Exposed, you’ll work on a series of puzzles related to:
- counting
- measuring
- ordering
- graphical
- spacial
11. Knowledge-Based Questions
Knowledge-based questions test your general computer knowledge. In addition, some of these questions are related to your resume or how you solved earlier problems.
Depending on your interviewer, you may answer many of these types of questions. Or you might answer none.
But it’s better to be prepared than to be a sitting duck.
So after learning what to expect, you’ll work through a series of knowledge-based problems.
12. Nontechnical Questions
Nontechnical questions are based on experience, education, goals and more. These can be asked at the beginning of, during, or after your programming interview.
This section contains a detailed selection of questions you can expect to answer based on:
- salary expectations
- job transitioning
- working style
And much more.
Bonus: Resumes
Finally, you’ll go over examples of good and bad resumes in Programming Interviews Exposed.
You’ll look at a series of sample resumes and will then see the pros and cons of each.
Then there are a series of tips and tricks to tailor your resume to the job and transform it into one that will get employers’ attention… in a good way.
🔥 Geena’s Hot Take
Resumes are more important than anything else when applying to jobs.
Your resume is your first impression, your list of accomplishments, your capabilities.
If you have a clunker of a resume, you won’t even be considered for the job, let alone an interview.
Heed the advice in this section and make your resume a cut above the rest.
Programming Interviews Exposed: Conclusion
Programming Interviews Exposed is a solid tool for programming interview preparation.
With over 50 questions, you’ll work on problems related to linked lists, recursion, sorting and beyond.
In addition, you’ll work on OOP, design patterns, nontechnical questions, and your resume.
So if you’re preparing for your programming interview, we think Programming Interviews Exposed is an excellent resource.
Up Next:
- Failed Coding Interview? [18 Best Coding Interview Resources for Bouncing Back]
- Best Book for Google Interview Preparation [Top 10 FAANG Interview Books]
- 13 Best Java Books for Beginners [Learn Java Programming]
- 16 Best Linux Books for This Year [Linux for Beginners & Beyond]
- 14 Best Python Books for Beginners [Learn Python Programming]
Is Programming Interviews Exposed good for interview prep?
If you’re preparing for a programming interview, we think Programming Interviews Exposed is a good book. With over 50 problems, you’ll work on programming problems ranging from linked lists to recursion, sorting to OOP, design patterns and beyond. Programming Interviews Exposed has helped others get hired at their dream job, and might help you as well.
What’s a phone screen?
A phone screen is a pre-interview that takes place on the phone to see if you’re a viable applicant. If you pass the phone screen, the next step is typically an in-person interview. Phone screens can be performed by recruiters, hiring managers, or other personnel.
What are some examples of good and bad resumes?
If you’re looking for examples of programming resumes, we recommend checking out Programming Interviews Exposed. You’ll find examples of good and bad resumes, and learn tips and tricks on how to improve yours. Programming Interviews Exposed also offers other advice when preparing for your programming interview.