The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
Edsger DijkstraSimplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.
Edsger DijkstraProgress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
Edsger DijkstraThe tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.
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