From Little Crane, 12 Years ago, written in Plain Text.
Embed
  1. There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
  2. If debugging is the process of removing software bugs, then programming must be the process of putting them in.
  3. Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
  4. Nine people can't make a baby in a month. (regarding the addition of more programmers to get a project completed faster)
  5. 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.
  6. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
  7. C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg.
  8. When debugging, novices insert corrective code; experts remove defective code.
  9. Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.
  10. Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.
  11. Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
  12. Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
  13. Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?'
  14. The problem with using C++ ... is that there's already a strong tendency in the language to require you to know everything before you can do anything.
  15. 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 each other, like a wall of mini stones.
  16. One of my most productive days was throwing away 1000 lines of code.
  17. 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.
  18. Before software can be reusable it first has to be usable.
  19. Programming is like sex. One mistake and you have to support it for the rest of your life.
  20. If builders built buildings the way programmers wrote programs, then the first woodpecker that came along wound destroy civilization.