Cover of A Discipline of programming

A Discipline of programming

A Discipline of Programming sets out Edsger Dijkstra's approach to writing software that is correct by construction. Rather than writing code first and testing it afterwards, he argues that programmers should reason carefully about what a program must achieve and build the code step by step alongside that reasoning.

Read more

The book starts by examining how programs execute and how their meaning can be described precisely, then looks at the role of programming languages in shaping that thinking. Dijkstra works through a series of concrete problems, revisiting a familiar method for finding common divisors, examining how to search through ordered data, and tackling how to produce the next arrangement in a sequence. Each example is developed with careful attention to ensuring it ends properly and does what it should.

The result is a short, demanding guide for anyone who wants to understand the logic behind programs.

Audience
adult

Click a tag to see books like this one that share it. Point at it (on a phone, tap it) for less of it instead.

Read it? Sign in to help tag it.

Liked A Discipline of programming? Here’s where I’d start.

These suit anyone who liked A Discipline of programming. Sign in and mark a few books for picks shaped around your own taste.

  1. Types and Programming Languages Shares programming, computer science, cs
  2. Elements of Programming Shares programming, computer science, cs
  3. Structure and Interpretation of Computer Programs Shares programming, computer science, cs
  4. The Elements of Programming Style Shares programming, computer science, cs

“People who read A Discipline of programming tend to reach for these next.”

  1. Purely Functional Data Structures
  2. Computers and Intractability: A Guide to the Theory of NP-Completeness
  3. Programming Pearls
  4. The Architecture of Open Source Applications

“If you want more of the same (science about technology), start with these.”

  1. Fluent Python: Clear, Concise, and Effective Programming
  2. The Self-Taught Programmer: The Definitive Guide to Programming Professionally
  3. ERLANG Programming
  4. Algorithms Unlocked

“If it was the programming that hooked you, try one of these.”

  1. The Art of Computer Programming, Volume 1: Fundamental Algorithms
  2. Introduction to Algorithms
  3. Programming Language Pragmatics
  4. Code: The Hidden Language of Computer Hardware and Software

“These start from a similar idea, even if they go somewhere else with it.”

  1. Java Concepts, Compatible with Java 5 and 6, 5th Edition
  2. Head First Programming: A Learner's Guide to Programming Using the Python Language
  3. Starting Out with C++ from Control Structures to Objects
  4. The Go Programming Language