Fans pick 68 books like Distributed Algorithms An Intuitive Approach

By Fokkink,

Here are 68 books that Distributed Algorithms An Intuitive Approach fans have personally recommended if you like Distributed Algorithms An Intuitive Approach. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of Structure and Interpretation of Computer Programs

Yehonathan Sharvit Author Of Data-Oriented Programming

From my list on become a great developer.

Why am I passionate about this?

I boast a two-decade-long career in the software industry. Over the years, I have diligently honed my programming skills across a multitude of languages, including JavaScript, C++, Java, Ruby, and Clojure. Throughout my career, I have taken on various management roles, from Team Leader to VP of Engineering. No matter the role, the thing I have enjoyed the most is to make complex topics easy to understand.

Yehonathan's book list on become a great developer

Yehonathan Sharvit Why did Yehonathan love this book?

This book profoundly changed how I approach functional programming. I found its deep dive into core concepts like recursion, abstraction, and modularity incredibly insightful. The exercises pushed me to think critically and refine my problem-solving process.

Despite being an older book, its content remains relevant and valuable to me.  I consider it the best pragmatic introduction to functional programming.

By Harold Abelson, Gerald Jay Sussman, Julie Sussman

Why should I read it?

2 authors picked Structure and Interpretation of Computer Programs as one of their favorite books, and they share why you should read it.

What is this book about?

As others have gone into, this is a great programming book for many reasons, and is a must-read for anyone who is interested in software design. Rather than waste time reaffirming the excellent positive reviews of this book, I wanted to cover something that I have not seen in the reviews: namely that there are multiple publishers for this book (as it is an "open source" book). At the time of writing, there is this McGraw-Hill publication, and, for 40% less, an MIT press edition. While I have not seen the McGraw-Hill version in person to see what quality benefits…


Book cover of Beautiful Code

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

Continuing down the engineering part of this mini-curriculum, we have a collection of interesting ideas, each written by a different author, all of them inspiring.

Some of the chapters in this book I have reread more times than I can count, because the ideas are so original and intriguing that my fingers start to tingle.

By Andy Oram, Greg Wilson,

Why should I read it?

1 author picked Beautiful Code as one of their favorite books, and they share why you should read it.

What is this book about?

How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to…


Book cover of Types and Programming Languages

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

Having worked with an untyped functional language the next logical step is to add types on top, and how to get a better understanding than by implementing the type system yourself.

This book takes you through all the interesting kinds and variations of type systems, and you get to implement them yourself using one of my absolute favorite languages (OCaml).

By Benjamin C. Pierce,

Why should I read it?

1 author picked Types and Programming Languages as one of their favorite books, and they share why you should read it.

What is this book about?

A comprehensive introduction to type systems and programming languages.

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems—and of programming languages from a type-theoretic perspective—has important applications in software engineering, language design, high-performance compilers, and security.

This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections…


Book cover of Java Puzzlers: Traps, Pitfalls, and Corner Cases

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

This tour of programming is a humorous reminder that we should always question our assumptions.

This book presents example after example of very simple Java programs all of which behave differently than you expect. It's both humbling and so provocative that you have to go into an editor and see if their claims are true.

By Joshua Bloch, Neal Gafter,

Why should I read it?

1 author picked Java Puzzlers as one of their favorite books, and they share why you should read it.

What is this book about?

"Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles."

--Guy Steele, Sun Fellow and coauthor of The Java (TM) Language Specification

"I laughed, I cried, I threw up (my hands in admiration)."

--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert Group

How well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for…


Book cover of Introduction to Algorithms

Chris Zimmerman Author Of The Rules of Programming: How to Write Better Code

From my list on programming for people who want to be good at it.

Why am I passionate about this?

I’ve spent most of my life writing code—and too much of that life teaching new programmers how to write code like a professional. If it’s true that you only truly understand something after teaching it to someone else, then at this point I must really understand programming! Unfortunately, that understanding has not led to an endless stream of bug-free code, but it has led to some informed opinions on programming and books about programming.

Chris' book list on programming for people who want to be good at it

Chris Zimmerman Why did Chris love this book?

Yes, it’s a textbook, albeit a particularly well-written one. You may already have it on your shelf, if you’ve taken a programming class or two.

I’m way too old to have used CLRS as a textbook, though! For me, it’s an effectively bottomless collection of neat little ideas—an easy-to-describe problem, then a series of increasingly clever ways to solve that problem. How often do I end up using one of those algorithms? Not very often! But every time I read the description of an algorithm, I get a nugget of pure joy from the “aha” moment when I first understand how it works.

Book cover of The Golden Ticket: P, NP, and the Search for the Impossible

John MacCormick Author Of Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers

From my list on algorithms for people who don’t know algorithms.

Why am I passionate about this?

Once upon a time, I was a computer science researcher, working in the research labs of companies like Microsoft and Hewlett-Packard. Later I started teaching computer science to college students and writing books about algorithms. I love computers and I love algorithms. Most of all, I love explaining algorithms to other people. In fact, one of my most important missions in life is to advance the public understanding of computer science and algorithms. So if you read any of the books on my list, you’ll bring me one step closer to achieving my mission. Go ahead, read one now!

John's book list on algorithms for people who don’t know algorithms

John MacCormick Why did John love this book?

The most important unanswered question in computer science has a huge public relations problem. Back in the 1970s, this question became known as “P=NP?”—and who could write an exciting book about that? Luckily for us, Lance Fortnow can. As one of the world’s foremost experts on P-vs-NP, he takes us on a wild and truly accessible ride through the most important question about computing. I’ve seen many attempts at making “P=NP?” accessible/understandable/intriguing for non-experts. But Fortnow nails it like nobody else, reformulating P-vs-NP as a search for one of the golden tickets in Charlie and the Chocolate Factory. (Which is another one of my favorite books, even though it’s not going to make it onto this list about algorithms.)

By Lance Fortnow,

Why should I read it?

1 author picked The Golden Ticket as one of their favorite books, and they share why you should read it.

What is this book about?

The P-NP problem is the most important open problem in computer science, if not all of mathematics. Simply stated, it asks whether every problem whose solution can be quickly checked by computer can also be quickly solved by computer. The Golden Ticket provides a nontechnical introduction to P-NP, its rich history, and its algorithmic implications for everything we do with computers and beyond. Lance Fortnow traces the history and development of P-NP, giving examples from a variety of disciplines, including economics, physics, and biology. He explores problems that capture the full difficulty of the P-NP dilemma, from discovering the shortest…


Book cover of The Science of Programming

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why did Federico love this book?

This book is essential in that it follows a systematic and scientific approach to software development, advocating for clarity in expressing algorithms, providing a rigorous framework for designing and reasoning about programs, and, fundamentally, always focusing on formal methods and mathematical techniques to ensure correctness and efficiency in programming code.

Most importantly, the book doesn’t just show you how to prove programs correct, but also teaches how to arrive from a definition to an efficient and correct solution, so I would recommend this to every developer.


By David Gries,

Why should I read it?

1 author picked The Science of Programming as one of their favorite books, and they share why you should read it.

What is this book about?

Describes basic programming principles and their step-by-
step applications.Numerous examples are included.


Book cover of The Art of Computer Programming: Volume 3: Sorting and Searching

Steven S. Skiena Author Of The Algorithm Design Manual

From my list on mathematical and algorithmic thinking.

Why am I passionate about this?

I am Professor of Computer Science at Stony Brook University, and have spent the past thirty years thinking/teaching/writing about algorithms. Algorithms are the really cool thing about computer science, for they form the ideas behind any interesting computer program. And algorithms turn out to be the ideas behind many interesting aspects of life that have nothing to do with computers. I have written six books on algorithms, programming, gambling, and history –including the ranking of the historical significance of all the people in Wikipedia.

Steven's book list on mathematical and algorithmic thinking

Steven S. Skiena Why did Steven love this book?

Knuth’s unique mix of playfulness and rigor came to define computer science as an intellectual discipline: computer science didn’t really have anything to do with computers, but everything to do with a particular way of seeing the world.  Just browse and wonder at the beauty and precision achieved in these books.   

Volume 3 (Sorting and Searching) is my personal favorite, and I encourage you to start there. During the pandemic, I finally got around to reading Volume 4A (Combinatorial Algorithms), which was published thirty plus years after Volume 3. It was the same feeling I had watching the movie The Phantom Menace years after growing up with the original Star Wars trilogy. I had forgotten just how unique and distinctive Knuth’s Art of Computer Programming is.

By Donald Knuth,

Why should I read it?

1 author picked The Art of Computer Programming as one of their favorite books, and they share why you should read it.

What is this book about?

The bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming.



-Byte, September 1995



I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up.



-Charles Long



If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole…


Book cover of The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World

Kartik Hosanagar Author Of A Human's Guide to Machine Intelligence: How Algorithms Are Shaping Our Lives and How We Can Stay in Control

From my list on managing technological innovation for mere mortals.

Why am I passionate about this?

I build and use emerging technological innovations in business, and I also teach others how they might too! I’m a serial entrepreneur and a Professor at the Wharton School of the University of Pennsylvania. As an entrepreneur, I co-founded and developed the core IP for Yodle Inc, a venture-backed firm that was acquired by Web.com. I’m now the founder of Jumpcut Media – a startup using data and Web3 technologies to democratize opportunities in Film and TV. In all this work, I'm often trying to assess how emerging technologies may affect business and society in the long run and how I can apply them to create new products and services.

Kartik's book list on managing technological innovation for mere mortals

Kartik Hosanagar Why did Kartik love this book?

This book provides an excellent description of the various kinds of machine learning approaches and asks the question of whether there will be a Master Algorithm, one single (universal) algorithm that learns all kinds of tasks from data. The author, Pedro Domingos, introduces the different approaches to building intelligence and the research tribes exploring them – Symbolists (with its foundations in Philosophy and Logic), Connectionists (foundations in Neuro/Cognitive Science), Evolutionaries (foundations in Evolutionary Biology), Bayesians (statistical foundations), and Analogizers (Psychology). He also introduces some of his own ideas on what the master machine learning algorithm might look like. It’s a really useful primer for those who are not deeply immersed in machine learning but it’s written for readers with at least a basic engineering and computer science background.

By Pedro Domingos,

Why should I read it?

1 author picked The Master Algorithm as one of their favorite books, and they share why you should read it.

What is this book about?

Algorithms increasingly run our lives. They find books, movies, jobs, and dates for us, manage our investments, and discover new drugs. More and more, these algorithms work by learning from the trails of data we leave in our newly digital world. Like curious children, they observe us, imitate, and experiment. And in the world's top research labs and universities, the race is on to invent the ultimate learning algorithm: one capable of discovering any knowledge from data, and doing anything we want, before we even ask.Machine learning is the automation of discovery,the scientific method on steroids,that enables intelligent robots and…


Book cover of Algorithm Design

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why did Daniel love this book?

I’ve probably spent more time with this book than with any other technical book. It’s one of those books where you can get as much out of it as you like by revisiting the material at increasing levels of depth. I appreciate the conversational but rigorous tone, the solved examples, the false starts, the intuition that the authors build, and the applications of algorithm design to realistic problems. The Maximum Flow chapter is not to be missed.

By Jon Kleinberg, Éva Tardos,

Why should I read it?

1 author picked Algorithm Design as one of their favorite books, and they share why you should read it.

What is this book about?

Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. The book teaches students a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.
August 6, 2009 Author, Jon Kleinberg, was recently cited in the New York Times for his statistical analysis research in the Internet age.


Book cover of Structure and Interpretation of Computer Programs
Book cover of Beautiful Code
Book cover of Types and Programming Languages

Share your top 3 reads of 2024!

And get a beautiful page showing off your 3 favorite reads.

1,593

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in algorithms, computer science, and artificial intelligence?

Algorithms 36 books
Computer Science 35 books