I have lots of heros and role models: mathematicians, compter scientists, academics, practicioners, articulate polymaths, and even a politician or two. Here I’ve collected some quotes I like. I’ll periodicaly add to them if I can remember to.
John von Neumann is a great mathematical hero of mine. He’s also emminently quotable. Although I don’t agree with some of his ideas (he advocated use of nuclear weapons: one famous quote of his which I will give here but not as part of my quoteboard was “With the Russians it is not a question of whether but of when”), he was a mathematician and computer scientist of the highest caliber. In fact, the so called “von Neumann arcitecture” for computers is still in use today. (Of course, it’s not quite a simple as that; if you care, see the wikipedia page. In any case, von Neumann had a huge influence on early computers, an influence which we can clearly see in the design of computers even today.)
A large part of mathematics which becomes useful developed with absolutely no desire to be useful, and in a situation where nobody could possibly know in what area it would become useful; and there were no general indications that it ever would be so. – J. von Neumann
[…] in mathematics you don’t understand things. You just get used to them. – J. von Neumann
There is no sense being precise when you don’t even know what you are talking about. – J. von Neumann
Robert McDowell attributes the next quote to von Neumann, but I cannot verify it. Perhaps this is a quote from Prof. McDowell himself!
Mathematicians are not people who think that math is easy, they’re people who don’t mind that it’s hard.
On who software is written for (and by)
Programs must be written for people to read, and only incidentally for machines to execute. – SICP
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. – Martin Fowler
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 to, let us concentrate rather on explaining to human beings what we want a computer to do. – D. Knuth
Design and programming are human activities; forget that and all is lost. – B. Stroustroup
No matter what the problem is, it’s always a people problem. – G. Weinberg
A systems programmer will know what to do when society breaks down, because the systems programmer already lives in a world without law. – James Mickens, MS Research
On testing and debugging
Edsger Dijsktra was a famous computer scientist to spent the latter part of his career at UT Austin. Sadly, I never got to meet him. He has some great quotes.
Program testing can be used to show the presence of bugs, but never to show their absence! – E. Dijsktra
If debugging is the process of removing bugs, then programming must be the process of putting them in. – E. Dijsktra
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. – B. W. Kernighan
Other software quotes
Premature optimization is the root of all evil in programming. – C.A.R. Hoare
The next two I like particularly: Prof. Ousterhout and his collaboraters developed Raft, a distributed consensus algorithm intended as a simpler alternative to an existing algorithm. (In my day job at EpochLabs, we use raft for certain parts of our system.) Here is a quote from him, and then a couple from Dijsktra which seem to back up Ousterhout’s idea that the world needed a simpler algorithm that the existing ones:
The best performance improvement is the transition from the nonworking state to the working state. – J. Ousterhout
Simplicity is prerequisite for reliability. – E. Dijsktra
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague. – E. Dijstra
Lisp is today’s equivalent of Latin. Educated people are supposed to have studied and forgotten it. – Peter Dimov
In general, you should prefer to use actual profile feedback for this [branch prediction information], as programmers are notoriously bad at predicting how their programs actually perform. – GCC 4.9 documentation
On Life, the Universe, and Everything
[…] in the final analysis, our most basic common link is that we all inhabit this small planet, we all breathe the same air, we all cherish our children’s futures, and we are all mortal. – John F. Kennedy
Approx. 802 words, plus code