Elements of Programming Interviews in Java: The Insiders' Guide 2nd Edition
| Adnan Aziz (Author) Find all the books, read about the author, and more. See search results for this author |
| Tsung-Hsien Lee (Author) Find all the books, read about the author, and more. See search results for this author |
| Amit Prakash (Author) Find all the books, read about the author, and more. See search results for this author |
Use the Amazon App to scan ISBNs and compare prices.
Specifically, the font size is larger, and the page size is 7"x10" (the regular format uses 6"x9").
The content is identical.
This is the Java version of our book. See our website for links to the C++ version.Have you ever...
- Wanted to work at an exciting futuristic company?
- Struggled with an interview problem thatcould have been solved in 15 minutes?
- Wished you could study real-world computing problems?
If so, you need to read Elements of Programming Interviews (EPI).
EPI is your comprehensive guide to interviewing for software development roles.
The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.
The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.
Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.
A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions.
Jeff Atwood/Co-founder, Stack Overflow and Discourse
Customers who viewed this item also viewed
Editorial Reviews
Review
Jeff Atwood / Co-founder, Stack Overflow and Discourse
"This book prepares the reader for contemporary software interviews, and also provides a window into how algorithmic techniques translate into the workplace. It emphasizes problems that stem from real-world applications and can be coded up in a reasonable time, and is a wonderful complement to a traditional computer science algorithms and data structures course."
Ashish Goel / Professor, Stanford University
"A wonderful resource for anyone preparing for a modern software engineering interview: work through the entire book, and you'll find the actual interview a breeze. More generally, for algorithms enthusiasts, EPI offers endless hours of entertainment while simultaneously learning neat coding tricks."
Vineet Gupta / Principal Engineer, Google
From the Author
- Wanted to work at an exciting futuristic company?
- Struggled with an interview problem that could have been solved in 15 minutes?
- Wished you could study real-world computing problems?
From the Back Cover
- The core of EPI is a collection of 300 problems with detailed solutions, including over 150 figures and 300 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.
- The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.
- EPI includes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more.
About the Author
All three of us successfully made it through the Google interview process, and went on to work at Google, where, among other things, we interviewed candidates for our teams.
We have complementary backgrounds (large company, startup, academia) and have held multiple roles (tech lead, CTO, consultant, professor), that gives us unparalleled insight into the job market.
In addition to Google, some of the other places we have worked at include Facebook, Uber, Microsoft, IBM, and Qualcomm.
About the authors
We co-developed algorithms and systems that are used by over one billion people everyday. We have extensive experience with interviewing candidates, making hiring decisions, and being interviewed.
Adnan Aziz is a Research Scientist at Facebook. Previously, he was a professor at the Department of Electrical and Computer Engineering at The University of Texas at Austin, where he conducts research and teaches classes in applied algorithms. He received his PhD from The University of California at Berkeley; his undergraduate degree is from the Indian Institute of Technology at Kanpur.
Tsung-Hsien Lee is a Staff Software Engineer at Toyota Research Institute. Previously, he worked at Facebook, Google, and Uber. He received both his MS and undergraduate degrees from National Tsing Hua University. He has a passion for designing and implementing algorithms. He likes to apply algorithms on every aspect of his life.He takes special pride in helping to organize Google Code Jam 2014 and Google Code Jam 2015.
Amit Prakash is a co-founder and CTO of ThoughtSpot, a Silicon Valley startup. Previously, he was a Member of the Technical Staff at Google, where he worked primarily on machine learning problems that arise in the context of online advertising. Before that he worked at Microsoft in the web search team. He received his PhD from The University of Texas at Austin; his undergraduate degree is from the Indian Institute of Technology at Kanpur.
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- Publisher : CreateSpace Independent Publishing Platform; 2nd edition (October 6, 2015)
- Language : English
- Paperback : 492 pages
- ISBN-10 : 1517671272
- ISBN-13 : 978-1517671273
- Item Weight : 1.8 pounds
- Dimensions : 7 x 1.07 x 10 inches
- Best Sellers Rank: #39,976 in Books (See Top 100 in Books)
- #3 in Java Programming Reference
- #3 in Memory Management Algorithms
- #9 in Computer Algorithms
- Customer Reviews:
About the authors

Amit Prakash is CTO and co-founder of ThoughtSpot Inc. Prior to that he worked at Google and Microsoft in Search and Ads engineering teams. He received his PhD from The University of Texas at Austin; his undergraduate degree is from IIT Kanpur. When he is not improving the quality of ads, he indulges in his passions for puzzles, movies, travel, and adventures with his wife.

Tsung-Hsien Lee is a Staff Software Engineer at Toyota Research Institute working on self-driving cars. Previously, he worked at Facebook, Google, and Uber. He received both his M.S. and undergraduate degrees from National Tsing Hua University. He has a passion for designing and implementing algorithms. He likes to apply algorithms on every aspect of his life. He takes special pride in helping to organize Google Code Jam 2014 and 2015.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviewed in the United States on February 14, 2016
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I decided to work harder on these two weaknesses and I remember that I enrolled myself as a reviewer of a recent edition of "Elements of Programming Interviews", I recognize that I didn't have the needed expertise to review the book but I was curious to see more of the book since it had an excellent reputation...
At that time I was impressed by the quality of the material ... the problems are at the same level that I found at codility or even harder. I am still reading the book and I was surprised that the authors are very acessible guys and really care about the reader's experience. The source code solutions available at their website has a high quality and there are even test cases that I simply were not aware of! I would say that if this book source code was a painting it would be something at the level of a monalisa.
Each chapter starts with a brief explanation and I generally need to use CTCI and/or google to understand some concepts but this is not a problem at all. Once I have the needed foundation I give myself enough time to think about the question and I try as hard as I can to solve the question even using a naive approach but with the right amount of time some sort of "framework" starts to emerge in your mind and things will make more sense. I know that I still have a long road ahead but now the questions are not my major concern, nowadays my main concern is to have my resumé selected and participate in the interview process because this is definitely the only material that you need to make your dreams come true. (Sorry for possible english mistakes)
Marcos (brazilian reader)
The book is essentially the same as the previous one, but the larger type makes it a lot easier on my eyes (I'm at that age where I'm finding that I have to get fine print *away* from my eyes to focus properly), and the Java is much more familiar to me, although since the problems are algorithmic by nature you don't see much difference in the code (which is a good thing - these books are not about specific turns and tricks of C++ or Java, it's about solving problems with a good algorithm, and then it's implemented in C++ or Java). So if you prefer C++ and don't have problems with small type, go with the original one. If you must have the more comfortable type and/or Java, this is the one. (See pictures for size and code comparison)
As for the content, I found it extremely useful. Mind you, it assumes you have knowledge of the basics and not so basics of data structures, sorting, dynamic programming, recursion, etc. If you do not have this knowledge, this book won't be of much use. The value of this book is showing a ton of questions where these foundation topics are applied to problem solving. I found that even reading through the problems (without trying to solve) and their solutions gave insight, and certain tricks and problem solving strategies and patterns emerge. This step is the crucial one, as just the raw knowledge won't get you through that interview. You will need to apply it to the scenario that the interviewer presents you with. This book will help you with that part. I, for one, am very glad that I bought this book.
Reviewed in the United States on February 14, 2016
The book is essentially the same as the previous one, but the larger type makes it a lot easier on my eyes (I'm at that age where I'm finding that I have to get fine print *away* from my eyes to focus properly), and the Java is much more familiar to me, although since the problems are algorithmic by nature you don't see much difference in the code (which is a good thing - these books are not about specific turns and tricks of C++ or Java, it's about solving problems with a good algorithm, and then it's implemented in C++ or Java). So if you prefer C++ and don't have problems with small type, go with the original one. If you must have the more comfortable type and/or Java, this is the one. (See pictures for size and code comparison)
As for the content, I found it extremely useful. Mind you, it assumes you have knowledge of the basics and not so basics of data structures, sorting, dynamic programming, recursion, etc. If you do not have this knowledge, this book won't be of much use. The value of this book is showing a ton of questions where these foundation topics are applied to problem solving. I found that even reading through the problems (without trying to solve) and their solutions gave insight, and certain tricks and problem solving strategies and patterns emerge. This step is the crucial one, as just the raw knowledge won't get you through that interview. You will need to apply it to the scenario that the interviewer presents you with. This book will help you with that part. I, for one, am very glad that I bought this book.
Top reviews from other countries
Reviewed in India on May 19, 2019













