Elements of Programming Interviews
A dense problem book by Adnan Aziz, Tsung-Hsien Lee and Amit Prakash, with separate Python, Java and C++ editions. The Python edition (2016) has over 250 problems with detailed solutions, tested programs and many variants, organised by data structure and algorithm topic. Reach for it when standard practice lists stop challenging you and you want rigorous analysis of each solution.
Python, Java, C++
Publisher listings · Sept 2026
2016, 442 pages
Publisher listing · Sept 2026
250+ with variants
Book description · Sept 2026
Book
Interview Prep
Aziz, Lee and Prakash
3 to 6 months
Advanced
About $40
What the book contains
Each edition follows the same structure:
- Non-technical aspects of interviewing: how interviews work, strategies and common mistakes
- A review of data structures, algorithms and problem-solving patterns
- Problem chapters on primitive types, arrays, strings, linked lists, stacks and queues, trees, heaps, searching, hash tables, sorting, binary search trees, recursion, dynamic programming, greedy algorithms, graphs, parallel computing and more
- Honours-class problems that go well beyond typical interview difficulty
According to its description, the Python edition includes over 250 problems, about 200 figures, 300 tested programs and 150 additional variants. Each chapter starts with a short boot camp and a list of key methods in the language, followed by the problems.
Who it is for
Not beginners. The problems assume solid fundamentals, and the solutions are compact enough that you need to work to follow them. That density is a feature if you are ready and a wall if you are not. It suits:
- Candidates who have finished a standard practice list and want harder material
- Engineers targeting companies known for difficult algorithm rounds
- Readers who want to understand complexity and edge cases rigorously, not just pass tests
How to use it
- Choose the edition in your interview language. Solutions use idiomatic code and library functions for that language.
- Read each chapter's boot camp first, then attempt problems before reading solutions.
- Do the variants. Listed at the end of many problems, they are where much of the learning happens.
- Follow a study plan. The book suggests plans of different lengths depending on how much time you have; choose one and skip the honours-class problems unless you have time.
Where it can frustrate readers
- The solutions are terse, and some readers find them hard to follow without extra explanation.
- The Python edition was published in 2016, so a few library references and interview trends have moved on, though the algorithms have not.
- It is text only. If you learn better from video or interactive practice, use it alongside those.
Common questions
Which edition should I get? The one in the language you will use in interviews.
Is it better than solving online problems? It is different: curated, rigorous and offline. Many candidates use it alongside an online judge to run their code.
How long does it take? Working through a reasonable subset takes several weeks to a few months.
Best for: experienced candidates targeting demanding algorithm interviews, and anyone who finds curated online lists too easy.
Ready to start?
Opens on Aziz, Lee and Prakash in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.