Donald Knuth quotes:

+1
Share
Pin
Like
Send
Share
  • I currently use Ubuntu Linux, on a standalone laptop - it has no Internet connection. I occasionally carry flash memory drives between this machine and the Macs that I use for network surfing and graphics; but I trust my family jewels only to Linux.

  • 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.

  • 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.

  • Beware of bugs in the above code; I have only proved it correct, not tried it.

  • 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.

  • 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.

  • People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on eachother, like a wall of mini stones.

  • Everyday life is like programming, I guess. If you love something you can put beauty into it.

  • For his major contributions to the analysis of algorithms and the design of programming languages, and in particular for his contributions to the "art of computer programming" through his well-known books in a continuous series by this title.

  • The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.

  • God is a challenge because there is no proof of his existence and therefore the search must continue.

  • There's ways to amuse yourself while doing things and thats how I look at efficency.

  • 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.

  • An algorithm must be seen to be believed.

  • Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.

  • 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%.

  • A list is only as strong as its weakest link.

  • 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.

  • Premature optimization is the root of all evil.

  • Science is what we understand well enough to explain to a computer. Art is everything else we do.

  • 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

  • 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%

  • 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 designer of a new kind of system must participate fully in the implementation.

  • ... the designer of a new system must not only be the implementor and the first large-scale user; the designer should also write the first user manual. ... If I had not participated fully in all these activities, literally hundreds of improvements would never have been made, because I would never have thought of them or perceived why they were important.

  • 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.

  • Random numbers should not be generated with a method chosen at random

  • 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.

  • The manuals we got from IBM would show examples of programs and I knew I could do a heck of a lot better than that. So I thought I might have some talent.

  • If you optimize everything, you will always be unhappy.

  • Programming is the art of telling another human being what one wants the computer to do.

  • Computers are good at following instructions, but not at reading your mind.

  • I have a hunch that the unknown sequences of DNA will decode into copyright notices and patent protections.

  • The whole thing that makes a mathematicianĂ¢??s life worthwhile is that he gets the grudging admiration of three or four colleagues.

  • Programs are meant to be read by humans and only incidentally for computers to execute.

  • 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.

  • 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.

  • We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

  • AI has by now succeeded in doing essentially everything that requires 'thinking' but has failed to do most of what people and animals do 'without thinking'-that, somehow, is much harder.

  • ...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.

  • 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.

  • The best theory is inspired by practice.

  • By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality.

  • 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."

  • A mathematical formula should never be "owned" by anybody! Mathematics belong to God.

  • The important thing, once you have enough to eat and a nice house, is what you can do for others, what you can contribute to the enterprise as a whole.

  • ...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.

  • How can you own [...] numbers? Numbers belong to the world.

  • The enjoyment of one's tools is an essential ingredient of successful work.

  • Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer.

  • I think people who write programs do have at least a glimmer of extra insight into the nature of God... because creating a program often means that you have to create a small universe

  • I've never been a good estimator of how long things are going to take.

  • I'm obsessively detail-oriented.

  • 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.

  • We should continually be striving to transform every art into a science: in the process, we advance the art.

  • When certain concepts of TeX are introduced informally, general rules will be stated; afterwards you will find that the rules aren't strictly true. In general, the later chapters contain more reliable information than the earlier ones do. The author feels that this technique of deliberate lying will actually make it easier for you to learn the ideas. Once you understand a simple but false rule, it will not be hard to supplement that rule with its exceptions.

  • My first program taught me a lot about the errors that I was going to be making in the future, and also about how to find errors. That's sort of the story of my life, making errors and trying to recover from them. I try to get things correct. I probably obsess about not making too many mistakes.

  • The sun comes up just about as often as it goes down, in the long run, but this doesn't make its motion random.

  • Science is knowledge which we understand so well that we can teach it to a computer; and if we don't fully understand something, it is an art to deal with it.

  • I define UNIX as 30 definitions of regular expressions living under one roof.

  • The psychological profiling [of a programmer] is mostly the ability to shift levels of abstraction, from low level to high level. To see something in the small and to see something in the large.

  • It would be nice if we could design a virtual reality in Hyperbolic Space, and meet each other there.

  • Programming is legitimate and necessary academic endeavour.

  • 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.

  • 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.

  • Meta-design is much more difficult than design; it's easier to draw something than to explain how to draw it.

  • I remember that mathematicians were telling me in the 1960s that they would recognize computer science as a mature discipline when it had 1,000 deep algorithms. I think we've probably reached 500.

  • The best practice is inspired by theory.

  • [The Euclidean algorithm is] the granddaddy of all algorithms, because it is the oldest nontrivial algorithm that has survived to the present day.

  • It is much more rewarding to do more with less.

  • 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.

  • 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.

  • Trees sprout up just about everywhere in computer science...

+1
Share
Pin
Like
Send
Share