There is very little point in trying to urge the world to mend its ways as long as that world is still convinced that its ways are perfectly adequate.
Edsger DijkstraThe effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
Edsger DijkstraIf debugging is the process of removing software bugs, then programming must be the process of putting them in.
Edsger DijkstraIf we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent."
Edsger DijkstraYes, I share your concern: how to program well -though a teachable topic- is hardly taught. The situation is similar to that in mathematics, where the explicit curriculum is confined to mathematical results; how to do mathematics is something the student must absorb by osmosis, so to speak. One reason for preferring symbol-manipulating, calculating arguments is that their design is much better teachable than the design of verbal/pictorial arguments. Large-scale introduction of courses on such calculational methodology, however, would encounter unsurmoutable political problems.
Edsger Dijkstra