Before software can be reusable, it first has to be usable.
Good judgment comes from experience, and experience comes from bad judgment.
Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why it works. Programmers combine theory and practice: Nothing works and they don’t know why. It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilisation.
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
If debugging is the process of removing bugs, then programming must be the process of putting them in.
There are two ways to write error-free programs; only the third works.
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.
I did say something along the lines of “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off.”
If the code and the comments disagree, then both are probably wrong.
As we said in the preface to the first edition, C “wears well as one’s experience with it grows.” With a decade more experience, we still feel that way.
Simplicity is prerequisite for reliability
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
Every program has (at least) two purposes: the one for which it was written, and another for which it wasn’t.
Copy and paste is a design error
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.