93 books like A Discipline of Programming

By Edsger W. Dijkstra,

Here are 93 books that A Discipline of Programming fans have personally recommended if you like A Discipline of Programming. Shepherd is a community of 10,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of Refactoring: Improving the Design of Existing Code

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 different from the others I recommended, because its focus is not really on creating algorithms, but rather on how to improve code with a systematic process, keeping functionality but enhancing quality.

The author shows several practical techniques that he applies to real-world problems and empower you to elevate your code's quality and adapt it seamlessly to changing needs. It's not just about writing code; it's about becoming a more effective and confident developer.

I consider this book a companion on the journey to mastering the craft of coding. With it, you’ll always be able to achieve higher-quality code, no matter the original version of the code.

By Martin Fowler,

Why should I read it?

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

What is this book about?

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…


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 Design Patterns: Elements of Reusable Object-Oriented Software

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?

Of all the books I recommend, this is practically a sort of personal bible, which I very frequently consult.

This book doesn't just show you how to code; with realistic patterns and real-world examples, it's like having experienced mentors guiding your every keystroke. These patterns aren't just snippets; they're blueprints for building robust, flexible software.

I think the book is practically mandatory for all developers, novice or seasoned. It transformed how I approach problems, teaching me techniques I use daily in systems design and development.

By Erich Gamma, Richard Helm, Ralph Johnson , John Vlissides

Why should I read it?

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

What is this book about?

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.


The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the…


Book cover of Code: The Hidden Language of Computer Hardware and Software

Shimon Schocken Author Of The Elements of Computing Systems: Building a Modern Computer from First Principles

From my list on how computers work, and how they are built.

Why am I passionate about this?

As a computer science professor and educator, my teaching motto is Rigor and Vigor. I believe that the only way to learn something deeply, whether it's an abstract mathematical argument or a complex computer system – is building the thing from the ground up, from first principles. That's the rigor. The second requirement – vigor – comes from the need to make this learning experience captivating, rewarding, empowering. I spent much of my career developing books, courses, and games that help learn computer science and mathematics with gusto. I am pleased that this work has had an impact, and that it resonates with many students and self-learners around the world.

Shimon's book list on how computers work, and how they are built

Shimon Schocken Why did Shimon love this book?

This popular book takes a broad perspective that surveys the main physical and logical layers from which all digital devices are made.

I like the accessible writing style, aimed at lay readers, and the book’s companion website, where one can experiment interactively with many of the artifacts described in the book. The second edition includes a new section that focuses on a functional subset of Intel 8080, the microprocessor that ushered the personal computing revolution, and the instruction set used by many PCs and servers today.

By Charles Petzold,

Why should I read it?

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

What is this book about?

What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.

Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who's ever wondered about the secret inner life of computers and other smart machines.

It's a cleverly illustrated…


Book cover of Stand on Zanzibar

Robert Zwilling Author Of Asteroid Fever

From my list on science fiction books where the big break doesn't change anything.

Why am I passionate about this?

I have always been fascinated by science and everything mysterious. I love to read science fiction and mystery stories. I use art and literature to explore reality. Writing or painting allows me to link seemingly unrelated topics together to create my own explanations for why things are the way they appear to be. The biggest things in the universe are replicated on Earth right down to sub-atomic size. I call that life imitating stars. Life is an endless resource found everywhere in the universe, and it's not restricted to just light or heat to grow; it only needs energy.

Robert's book list on science fiction books where the big break doesn't change anything

Robert Zwilling Why did Robert love this book?

This book was written in the late 60s, when everything was breaking loose from traditional values, including writing styles. Brunner did a very good job of anticipating how technology and changing social norms would change the world in the not-so-distant future.

It's all there: sexual freedom, legal drugs, religion, computers, crazy mass killers called muckers, corporate empires, a 7 billion population, global events, and the personalized internet.

I like the way the story was written, a new wave pop art style intermixed with traditional passages blaring out a series of seemingly unrelated events that are strung together by a group of unrelated characters who carry the complex story through to a surprising ending.

By John Brunner,

Why should I read it?

3 authors picked Stand on Zanzibar as one of their favorite books, and they share why you should read it.

What is this book about?

Now in a Tor Essentials edition, the Hugo Award-winning, uncannily prophetic Stand on Zanizbar is a science fiction novel unlike any before in that remains an insightful look at America’s downfall that allows us to see what has been, what is, and what is to come.

“There are certain things John Brunner achieved, which no one has done before or since.” ― Bruce Sterling

Genetic engineering is routine, corporations have usurped democracy, technology governs human relationship, and mass-marketed psychosomatic drugs keep billions docile. The systems of the United States are universal in reach and out of control. Every citizen is…


Book cover of The Pattern on the Stone: The Simple Ideas That Make Computers Work

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?

The fields of Psychology, Economics, and Biology are well-known for offering interesting and informative introductory courses that provide a doorway into the area for budding scientists but also essential background knowledge appropriate for any educated person.

In Computer Science, we don't really do things that way. I wanted to offer a new kind of Computer Science introductory course that laid out the coolest ideas we have to offer along with compelling descriptions of why they matter.

I ended up using this book as the required reading in the class I built because it tells a personal, moving story while taking the reader from the nuts and bolts of bits and bytes all the way up to cutting-edge ideas surrounding artificial intelligence. It's a great read! Plus, it's short so I thought I could get my students to actually finish it.

By W. Daniel Hillis,

Why should I read it?

1 author picked The Pattern on the Stone as one of their favorite books, and they share why you should read it.

What is this book about?

Most people are baffled by how computers work and assume that they will never understand them. What they don't realize,and what Daniel Hillis's short book brilliantly demonstrates,is that computers'seemingly complex operations can be broken down into a few simple parts that perform the same simple procedures over and over again. Computer wizard Hillis offers an easy-to-follow explanation of how data is processed that makes the operations of a computer seem as straightforward as those of a bicycle.Avoiding technobabble or discussions of advanced hardware, the lucid explanations and colourful anecdotes in The Pattern on the Stone go straight to the heart…


Book cover of Computers Ltd.: What They Really Can't Do

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 provides a brief introduction to the concept of algorithms before discussing the limitations of computation. Specifically, Harel explains undecidable problems (that is, problems for which no algorithm exists) and infeasible problems (that is, problems for which only algorithms are known that have an exponential runtime). I like this book (and its splendid title) because of its focus on the limitations of computation. Harel does a marvelous job in explaining two difficult topics about computation. The understanding of any scientific discipline requires the understanding of its limits, and the limits of computation are as significant as they are surprising.

By David Harel,

Why should I read it?

2 authors picked Computers Ltd. as one of their favorite books, and they share why you should read it.

What is this book about?

Computers are incredible. They are one of the most important inventions of the 20th century, dramatically and irrevocably changing the way we live. That is the good news. The bad news is that there are still major limitations to computers, serious problems that not even the most powerful computers can solve. The consequences of such limitations can be serious. Too often these limits get overlooked, in the quest for bigger, better, and more powerful computers. In Computers Ltd., David Harel, best-selling author of Algorithmics, explains and illustrates one of the most fundamental, yet under-exposed facets of computers - their inherent…


Book cover of 2001

K. Van Kramer Author Of Modified

From my list on science fiction with A.I. and sweeping new worlds.

Why am I passionate about this?

I’ve always loved science fiction because it offers a hope, a dream, or a future that we just haven't seen yet. When I write my stories, I feel there is no better use of my imagination, than to contemplate a new world, a new civilization, or future technology. At the same time, I hope to entertain readers and spark young imaginations. Inside Modified, I reached into a distant future with off-world colonies that float in the clouds of Venus, while robots toil on the planet’s surface. Of course, in such a future, when advanced modifications and recursive designs are used, leads one to wonder if my robot can love too.

K.'s book list on science fiction with A.I. and sweeping new worlds

K. Van Kramer Why did K. love this book?

This book seems a bit strange at first, when the story begins with Moon-Watcher, the leader of a tribe of early ape-man, who struggles for survival during the brutal Pleistocene ice age. After an alien monolith appears, it seems to advance the way he thinks, leading him to develop crude weapons. When the same monolith is discovered in the future, we seem fated to find the answers behind the eerie structure. Skipping to a team of astronauts who travel aboard a ship to further investigate, things take an unexpected turn when the ship’s A.I. called HAL-9000, gets very confused about keeping secrets. Something about the way it remains so polite while it deceives the crew, is enough to give anyone a nightmare.

By Arthur C. Clarke,

Why should I read it?

7 authors picked 2001 as one of their favorite books, and they share why you should read it.

What is this book about?

Written when landing on the moon was still a dream, and made into one of the most influential films of all time, 2001: A SPACE ODYSSEY remains a classic work of science fiction fifty years after its original publication.

The discovery of a black monolith on the moon leads to a manned expedition deep into the solar system, in the hope of establishing contact with an alien intelligence. Yet long before the crew can reach their destination, the voyage descends into disaster . . .

Brilliant, compulsive and prophetic, Arthur C. Clarke's timeless novel tackles the enduring theme of mankind's…


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…


5 book lists we think you will like!

Interested in computers, computer programming, and problem solving?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about computers, computer programming, and problem solving.

Computers Explore 28 books about computers
Computer Programming Explore 39 books about computer programming
Problem Solving Explore 36 books about problem solving