This is a note to myself.
Everything in software development has already been invented. People just keep rediscovering it and pretending they invented it. Whatever you think is so cool and new, was copied from Smalltalk, or HAKMEM, or Ivan Sutherland, or Douglas Engelbart, or early IBM, or maybe Bell Labs.
Don’t trust the compiler. Don’t trust the tools. Don’t trust the documentation. Don’t trust yourself.
We don’t need any more computer languages. Still, you will run right off and invent another one. Let me guess, your amazing new language uses IEEE-754 math and fixed-precision integers. Your amazing new language is broken.
Maintaining code is harder than writing it. Writing lots and lots of new code can be a mark of laziness.
You have been taught to program as though memory, processor time, and network bandwidth are all free and infinite. It isn’t, it isn’t, and it isn’t. Read the rest of Knuth’s paragraph about premature optimization.
You’re going to forget what your code does in a few months. Make it ridiculously easy to read.
Sometimes, all you need is a one-liner in sed. (KISS principle)
Beware of programmers who speak in absolutes, such as My Method Is Always Better Than Yours. Programming is an art, not a religion.
If you know you will do a fixed sequence of steps more than ten times, automate it.
Backing it up is one thing. Restoring it is another.
Just because it works on your machine does not mean there is not a bug. -Piers Sutton
Wait for the point-one release of development tools before installing them. Let other people be guinea pigs.
Good programmers write good code. Great programmers write no code. Zen programmers delete code.
No matter how many managers are screaming at you, the first step is to reliably replicate the bug.
Sooner or later, you will meet some older man who has been around for a while. At some point, this man will lecture you about the Laws of Programming. Ignore this man entirely.