In 1987, when I
was a mite younger than I am today, I saw a list of "programming pearls" from
the September 1985 issue of "Communications of the ACM". It was a huge list and
I had to take time off from baking cookies for the grandkids to read it. Well, I picked a
few out and added some that weren't on the list and ever since, I've always kept a printed
version near where I work. Over the years I've added some and deleted some. Here is my
Any fool can write code that a computer can understand. Good programmers write
code that humans can understand. (Fowler)
Debug only code - comments can lie.
If you have too many special cases, you are doing it wrong.
Get your data structures correct first, and the rest of the program will write itself.
Testing can show the presence of bugs, but not their absence.
The first step in fixing a broken program is getting it to fail repeatedly.
The fastest algorithm can frequently be replaced by one that is almost as fast
and much easier to understand.
The cheapest, fastest, and most reliable components of a computer system are
those that aren't there.
Good judgement comes from experience, and experience comes from bad judgement.
Don't use the computer to do things that can be done efficiently by hand.
[Thompson's Rule for first-time telescope makers] It is faster to make a
four-inch mirror then a six-inch mirror than to make a six-inch mirror.
If you lie to the computer, it will get you.
Inside of every large program is a small program struggling to get out.