You need to learn graph traversal (Dijkstra/BFS) or dynamic programming. He doesn't cover them. Final Thoughts Reading Peter Brass feels like having a grumpy, genius professor sitting next to you. He assumes you are smart, he doesn't hold your hand, and he moves fast.

You are implementing a database index, a file system, or a memory allocator. You want to know the lower bounds of a problem, not just the solution.

But if you stick with it, you will never look at a HashMap or an std::set the same way again. You will understand exactly why they sometimes slow down, and you will know which exotic data structure to use when milliseconds matter.