Computer scientists have created some of the most complex objects that human beings have ever designed and built. The largest programs contains tens of millions of instructions. If printed on paper and bound in books a single large program would fill hundreds of volumes. No single person can fully comprehend a large program. Large teams work for many years to create the most ambitious software. New members join and experienced contributors depart at every stage.
The smallness of electronic devices should impress us. The coordination of human beings in the development of software should impress us more.
Computer scientists seek ways of describing problems and methods for their solution concisely and unambiguously. Programmers must always write for at least two audiences. On the one hand, they write for a machine. On the other hand, they write for human teammates and clients. The contrast between the needs of human readers and the machine’s limitations challenges software engineers.
Sophisticated mathematics, clever codes, and inventiveness of individual programmers should impress us. Successful communication among diverse developers and their clients should impress us more.