Here are 100 books that The Art of Computer Programming fans have personally recommended if you like The Art of Computer Programming. 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 How Not to Be Wrong: The Power of Mathematical Thinking

Martin Erwig Author Of Once Upon an Algorithm: How Stories Explain Computing

From my list on computer science without coding.

Why am I passionate about this?

I’m a professor of computer science at Oregon State University. My research focus is on programming languages, but I also work on computer science education and outreach. I grew up in Germany and moved to the United States in 2000. Since computer science is a fairly new and not widely understood discipline, I am interested in explaining its core ideas to the general public. I believe that in order to attract a more diverse set of people to the field we should emphasize that coding is only a small part of computer science.

Martin's book list on computer science without coding

Martin Erwig Why Martin loves this book

This book is not about computing, but it is relevant in an indirect way. I love this book, since it is written in such an engaging style and illustrates with many examples that math is not a dry subject to be practiced only by mathematicians but helps everyone to solve real-world problems. The book shows how important it is to be precise in describing problems and that applying a little mathematical rigor goes a long way in solving them. Ellenberg describes mathematics as the “extension of common sense by other means.” In a similar way, I view computer science as the extension of problem-solving methods (aka “algorithms”) by other means. 

By Jordan Ellenberg ,

Why should I read it?

3 authors picked How Not to Be Wrong as one of their favorite books, and they share why you should read it.

What is this book about?

"Witty, compelling, and just plain fun to read . . ." -Evelyn Lamb, Scientific American

The Freakonomics of math-a math-world superstar unveils the hidden beauty and logic of the world and puts its power in our hands

The math we learn in school can seem like a dull set of rules, laid down by the ancients and not to be questioned. In How Not to Be Wrong, Jordan Ellenberg shows us how terribly limiting this view is: Math isn't confined to abstract incidents that never occur in real life, but rather touches everything we do-the whole world is shot through…


If you love The Art of Computer Programming...

Ad

Book cover of The High House

The High House by James Stoddard,

The Victorian mansion, Evenmere, is the mechanism that runs the universe.

The lamps must be lit, or the stars die. The clocks must be wound, or Time ceases. The Balance between Order and Chaos must be preserved, or Existence crumbles.

Appointed the Steward of Evenmere, Carter Anderson must learn the…

Book cover of How to Solve It: A New Aspect of Mathematical Method

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 Steven loves this book

Polya was a great mathematician who knew what counted (after all, he made major contributions to combinatorics, the mathematics of counting). He thought hard about what he was doing when working on problems in mathematics, developing a mental process that lead to creative breakthroughs and solutions. Polya’s problem-solving method is broadly applicable to domains other than mathematics, and this book features many nice puzzles to improve your thinking.

Algorithm design is challenging because it often requires flashes of sudden insight which seem to come out of the blue. But there is a way of thinking about problems that make such flashes more likely to happen. I try to teach this thought process in my books, but Polya got there first.


By George Polya ,

Why should I read it?

2 authors picked How to Solve It as one of their favorite books, and they share why you should read it.

What is this book about?

A perennial bestseller by eminent mathematician G. Polya, How to Solve It will show anyone in any field how to think straight. In lucid and appealing prose, Polya reveals how the mathematical method of demonstrating a proof or finding an unknown can be of help in attacking any problem that can be "reasoned" out--from building a bridge to winning a game of anagrams. Generations of readers have relished Polya's deft--indeed, brilliant--instructions on stripping away irrelevancies and going straight to the heart of the problem.


Book cover of Algorithms to Live By: The Computer Science of Human Decisions

Michael L. Littman Author Of Code to Joy: Why Everyone Should Learn a Little Programming

From my list on computing and why it’s important and interesting.

Why am I passionate about this?

Saying just the right words in just the right way can cause a box of electronics to behave however you want it to behave… that’s an idea that has captivated me ever since I first played around with a computer at Radio Shack back in 1979. I’m always on the lookout for compelling ways to convey the topic to people who are open-minded, but maybe turned off by things that are overly technical. I teach computer science and study artificial intelligence as a way of expanding what we can get computers to do on our behalf.

Michael's book list on computing and why it’s important and interesting

Michael L. Littman Why Michael loves this book

I always find myself applying algorithmic thinking in my everyday life—it affects the way I put away dishes, navigate to the store, and organize my to-do lists. And I think others could benefit from that mindset.

So, when I read this book, my reaction was "Yes! That's what I want people to know. I just wish I could have said it that well!" The authors (who I know, but didn't know they wrote a book together), did a fantastic job of selecting algorithms with deep human connections. Really! And they explain them just right, without getting too mathematical but while still hitting the key ideas with clarity and accuracy. Fantastic!

By Brian Christian , Tom Griffiths ,

Why should I read it?

5 authors picked Algorithms to Live By as one of their favorite books, and they share why you should read it.

What is this book about?

A fascinating exploration of how computer algorithms can be applied to our everyday lives.

In this dazzlingly interdisciplinary work, acclaimed author Brian Christian and cognitive scientist Tom Griffiths show us how the simple, precise algorithms used by computers can also untangle very human questions. Modern life is constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? The authors explain how to have better hunches and when to leave things to chance, how to deal…


If you love Donald Knuth...

Ad

Book cover of The Guardian of the Palace

The Guardian of the Palace by Steven J. Morris,

The Guardian of the Palace is the first novel in a modern fantasy series set in a New York City where magic is real—but hidden, suppressed, and dangerous when exposed.

When an ancient magic begins to leak into the world, a small group of unlikely allies is forced to act…

Book cover of Adventures of a Mathematician

Thomas A. Garrity Author Of All the Math You Missed: (But Need to Know for Graduate School)

From my list on for mathematical inspiration.

Why am I passionate about this?

I love mathematics and truly believe that “Functions Describe the World.” I'm deeply satisfied that I've spent my professional life discovering new mathematics and explaining known mathematics to others. I was an undergraduate at the University of Texas, Austin, got my PhD from Brown University, then spent three years as a G.C. Evans Instructor at Rice University, before moving to Williams, where I've been ever since. Besides writing All the Math You Missed (But Need to Know for Graduate School), I've also written Algebraic Geometry: A Problem Solving Approach (with a number of co-authors) and Electricity and Magnetism for Mathematicians: A Guided Path from Maxwell’s Equations to Yang-Mills, and a number of research articles.  

Thomas' book list on for mathematical inspiration

Thomas A. Garrity Why Thomas loves this book

Ulam was a Polish mathematical prodigy, publishing significant mathematics by the time he was 20. He was part of the rich Polish math community centered around Stefan Banach. Unlike most, he was heading to the United States in 1939 (with his younger brother) when Germany invaded Poland. All the rest of his family were murdered by the Nazis. He on the other hand ended up in Los Alamos, providing critical help on the Manhattan Project. Later in life, he wrote this book, his autobiography. Based on his history, one could well think that it would be a book full of tragic grief. Instead, it is a pean to the joys of doing mathematics and of living a life full of mathematics, without downplaying the horrors of the mid-twentieth century. 

By S. M. Ulam ,

Why should I read it?

2 authors picked Adventures of a Mathematician as one of their favorite books, and they share why you should read it.

What is this book about?

This autobiography of mathematician Stanislaw Ulam, one of the great scientific minds of the twentieth century, tells a story rich with amazingly prophetic speculations and peppered with lively anecdotes. As a member of the Los Alamos National Laboratory from 1944 on, Ulam helped to precipitate some of the most dramatic changes of the postwar world. He was among the first to use and advocate computers for scientific research, originated ideas for the nuclear propulsion of space vehicles, and made fundamental contributions to many of today's most challenging mathematical projects. With his wide-ranging interests, Ulam never emphasized the importance of his…


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 Federico loves 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 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 Federico loves 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.


If you love The Art of Computer Programming...

Ad

Book cover of Oaky With a Hint of Murder

Oaky With a Hint of Murder by Dawn Brotherton,

Aury and Scott travel to the Finger Lakes in New York’s wine country to get to the bottom of the mysterious happenings at the Songscape Winery. Disturbed furniture and curious noises are one thing, but when a customer winds up dead, it’s time to dig into the details and see…

Book cover of The Art of Computer Programming, Volume 4, Fascicle 1, The: Bitwise Tricks & Techniques; Binary Decision Diagrams

David B. Black Author Of Wartime Software

From my list on teaching and inspiring the best programmers.

Why am I passionate about this?

I started programming in high school and wrote software in many domains for 30 years, from the early ARPA-net to massive credit card software. I wrote a FORTRAN compiler with one assistant in a year. I got hassled to do proper project management. Nightmare. It was all about inflated expectations instead of moving fast and winning. Then in 25 years of venture capital investing, I learned from many young companies how the little startups built quickly and well things that giants like Google literally could not get done. This book and my others spell out what I learned from the little guys who beat the giants.

David's book list on teaching and inspiring the best programmers

David B. Black Why David loves this book

This is the definitive book series on algorithms and the core of computer programming.

Unlike most such books, Knuth is a real programmer, deep into the details of the craft, to the point of creating his own assembler language and typesetting generation system. It’s partly the substance of the algorithms and their analysis, but even more is the way he models a way of thinking about and solving complexity that makes this a must-read series.

By Donald Knuth ,

Why should I read it?

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

What is this book about?

Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually.



The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e

ISBN: 0321751043









Art of Computer Programming, Volume 4, Fascicle 1, The: Bitwise Tricks & Techniques; Binary Decision Diagrams: Bitwise Tricks & Techniques; Binary Decision Diagrams



This multivolume work on the analysis of algorithms has long been recognized…


Book cover of Smalltalk Best Practice Patterns

Philipp Fehre Author Of JavaScript Domain-Driven Design

From my list on learning from programming classics.

Why am I passionate about this?

Computers have fascinated me since my childhood, having fond memories of my dad's ZX81, but even so I played around I was never truly captured by the programming until I recognized it as a way of writing rather than raw engineering. Through my studies of media sciences I found my fascination with how language can shape perception, and through my work in developer advocacy, I found how communities are shaped as well. Now I am fascinated with how different programming languages can shape thinking, having had the opportunity to solve problems at large companies in nonmainstream languages.

Philipp's book list on learning from programming classics

Philipp Fehre Why Philipp loves this book

Smalltalk is not as common or popular as it once was, but the influence its design had on programming is hard to overstate.

Reading this book has changed how I think about object orientation, and how I design systems, learning the patterns of Smalltalk makes it clear what object oriented design is really intended to achieve.

By Kent Beck ,

Why should I read it?

2 authors picked Smalltalk Best Practice Patterns as one of their favorite books, and they share why you should read it.

What is this book about?

This classic book is the definitive real-world style guide for better Smalltalk programming. This author presents a set of patterns that organize all the informal experience successful Smalltalk programmers have learned the hard way. When programmers understand these patterns, they can write much more effective code. The concept of Smalltalk patterns is introduced, and the book explains why they work. Next, the book introduces proven patterns for working with methods, messages, state, collections, classes and formatting. Finally, the book walks through a development example utilizing patterns. For programmers, project managers, teachers and students -- both new and experienced. This book…


Book cover of Foundation ActionScript 3.0 Animation: Making Things Move!

Scott Murray Author Of Unstuck: Javascript

From my list on learning how to code interactive graphics.

Why am I passionate about this?

I’ve been making web pages since the World Wide Web began in the mid-1990s. Back then, the web was visually quite sparse. It wasn’t until the late 2000s that new browser capabilities let the web get visually interesting and an exciting place for interactive graphics. Graphics are great: they can be informational (like charts and maps) or purely aesthetic. My personal journey of learning to code interactive graphics has been so rewarding that I’ve shared the love with others through teaching creative coding workshops and undergraduate courses. If you’re new to coding or computer graphics, I hope you’ll give one of these books a try!

Scott's book list on learning how to code interactive graphics

Scott Murray Why Scott loves this book

Okay, hear me out. Yes, this book was published in 2007. Yes, it’s ostensibly about ActionScript, the coding language in Flash, which no one uses anymore. But you won’t use this book to learn ActionScript or Flash: You’ll use it to learn how to make things move with code, in any language. You’ll skip over the ActionScript-specific parts in favor of the lucid explanations and helpful illustrations. Your visual brain will appreciate seeing how sines, cosines, and tangents are relevant—and necessary!—to make digital things move. (Your heart will wish your brain had paid better attention in trigonometry class years earlier, but hey, no regrets!) The chapters “Trigonometry for Animation” and “Velocity and Acceleration” alone are worth the purchase price.

By Keith Peters ,

Why should I read it?

1 author picked Foundation ActionScript 3.0 Animation as one of their favorite books, and they share why you should read it.

What is this book about?

This is the first definitive and authoritative book available on ActionScript 3 animation techniques. ActionScript animation is a very popular discipline for Flash developers to learn. The essential skill set has been learned by many Flash developers through the first edition of this book. This has now been updated to ActionScript 3, Adobe's new and improved scripting language. All of the code has been updated, and some new techniques have been added to take advantage of ActionScript 3's new features, including the display list and new event architecture. The code can be used with the Flash 9 IDE, Flex Builder…


If you love Donald Knuth...

Ad

Book cover of December on 5C4

December on 5C4 by Adam Strassberg,

Magical realism meets the magic of Christmas in this mix of Jewish, New Testament, and Santa stories–all reenacted in an urban psychiatric hospital!

On locked ward 5C4, Josh, a patient with many similarities to Jesus, is hospitalized concurrently with Nick, a patient with many similarities to Santa. The two argue…

Book cover of The Nature of Code

Scott Murray Author Of Unstuck: Javascript

From my list on learning how to code interactive graphics.

Why am I passionate about this?

I’ve been making web pages since the World Wide Web began in the mid-1990s. Back then, the web was visually quite sparse. It wasn’t until the late 2000s that new browser capabilities let the web get visually interesting and an exciting place for interactive graphics. Graphics are great: they can be informational (like charts and maps) or purely aesthetic. My personal journey of learning to code interactive graphics has been so rewarding that I’ve shared the love with others through teaching creative coding workshops and undergraduate courses. If you’re new to coding or computer graphics, I hope you’ll give one of these books a try!

Scott's book list on learning how to code interactive graphics

Scott Murray Why Scott loves this book

If you want your interactive graphics to feel like they are real objects—real things moving around on the screen—then you have to learn how to mimic the natural world. For an object to feel like it has weight, you have to mimic gravity. For a flock of birds to feel real, you have to mimic how real birds swarm in the sky. Yes, this does involve little math. But fortunately, Dan is a superstar teacher, and he will gently walk you through (a) the math and (b) how to translate that math into code.

Speaking of code, this book uses Processing.js, which is an older adaptation of original Processing to JavaScript. That said, the techniques are all equally applicable to modern-day Processing and p5.js.

By Daniel Shiffman ,

Why should I read it?

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

What is this book about?

How can we capture the unpredictable evolutionary and emergent properties of nature in software?

How can understanding the mathematical principles behind our physical world help us to create digital worlds?

This book focuses on a range of programming strategies and techniques behind computer simulations of natural systems, from elementary concepts in mathematics and physics to more advanced algorithms that enable sophisticated visual results. Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design.

Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic…


Book cover of How Not to Be Wrong: The Power of Mathematical Thinking
Book cover of How to Solve It: A New Aspect of Mathematical Method
Book cover of Algorithms to Live By: The Computer Science of Human Decisions

Share your top 3 reads of 2025!

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

1,210

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in computer programming, algorithms, and computer science?

Algorithms 38 books
Computer Science 35 books