Random numbers should not be generated with a method chosen at random Donald Knuth More Quotes by Donald Knuth More Quotes From Donald Knuth 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. Donald Knuth fields want facts I have a hunch that the unknown sequences of DNA will decode into copyright notices and patent protections. Donald Knuth patents dna science 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. Donald Knuth statistics important names Premature optimization is the root of all evil. Donald Knuth roots evil science The best theory is inspired by practice. Donald Knuth inspired theory practice ...methods are more important than facts. The educational value of a problem given to a student depends mostly on how often the thought processes that are invoked to solve it will be helpful in later situations. It has little to do with how useful the answer to the problem may be. On the other hand, a good problem must also motivate the students; they should be interested in seeing the answer. Since students differ so greatly, I cannot expect everyone to like the problems that please me. Donald Knuth learning educational hands Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. Donald Knuth learning change attitude 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. Donald Knuth program digital computer By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality. Donald Knuth understanding use reality I can’t go to a restaurant and order food because I keep looking at the fonts on the menu. Donald Knuth fonts restaurants order My general working style is to write everything first with pencil and paper, sitting beside a big wastebasket. Then I use Emacs to enter the text into my machine. Donald Knuth machines style writing 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. Donald Knuth study trying people ...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. Donald Knuth learning writing book 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 Donald Knuth running two thinking How can you own numbers? Numbers belong to the world. Donald Knuth numbers world Beware of bugs in the above code; I have only proved it correct, not tried it. Donald Knuth funny-inspirational bugs computer People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird. Donald Knuth should-have writing ideas Whenever the C++ language designers had two competing ideas as to how they should solve some problem, they said, "OK, we'll do them both". So the language is too baroque for my taste. Donald Knuth taste two ideas When you write a program, think of it primarily as a work of literature. You're trying to write something that human beings are going to read. Don't think of it primarily as something a computer is going to follow. The more effective you are at making your program readable, the more effective it's going to be: You'll understand it today, you'll understand it next week, and your successors who are going to maintain and modify it will understand it. Donald Knuth writing next-week thinking 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%. Donald Knuth strong opportunity thinking