The most recommended books on algorithms

Who picked these books? Meet our 37 experts.

37 authors created a book list connected to algorithms, and here are their favorite algorithm books.
Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

What type of algorithm book?

Loading...
Loading...

Book cover of Computer Vision: Algorithms and Applications

Mark S. Nixon Author Of Feature Extraction and Image Processing for Computer Vision

From my list on computer vision from a veteran professor.

Why am I passionate about this?

It’s been fantastic to work in computer vision, especially when it is used to build biometric systems. I and my 80 odd PhD students have pioneered systems that recognise people by the way they walk, by their ears, and many other new things too. To build the systems, we needed computer vision techniques and architectures, both of which work with complex real-world imagery. That’s what computer vision gives you: a capability to ‘see’ using a computer. I think we can still go a lot further: to give blind people sight, to enable better invasive surgery, to autonomise more of our industrial society, and to give us capabilities we never knew we’d have.

Mark's book list on computer vision from a veteran professor

Mark S. Nixon Why did Mark love this book?

Richard’s authoritative leading textbook excellently describes the whole field of computer vision. It starts with the sensor, moves to image formation followed by feature extraction and grouping, and then by vision analysis. It’s pragmatic too, with excellent descriptions of applications. And there is a ton of support material. This is a mega textbook describing the whole field of computer vision.

By Richard Szeliski,

Why should I read it?

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

What is this book about?

Computer Vision: Algorithms and Applications explores the variety of techniques commonly used to analyze and interpret images. It also describes challenging real-world applications where vision is being successfully used, both for specialized applications such as medical imaging, and for fun, consumer-level tasks such as image editing and stitching, which students can apply to their own personal photos and videos.

More than just a source of "recipes," this exceptionally authoritative and comprehensive textbook/reference also takes a scientific approach to basic vision problems, formulating physical models of the imaging process before inverting them to produce descriptions of a scene. These problems are…


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 Social Media and the Public Interest: Media Regulation in the Disinformation Age

James Meese Author Of Digital Platforms and the Press

From my list on news and the impact of technology.

Why am I passionate about this?

I’ve been fascinated by the news media and technology for as long as I can remember. I successfully campaigned for a VCR as a five-year-old, and watched multiple news programs with my grandfather growing up. Alongside these interests, I managed to read as many books as I possibly could. I’ve managed to somehow parlay that into a job as a researcher, where I study the news media sector and technological transformation. I read everything on this list while I was writing my latest book, and hope you enjoy them as much as I did! 

James' book list on news and the impact of technology

James Meese Why did James love this book?

Philip Napoli is a leading media policy expert and was one of the first people to identify some of the problems that emerge when news gets distributed online through social media algorithms.

I love this book because it provides a great narrative of how we got to this point, but also some fantastic suggestions for how policymakers can respond. It’s quite readable for an academic book, and worth checking out. 

By Philip M. Napoli,

Why should I read it?

1 author picked Social Media and the Public Interest as one of their favorite books, and they share why you should read it.

What is this book about?

Facebook, a platform created by undergraduates in a Harvard dorm room, has transformed the ways millions of people consume news, understand the world, and participate in the political process. Despite taking on many of journalism's traditional roles, Facebook and other platforms, such as Twitter and Google, have presented themselves as tech companies-and therefore not subject to the same regulations and ethical codes as conventional media organizations. Challenging such superficial distinctions, Philip M. Napoli offers a timely and persuasive case for understanding and governing social media as news media, with a fundamental obligation to serve the public interest.

Social Media and…


Book cover of The Art of Computer 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 multi-volume book is, for me, a masterpiece that goes far beyond just coding or algorithms or data structures, and serves as a profound exploration of algorithmic thinking and computer science's theoretical foundations, going deeply into the performance of algorithms and the behavior of data structures.

Knuth's meticulous approach, coupled with his clear and engaging prose (with occasional touches of humor) clearly explains complex concepts, and shows a deep understanding of the artistry inherent in solving computational problems.

Bill Gates said that anybody who went through all its volumes would get a job at his company, and I surely agree! I would recommend this book both for novice or seasoned programmers, because you will always find invaluable insights in it.

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?

Check out the boxed set that brings together Volumes 1 - 4B in one elegant case.

The Art of Computer Programming, Volumes 1-4B Boxed Set

ISBN: 9780137935109

Art of Computer Programming, Volume 1, Fascicle 1, The: MMIX -- A RISC Computer for the New Millennium

This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at…


Book cover of Zed

Anna Lyndsey Author Of Girl in the Dark: A Memoir of a Life Without Light

From my list on conditions which people say don’t exist but do.

Why am I passionate about this?

I used to be part of the establishment, working in Whitehall for the UK government. Then I became the ultimate outsider, with light sensitivity so extreme that many people dismissed it as “all in my head.” Years on, turns out I've had a physical illness all along – but one only recently recognised. Now I know what I’m dealing with (Mast Cell Activation Syndrome), I’m much better.  My journey’s made me fascinated by the way establishments of all kinds – corporate, political, scientific – react to new uncomfortable truths, and how often they’ll opt for gaslighting and "psychological" labels to keep those truths at bay.  

Anna's book list on conditions which people say don’t exist but do

Anna Lyndsey Why did Anna love this book?

A dystopian future that's so close to now it made me squeal. Mega-techcorp Beetle is in charge of – well, basically, everything: CCTV, your household appliances, virtual assistants, robot cops, predicting the future... Only one problem: individual human cussedness/autonomy – the elusive variable Zed – keeps gumming up the algorithms and really shouldn't exist. I love the way the Beetle founder and his assiduous employees just can't see why their beautifully controlled society is quietly driving its citizens nuts with despair. Apart from my constant horror-laughter of embarrassed recognition, there's a scene involving robot hospital orderlies which is one of the most chilling things I have ever read.  Do we really want a future like this?

By Joanna Kavenna,

Why should I read it?

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

What is this book about?

'Fun and erudite' Sunday Times
'Snort-inducingly funny' Daily Mail
'One of the cleverest books you'll read this year' Telegraph

Every system, however immaculate, has a few little glitches.

The latest in domestic tech should have predicted that businessman George Mann was about to murder his family. But instead it crashes and leads to the wrong man being caught and punished.

Are there gremlins in digital giant Beetle's ubiquitous wearable tech, talking fridges and Dickensian droids? Have they been hacked, or is something even more sinister going on?

With the clock ticking philandering Beetle CEO Guy Matthias, conflicted national security agent…


Book cover of Data Structures and Algorithms

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?

This is the book that started it all for me… and I think it holds up just fine today. I see value in confronting the old Pascal code every so often: it’s a reminder of how little we need in order to make our algorithms fast, and how much is happening behind the scenes by our modern programming languages. To this day this book has some of my favourite presentations of Dijkstra’s Algorithm and sorting.

By Alfred Aho, Jeffrey Ullman, John Hopcroft

Why should I read it?

1 author picked Data Structures and Algorithms as one of their favorite books, and they share why you should read it.

What is this book about?

The authors' treatment of data structures in Data Structures and Algorithms is unified by an informal notion of "abstract data types," allowing readers to compare different implementations of the same concept. Algorithm design techniques are also stressed and basic algorithm analysis is covered. Most of the programs are written in Pascal.


Book cover of Algorithms

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?

Many of my favourite algorithms books give short shrift to designing APIs for the algorithms and data structures that they present. The Sedgewick and Wayne book, by contrast, goes all in on an object-oriented API design. This is my book choice for Java programmers and those interested in larger program design considerations. Clear your calendar: each chapter here is massive, but I think the time investment is worth it. I especially like the chapter that shows how to tune classic algorithms for realizing speedups when working with strings.

By Robert Sedgewick, Kevin Wayne,

Why should I read it?

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

What is this book about?

This fourth edition of Robert Sedgewick and Kevin Wayne's Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing--including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.



The algorithms in this book represent a body of knowledge developed…


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 Distributed Algorithms An Intuitive Approach

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?

The building blocks of software are algorithms, so here our journey continues after you have established a deep understanding of programming languages.

Modern software is predominantly distributed, and since this book doesn't assume much it is the perfect introduction to algorithm analysis, concurrency, and distributed systems. And the best part is that you can just jump in and build these algorithms yourself.

By Fokkink,

Why should I read it?

1 author picked Distributed Algorithms An Intuitive Approach as one of their favorite books, and they share why you should read it.

What is this book about?

The new edition of a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models.

This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentation, often a stumbling block for students, teaching algorithmic thought rather than proofs and logic. This approach allows the student to learn a large number of algorithms within a relatively short span of time. Algorithms are explained through brief, informal descriptions, illuminating examples, and practical exercises. The examples and exercises allow readers to…


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.