An algorithm must be seen to be believed.— Donald Knuth
The most strong Donald Knuth quotes that will transform you to a better person
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.
Computers are good at following instructions, but not at reading your mind.
Random numbers should not be generated with a method chosen at random
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.
Science is what we understand well enough to explain to a computer. Art is everything else we do.
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.
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.
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 have a hunch that the unknown sequences of DNA will decode into copyright notices and patent protections.
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.
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.
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%
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.
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
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.
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.
A list is only as strong as its weakest link.
Beware of bugs in the above code; I have only proved it correct, not tried it.
The enjoyment of one's tools is an essential ingredient of successful work.
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 Euclidean algorithm is] the granddaddy of all algorithms, because it is the oldest nontrivial algorithm that has survived to the present day.
It would be nice if we could design a virtual reality in Hyperbolic Space, and meet each other there.
The designer of a new kind of system must participate fully in the implementation.
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.
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.
Programming is legitimate and necessary academic endeavour.
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
It is much more rewarding to do more with less.
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.
Programs are meant to be read by humans and only incidentally for computers to execute.
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.
I can’t go to a restaurant and order food because I keep looking at the fonts on the menu.
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 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.
How can you own numbers? Numbers belong to the world.
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 define UNIX as 30 definitions of regular expressions living under one roof.
Everyday life is like programming, I guess. If you love something you can put beauty into it.
A mathematical formula should never be "owned" by anybody! Mathematics belong to God.
... 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.
I've never been a good estimator of how long things are going to take.
Programming is the art of telling another human being what one wants the computer to do.
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.
I'm obsessively detail-oriented.
There's ways to amuse yourself while doing things and thats how I look at efficency.