How to use the Algorithm Design Manual
A quick actionable guide to one of the best resources for programming interviews
Why is the Algorithm Design Manual awesome
The Algorithm Design Manual (ADM) is widely considered one of the best resources for big tech interview prep. Itās a book that doesnāt cut any corners and teaches you the math behind all of the data structures and algorithms you can expect to see during an interview. I dive deeper into why itās better than other booksĀ here.
How to use ADM
Read and do the odd problems for the first half of the book
Do not rush this part of the process. The book is pretty dry, but itās thorough and will teach you what you need to know. The problems at the end of the chapters increase in difficulty and will help you learn how to start getting creative with the different data structures and algorithms.
You can find theĀ solutions to odd problems here.
Note:Ā HackpackĀ members have flagged that some solutions there are inaccurate. If you find any problems with a solution, please let us know in theĀ discordĀ so we can fix them in the wiki for everyone.
Skip the second half of the book
When the chapters switch to real world examples, you can move on to other resources. This section is titledĀ The Hitchhiker's Guide to Algorithms.Ā This part of the book is incredibly interesting, but not the best use of time when preparing for programming interviews.
Watch video lectures if stuck
Having trouble on a particular section? Watch the youtube lectures to get a fresh takeĀ from the author himself. If itās still not clicking, feel free to ask for help in theĀ discordĀ #help-plz channel. A lot of community members have worked through the book already so you can expect some solid advice.
Take your time with chapter 2
This is arguably the most important chapter of the book. Chapter 2 is all about algorithm analysis which is a critical skill to develop for your interviews. Learning how to problem solve your way to optimal solutions is something every interviewer is looking for. This chapter sets the foundation for the rest of the book. If nothing else, read this chapter and do the problems.
Don't spend too much time on NP/NP-Complete/NP-Hard topics
You should read the chapter onĀ Intractable Problems and Approximation Algorithms,Ā but donāt do the problems.Ā Understand why this class of problem is interesting, and how approximation algorithms attempt to create āgood enoughā solutions, but you shouldnāt go down the rabbit hole here. (I did and I wasted 2 full months when I was studying).
Don't spend too much time on writing proofs in Chapter 1
You should read the chapter and do the problems here, but if you find yourself getting stuck itās ok to skip through to Chapter 2. The goal is to extract the lessons about how to find counter examples, prove correctness and leverage induction.
This is a chapter you should read, and do a few problems for, but you donāt want to let this chapter kill your pacing.
Skip older style problems
Sometimes youāll encounter old-world estimation problems. If it feels silly, skip it:Ā example:Ā 1.36. How much does the ice in a hockey rink weigh?
These are older school programming interview questions and have been largely phased out. Itās better to spend time elsewhere.
This shouldnāt be your only resource
ADM is an excellent resource that gives you strong fundamentals that will help you during big tech interviews, but it isnāt sufficient to only use this book. You should also beĀ conducting mock interviews, solving LC/Hackerrank problems and discussing topics with others to find any gaps in your knowledge.
Join the community
Hackpack.ioĀ is the most active community of developers studying for programming interviews. You can apply on the site!
If you get stuck working through ADM, you can ask for help in theĀ discord
I tweet interview tipsĀ here
Have a tip for how to best use the book?
lmk on discord dan#9955 and Iāll add it to the list !