Donald Knuth
Author of The Art of Computer Programming
Quotes by Donald Knuth
The hardest thing is to go to sleep at night, when there are so many urgent things needing to be done. A huge gap exists between what we know is possible with today’s machines and what we have so far been able to finish.
If you find that you’re spending almost all your time on theory, start turning some attention to practical things; it will improve your theories. If you find that you’re spending almost all your time on practice, start turning some attention to theoretical things; it will improve your practice.
The improvement of style is an important and non-trivial problem.
In fact, my main conclusion after spending ten years of my life working on the TEX project is that software is hard. It’s harder than anything else I’ve ever had to do.
A mathematical formula should never be ‘owned’ by anybody! Mathematics belong to God.
The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'
I can’t be confident that a program is correct if I’ve only thought about it and not run it; but I can be confident that it’s incorrect if I’ve run it and seen it fail.
The most important skill for a computer scientist is problem solving.
We must remember that there are still many things that we don’t know how to do with computers, and that the field is still very young.
The best theory is inspired by practice. The best practice is inspired by theory.
I’ve often felt that the central problem of computer science is how to keep from drowning in complexity.
The goal of computer science is to build something that will last at least until we’ve finished building it.
Programs are meant to be read by humans and only incidentally for computers to execute.
The most dangerous thought that you can have as a creative person is to think that you know what you’re doing.
I think computer science should be called ‘algorithmics’, to make clear that it is not about computers, any more than astronomy is about telescopes.
The meaning of a program is determined by its effect on the computer, not by the intentions of the programmer.
The most important property of a program is whether it accomplishes the intention of its user.
It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.
The best documentation for a program is a clean structure. It also helps if the code is well formatted, with good mnemonic identifiers and labels (if any are needed), and a clear layout.
A computer language is not just a way of getting a computer to perform operations but rather it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.