Dan Luu
Programmer and writer on computer architecture, performance and software reliability; has worked on hardware and software at Centaur Technology, Google and Microsoft, and writes at danluu.com.
Algorithm Design by Kleinberg and Tardos
Same comments as for CLRS -- it's widely recommended as an introductory book even though it doesn't make sense as an introductory book.
on danluu.com · 1 Oct 2016
Algorithms by Robert Sedgewick, Kevin Wayne
Everything about this book seems perfect to me. It breaks up algorithms into classes (e.g., divide and conquer or greedy), and teaches you how to recognize what kind of algorithm should be used to solve a particular problem.
on danluu.com · 1 Oct 2016
An Introduction to Computational Learning Theory by Kearns and Vazirani
Classic, but dated and riddled with errors, with no errata available.
on danluu.com · 1 Oct 2016
Auction Theory by Vijay Krishna
The last time I looked, this was the only game in town for a comprehensive, modern, introduction to auction theory.
on danluu.com · 1 Oct 2016
Combinatorial Auctions by Cramton, Shoham, and Steinberg
This is one of those books where each chapter is by a different author. Despite that, it still manages to be coherent and I didn't mind reading it straight through.
on danluu.com · 1 Oct 2016
Computation by Gary Bernhardt
Covers a few theory of computation highlights. The explanations are delightful and I've watched some of the videos more than once just to watch Bernhardt explain things.
on danluu.com · 1 Oct 2016
Computation: Finite and Infinite Machines by Gary Bernhardt
The explanations are delightful and I've watched some of the videos more than once just to watch Bernhardt explain things.
on danluu.com · 1 Oct 2016
Computer Architecture: A Quantitative Approach by Hennessy and Patterson
This book teaches you how to do systems design with multiple constraints (e.g., performance, TCO, and power) and how to reason about tradeoffs.
on danluu.com · 1 Oct 2016
Cracking the Coding Interview by Gayle Laakmann McDowell
I usually recommend this book to people who want to pass interviews but not really learn about algorithms. It has just enough to get by, but doesn't really teach you the why behind anything.
on danluu.com · 1 Oct 2016
Higher Order Perl by Mark Jason Dominus
A gentle introduction to functional programming that happens to use Perl. You could probably work through this book just as easily in Python or Ruby.
on danluu.com · 1 Oct 2016
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
but this is wildly impractical as a standalone introduction for most people.
on danluu.com · 1 Oct 2016
Introduction to the Theory of Computation by Michael Sipser
Unfortunately, most of the key exercises don't have solutions, so you can't check your work.
on danluu.com · 1 Oct 2016
Linux Kernel Development by Robert Love
The other downside of this book is that the author loses all objectivity any time Linux and Windows are compared.
on danluu.com · 1 Oct 2016
Modern Processor Design by Shen and Lipasti
For pure CPU architecture, this is probably the best book available.
on danluu.com · 1 Oct 2016
Multiagent Systems by Shoham and Leyton-Brown
The title is the worst thing about this book. Otherwise, it's a nice introduction to algorithmic game theory.
on danluu.com · 1 Oct 2016
Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations by Shoham and Leyton-Brown
The title is the worst thing about this book. Otherwise, it's a nice introduction to algorithmic game theory.
on danluu.com · 1 Oct 2016
Operating System Concepts by Silberschatz, Galvin, and Gagne
It covers concepts at a high level and hits the major points, but it's lacking in technical depth, details on how things work, advanced topics, and clear exposition.
on danluu.com · 1 Oct 2016
Operating Systems: Three Easy Pieces by Arpaci-Dusseau and Arpaci-Dusseau
Nice explanation of a variety of OS topics. Goes into much more detail than any other intro OS book I know of.
on danluu.com · 1 Oct 2016
Peopleware by Tom DeMarco
This book agrees with my biases and I'd love for this book to be right, but the meta evidence makes me want to re-read this with a critical eye and look up primary sources.
on danluu.com · 1 Oct 2016
Probability and Computing by Mitzenmacher and Upfal
I've probably gotten more mileage out of this than out of any other algorithms book.
on danluu.com · 1 Oct 2016
Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Mitzenmacher and Upfal
I've probably gotten more mileage out of this than out of any other algorithms book.
on danluu.com · 1 Oct 2016
Purely Functional Data Structures by Chris Okasaki
Fun to work through, but, unlike the other algorithms and data structures books, I've yet to be able to apply anything from this book to a problem domain where performance really matters.
on danluu.com · 1 Oct 2016
Refactoring by Fowler, Beck, Brant, Opdyke, and Roberts
At the time I read it, it was worth the price of admission for the section on code smells alone.
on danluu.com · 1 Oct 2016
Renegades of the Empire by Michael Drummond
This book explains how Microsoft's aggressive culture got to be the way it is today.
on danluu.com · 1 Oct 2016
Site Reliability Engineering by Beyer, Jones, Petoff, and Murphy
A description of how Google handles operations.
on danluu.com · 1 Oct 2016
Snipers, Shills, and Sharks by Ken Steiglitz
Seems designed as an entertaining introduction to auction theory for the layperson. Requires no mathematical background and relegates math to the small print.
on danluu.com · 1 Oct 2016
Snipers, Shills, and Sharks: eBay and Human Behavior by Ken Steiglitz
Seems designed as an entertaining introduction to auction theory for the layperson.
on danluu.com · 1 Oct 2016
The Algorithm Design Manual by Steven S. Skiena
The longer, more comprehensive, more practical, less math-y version of Dasgupta. It's similar in that it attempts to teach you how to identify problems, use the correct algorithm, and give a clear explanation of the algorithm.
on danluu.com · 1 Oct 2016
The Little Book of Semaphores by Allen Downey
This book was very helpful when I first started to write threading/concurrency code.
on danluu.com · 1 Oct 2016
Windows Internals by Russinovich, Solomon, and Ionescu
The most comprehensive book about how a modern operating system works. It just happens to be about Windows.
on danluu.com · 1 Oct 2016
xv6 by Cox, Kaashoek, and Morris
This book is great! It explains how you can actually implement things in a real system
on danluu.com · 1 Oct 2016