Elements of Programming Interviews: The Insiders' Guide (Paperback)

Adnan Aziz, Tsung-Hsien Lee, Amit Prakash




The core of Elements of Programming Interviews (EPI) is a collection of 300 problems with detailed solutions, including over 100 figures and 250 tested programs. The problems are representative of the questions asked at interviews at the most exciting companies. They are well-motivated, thought-provoking and fun to solve!

EPI includes a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, the interviewer's perspective, negotiating the best offer, and much more.

Since different candidates have different time constraints, EPI includes a study guide with several study scenarios, ranging from weekend Hackathon to semester long preparation with a recommended a subset of problems for each scenario. 

All problems are classified in terms of their difficulty level and include many variants in addition to the 300 problems to help you apply what you have learned more widely.

300 Programming Questions and Answers:
Each chapter starts with a brief summary of key concepts and results followed by 10-30 questions. Individual chapter topics are:
  • Primitive Types
  • Arrays and Strings
  • Linked Lists
  • Stacks and Queues
  • Binary Trees
  • Heaps
  • Searching
  • Hash Tables
  • Sorting
  • Binary Search Trees
  • Meta-algorithms
  • Algorithms on Graphs
  • Intractability
  • Parallel Computing
  • Design Problems
  • Probability
  • Discrete Mathematics
  • Getting Ready
  • Strategies For A Great Interview
  • Conducting An Interview
Solutions include code snippets which are primarily in C++. Programs concerned with concurrency are in JavaComplete programs are available at Google Code, specifically at elementsofprogramminginterviews.com/code.

Version 1.1, released 1/16/2013, reflects requests from our readers for a study guide and a classification of problems by hardness levels, as well as bug fixes, 3 new problems, and several updated solutions. Release notes are at elementsofprogramminginterviews.com/, which also contains links to the study guide and the classification of problems for owners of EPI version 1.0.