This is the Python version of our book. See the website for links to the C++ and Java 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
About the Author: Adnan, Amit, and Tsung-Hsien have worked at Google, Facebook, Microsoft, IBM, Uber, Qualcomm, and several startups. They co-developed algorithms and systems that are used by over one billion people everyday. They 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 conducted research and teaches classes in applied algorithms. He received his Ph.D. from The University of California at Berkeley; his undergraduate degree is from Indian Institutes of Technology Kanpur.
Amit Prakash is a founder 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 Ph.D. from The University of Texas at Austin; his undergraduate degree is from Indian Institutes of Technology Kanpur. Tsung-Hsien Lee is a Software Engineer at Uber. Previously, he worked as a Software Engineer Intern at Facebook. 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.