Quotes by Donald Knuth

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

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

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

On why bioinformatics is very exciting.  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.  

Knuth points out that a defining characteristic of programmers is their
 ability to shift between levels of abstraction.

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.  

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.  

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

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

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

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

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

I can't go to a restaurant and order food because I keep looking
 at the fonts on the menu.

E-mail 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

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.  

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

An algorithm must be seen to be believed.  

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.  

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

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

The reason is not to glorify "bit chasing"; a more fundamental
 issue is at stake here: Numerical subroutines should deliver results
 that satisfy simple, useful mathematical laws whenever possible. [...]
 Without any underlying symmetry properties, the job of proving
 interesting results becomes extremely unpleasant.

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

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

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

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.  

Premature optimization is the root of all evil (or at least most
 of it) in programming.  

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.  

Wikimedia Foundation

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.