My Class With Edsger Dijkstra
In 1994, I took a course with Edsger Dijkstra at the University of Texas at Austin. His approach to rigor left a lasting impression. In our first meeting, he asked us to write down every symbol we used (letters, upper and lower case, numbers, Greek letters, punctuation, and so on) and then to adjust our handwriting so that no two marks could be confused. The lesson was simple: ambiguity in notation breeds ambiguity in thought. He also insisted that when we answered questions, our arms remain at our sides to prevent “hand waving.”
After my one-on-one exam, where he asked me to prove a theorem about positional numbering in an arbitrary prime base, and after I managed it with a modicum of prodding (I still got an A), I asked him for a signed reprint of his classic essay The Humble Programmer. He pulled it off the shelf, signed it, and handed it to me. It remains one of my most meaningful artifacts, and a reminder that clarity, precision, and humility are as important in writing code (or philosophy!) as they are in mathematics.
His lessons impressed on me the limits of how much complexity a human mind can manage before it exceeds our ability to make sense of it. We must always be humble in the face of extreme complexity.