Donald Ervin Knuth (/kəˈnuːθ/ kə-NOOTH; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University.
Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration.
I define UNIX as 30 definitions of regular expressions living under one roof.
We should continually be striving to transform every art into a science: in the process, we advance the art.
I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don't have time for such study.
The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.
The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language.
How can you own [. . . ] numbers? Numbers belong to the world.
Programming is the art of telling another human being what one wants the computer to do.
By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality.
Always remember, however, that there’s usually a simpler and better way to do something than the first way that pops into your head.
I've never been a good estimator of how long things are going to take.
The book Dynamic Programming by Richard Bellman is an important, pioneering work in which a group of problems is collected together at the end of some chapters under the heading "Exercises and Research Problems," with extremely trivial questions appearing in the midst of deep, unsolved problems. It is rumored that someone once asked Dr. Bellman how to tell the exercises apart from the research problems, and he replied: "If you can solve it, it is an exercise; otherwise it's a research problem. "
It is much more rewarding to do more with less.
TeX has found at least one bug in every Pascal compiler it's been run on, I think, and at least two in every C compiler
The best theory is inspired by practice.
. . . One of the most important lessons, perhaps, is the fact that SOFTWARE IS HARD. From now on I shall have significantly greater respect for every successful software tool that I encounter. During the past decade I was surprised to learn that the writing of programs for TeX and Metafont proved to be much more difficult than all the other things I had done (like proving theorems or writing books). The creation of good software demand a significiantly higher standard of accuracy than those other things do, and it requires a longer attention span than other intellectual tasks.
The best programs are written so that computing machines can perform them quickly and so that human beings can understand them clearly. A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct.
The process of preparing programs for a digital computer is especially attractive, not only because it can economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.
Meta-design is much more difficult than design; it's easier to draw something than to explain how to draw it.
The sun comes up just about as often as it goes down, in the long run, but this doesn't make its motion random.