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.
Excellent for prep into a big tech company like Google/Facebook. Naturally goes along with Cracking the Code Interview. Comparing the two, "Elements" has much broader collection of questions, which is great, but the explanations sometimes are a bit dry and dull -- you can tell English is not the author's first language.
Overall though, many hard questions with the correct answers which makes it very useful.
This book is great. It's similar to Cracking the Coding Interview but there is a test harness for all the problems in the book on Github which I really recommend.
This book is like a "cheatsheet"- poor editing, almost unreadable fonts, almost no paragraphs, multiple typos etc. Moreover, I would not call the solutions "In Java" in any real sense, it's more like "Java syntax" but no OOP. There are some interesting solutions and it can be useful if someone is preparing for an interview, but just as an additional source of information.