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.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
I've probably gotten more mileage out of this than out of any other algorithms book.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
This book is great! It explains how you can actually implement things in a real system
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
For pure CPU architecture, this is probably the best book available.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
I've probably gotten more mileage out of this than out of any other algorithms book.
His 'Programming book recommendations and anti-recommendations' page, a topic-by-topic annotated list restricted to books he has actually read. danluu.com's own index dates the post 10/16; the page carries no day-level date. 40 of the 42 Amazon links on the page carry his affiliate tag (tag=abroaview-20).
The explanations are delightful and I've watched some of the videos more than once just to watch Bernhardt explain things.
His 'Programming book recommendations and anti-recommendations' page, a topic-by-topic annotated list restricted to books he has actually read. danluu.com's own index dates the post 10/16; the page carries no day-level date. 40 of the 42 Amazon links on the page carry his affiliate tag (tag=abroaview-20).
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Nice explanation of a variety of OS topics. Goes into much more detail than any other intro OS book I know of.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
The most comprehensive book about how a modern operating system works. It just happens to be about Windows.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
This book was very helpful when I first started to write threading/concurrency code.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
This book teaches you how to do systems design with multiple constraints (e.g., performance, TCO, and power) and how to reason about tradeoffs.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
The last time I looked, this was the only game in town for a comprehensive, modern, introduction to auction theory.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Seems designed as an entertaining introduction to auction theory for the layperson. Requires no mathematical background and relegates math to the small print.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
The title is the worst thing about this book. Otherwise, it's a nice introduction to algorithmic game theory.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
RefactoringBookFowler, Beck, Brant, Opdyke, and Roberts
likedaffiliate link
At the time I read it, it was worth the price of admission for the section on code smells alone.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Seems designed as an entertaining introduction to auction theory for the layperson.
His 'Programming book recommendations and anti-recommendations' page, a topic-by-topic annotated list restricted to books he has actually read. danluu.com's own index dates the post 10/16; the page carries no day-level date. 40 of the 42 Amazon links on the page carry his affiliate tag (tag=abroaview-20).
The title is the worst thing about this book. Otherwise, it's a nice introduction to algorithmic game theory.
His 'Programming book recommendations and anti-recommendations' page, a topic-by-topic annotated list restricted to books he has actually read. danluu.com's own index dates the post 10/16; the page carries no day-level date. 40 of the 42 Amazon links on the page carry his affiliate tag (tag=abroaview-20).
This book explains how Microsoft's aggressive culture got to be the way it is today.
His 'Programming book recommendations and anti-recommendations' page, a topic-by-topic annotated list restricted to books he has actually read. danluu.com's own index dates the post 10/16; the page carries no day-level date. 40 of the 42 Amazon links on the page carry his affiliate tag (tag=abroaview-20).
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
but this is wildly impractical as a standalone introduction for most people.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Same comments as for CLRS -- it's widely recommended as an introductory book even though it doesn't make sense as an introductory book.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Unfortunately, most of the key exercises don't have solutions, so you can't check your work.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
The other downside of this book is that the author loses all objectivity any time Linux and Windows are compared.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
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.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Classic, but dated and riddled with errors, with no errata available.
'Programming book recommendations and anti-recommendations' — a topic-by-topic list of the technical books he has read, with what each one is and is not good for. The site gives no day, only 10/16 in its index.
Every entry is a verbatim quote and a link to the public post it came from. Nothing is paraphrased. If it is not on record somewhere public, it is not here.
The verdict is what they actually said: loved and liked are explicit; recommended means they told others to get it; uses means they only say they use it; read is a book on their public shelf with no verdict; mixed and disliked are kept too.
A dashed affiliate link, sponsored or their own label means the post disclosed a relationship. It is shown, never hidden.
The shading behind a date shows how dated a recommendation is for its kind of thing.
The shading behind a date shows how dated a recommendation is, for its kind of thing. Fully green is recent. It drains a quarter at a time as the post gets older, and is empty once it reads as dated.
What counts as old depends on the thing. A laptop praised four years ago has been replaced twice; a book loved twenty years ago is probably still loved. The shading is gone after about:
Hardware, services4 years
Software5 years
Podcasts, courses, other8 years
Books25 years
Stripes mean the post carries no date and the date shown is an estimate. No date at all, no shading.