The Humble Programmer

Turing Award Lecture: "The Humble Programmer," by Ew Dijkstra - 1972.

Printed in Classics in Software Engineering Yourdon Press, 1979. ISBN 0917072146

You can read the original paper, shown in CACM 1972 V15 #10, on the internet at www.cs.utexas.edu

Not to be confused with Humble Programmer, a Programmer Stereotype.


Those who want really reliable software will discover that they must find a means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper.

If you want more effective programmers, you will discover that they should not waste their time debugging - they should not introduce the bugs to start with.

We should confine ourselves to intellectually manageable programs.

We must not forget that it is not our business to make programs; it is our business to design classes of computations that will display a desired behaviour.

It is a usual technique to make a program and then to test it. But:
program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.

The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.

The question:
"Can you code this in less symbols?" or, "Guess what it does?" - as if this were of any conceptual relevance!

As long as machines were the largest item in the budget, the programming profession could get away with its clumsy techniques.


See original on c2.com