100 books like The Art of Computer Programming

By Donald Knuth,

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 did Martin love 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…


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 did Steven love 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 did Michael love 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…


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 did Thomas love 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 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 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 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 did David love 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 did Philipp love 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 did Scott love 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…


Book cover of Becoming a Better Programmer: A Handbook for People Who Care About Code

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?

I’ve read a lot of books about programming; very few of them have made me laugh. None made me laugh as much as this book.

There’s one chapter where… nah, I don’t want to spoil it for you. Plus it has cartoons! Obviously, none of that would matter unless it also had interesting things to say about the practice of programming, but it’s packed full of interesting perspectives on all sorts of issues, from team dynamics to thinking about your career to an explicit consideration of the ethics of programming.

When we make games at Sucker Punch, we aim to “surprise and delight” the player—and that’s exactly what this book did for me.

By Pete Goodliffe,

Why should I read it?

1 author picked Becoming a Better Programmer as one of their favorite books, and they share why you should read it.

What is this book about?

If you're passionate about programming and want to get better at it, you've come to the right source. Code Craft author Pete Goodliffe presents a collection of useful techniques and approaches to the art and craft of programming that will help boost your career and your well-being. Goodliffe presents sound advice that he's learned in 15 years of professional programming. The book's standalone chapters span the range of a software developer's life - dealing with code, learning the trade, and improving performance - with no language or industry bias. Whether you're a seasoned developer, a neophyte professional, or a hobbyist,…


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 2024!

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

1,347

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in computer programming, algorithms, and computer science?

Algorithms 36 books
Computer Science 35 books