Jump to ratings and reviews
Rate this book

A Discipline of Programming

Rate this book
Clean wraps, corners square, lay flat. No creases to the spine, or hinge. Small frayed spot at the top of the spine. No previous owner's name, no other marks in text. Well kept copy.

217 pages, Paperback

First published March 1, 1976

38 people are currently reading
2269 people want to read

About the author

Edsger W. Dijkstra

14 books136 followers
Edsger Wybe Dijkstra was a computer scientist. He received the 1972 Turing Award for fundamental contributions to developing programming languages, and was the Schlumberger Centennial Chair of Computer Sciences at The University of Texas at Austin from 1984 until 2000.

Shortly before his death in 2002, he received the ACM PODC Influential Paper Award in distributed computing for his work on self-stabilization of program computation. This annual award was renamed the Dijkstra Prize the following year, in his honor.

His influential 1968 paper "A Case against the GO TO Statement", later published by Niklaus Wirth with the title "Go To Statement Considered Harmful", introduced the phrase "considered harmful" into computing.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
85 (46%)
4 stars
62 (34%)
3 stars
25 (13%)
2 stars
7 (3%)
1 star
2 (1%)
Displaying 1 - 18 of 18 reviews
Profile Image for mkfs.
330 reviews27 followers
June 28, 2015
Has one of my favorite lines ever in a textbook:

"For lack of a bibliography, I offer neither explanation nor apology."
208 reviews46 followers
June 22, 2016
This book delivers what I had expected to get from Stepanov and McJones's Elements of Programming (Elements of Programming is great; it's just a different book than I thought it would be).

Dijkstra is a programming legend. Aside from "Goto statement considered harmful" he made a mark in just about every field of programming: from Dijkstra's shortest paths to Dijkstra's banker's algorithm to semaphores to coloring garbage collectors to several others. The opportunity to learn from him really shouldn't be passed up.

A Discipline of Programming presents both (1) ways to reason about programming with predicate calculus and (2) demonstrations, with false starts and all.
Profile Image for Jake.
211 reviews45 followers
February 29, 2016
I can't do Dijkstra justice with one quick read of this book but what I will say is that Dijkstra impressed upon me immensely the power of abstraction. Abstractions are not nebulous ideas. They are how we're absolutely precise. It is this precision which is at the very nature of a discipline. Dijkstra knew acutely the power of abstraction and of its real role to play in programming. Discipline leads to purity; purity leads to composability; composability is the path to correctness in code. It is this a priori correctness, and use of language that Dijkstra exposed that is simply beautiful. Read this book to understand, on a fundamental level, your own limitations.
Profile Image for Dan Sutton.
53 reviews8 followers
November 26, 2012
This short book is one of the finest ever written on the subject of programming. Dijkstra's examples are deceptively simple; his solutions are beautiful and elegant. Every programmer should read this: Dijkstra was our progenitor: everything he wrote was relevant and always will be. Dijkstra once stated, "If a programmer can look at his code and say, 'Dijkstra would not have liked that,' then that is immortality enough for me." This book shows us why.
Profile Image for Nick Black.
Author 2 books878 followers
June 17, 2008
The most important book any young programmer could find. It changed my life.
Profile Image for Parsa.
42 reviews12 followers
June 6, 2017
very nice book. It gives you new insights on how to program, what is programming, and what is a program. Dijkstra's ideas about programming, were, and still are, very different from the "conventional wisdom". Even if you don't agree with him, i think it's worth checking out.

note. i'm not gonna pretend that i understood all of the text, heck, maybe not even half of it. (end of note)

sad remark. as Dijkstra himself said in the preface, this book is best read with a friend or colleague,
wish there was someone i could read this book with (end of sad remark).
Profile Image for Mason.
2 reviews12 followers
January 19, 2014
Dijkstra whipped my ass. Awesome book, very difficult. Putting this on my "Re-Read in Five Years" shelf :D
1 review
November 7, 2015
By the time I finished the first chapter I was certain I knew nothing about programming.
Profile Image for DJ.
317 reviews289 followers
Want to read
January 23, 2010
more foundational texts in computing
Profile Image for Choi Wonseok.
4 reviews1 follower
Currently reading
June 21, 2010
it's difficult for me to go on..
stuck on 86page :-(
93 reviews
February 6, 2025
I found Dijkstra's writing style wordy and boring, making what he is saying harder to understand. Ignoring that, this seems like a pretty good programming book (I read only 8 chapters and skimmed a few more), but better learning aids exist now. For the formal methods side, the advent of proof assistants like Coq or verified languages like Dafny make Dijkstra's philosophy of reasoning about programs on paper so meticulously a bit obsolete. For the algorithms side, books like Competitive Programming 3/4 or Introduction to Algorithms are much more comprehensive and accessible.
Profile Image for Sandy Maguire.
Author 3 books198 followers
May 7, 2022
It's clear that Dijkstra was a great thinker who had bad tools available to him. It's a wondrous thing to imagine what he'd get done with a proof assistant in his tool-belt. This book is... dated. It has lots of good ideas at the beginning and at the end, but the middle is a bunch of EXTREMELY IMPERATIVE SOLUTIONS to problems, with long digressions on features of his make-believe programming language's features.
Profile Image for Marcos Cannabrava.
18 reviews1 follower
December 27, 2024
The first part is very approachable and filled with Dijkstra's finest nuggets of wisdom. Overall, a challenging but worthwhile book. I'd only recommend it in its entirety to seasoned programmers or those deeply interested in the theory of computer science.
16 reviews
April 28, 2022
One of the best books I read in a long long time and a big fan of the man Dijkstra !
Displaying 1 - 18 of 18 reviews

Can't find what you're looking for?

Get help and learn more about the design.