Donald Ervin Knuth (/kəˈnuːθ/ kə-NOOTH; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University.
I'm obsessively detail-oriented.
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.
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 best practice is inspired by theory.
By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality.
These machines have no common sense; they have not yet learned to "think," and they do exactly as they are told, no more and no less. This fact is the hardest concept to grasp when one first tries to use a computer
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
An algorithm must be seen to be believed.
Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
I can't be as confident about computer science as I can about biology. Biology easily has 500 years of exciting problems to work on. It's at that level.
. . . 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.
I can’t go to a restaurant and order food because I keep looking at the fonts on the menu.
The sun comes up just about as often as it goes down, in the long run, but this doesn't make its motion random.
In fact what I would like to see is thousands of computer scientists let loose to do whatever they want. That's what really advances the field.
In fact, my main conclusion after spending ten years of my life working on the T E X project is that software is hard. It's harder than anything else I've ever had to do.
Meta-design is much more difficult than design; it's easier to draw something than to explain how to draw it.
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.
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 decry the current tendency to seek patents on algorithms. There are better ways to earn a living than to prevent other people from making use of one's contributions to computer science.