Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Book · Interview PrepAbout $40

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.

Get access
Editions

Python, Java, C++

Publisher listings · Sept 2026

Python edition

2016, 442 pages

Publisher listing · Sept 2026

Problems

250+ with variants

Book description · Sept 2026

Format

Book

Topic

Interview Prep

Provider

Aziz, Lee and Prakash

Time needed

3 to 6 months

Level

Advanced

Access

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

  1. Choose the edition in your interview language. Solutions use idiomatic code and library functions for that language.
  2. Read each chapter's boot camp first, then attempt problems before reading solutions.
  3. Do the variants. Listed at the end of many problems, they are where much of the learning happens.
  4. 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.

interview prepalgorithmscomputer science

Ready to start?

Opens on Aziz, Lee and Prakash in a new tab.

Get access
Link broken or out of date?

Report a problem

With "Elements of Programming Interviews". Only Tauseef reads this.

Work with me

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.