There are only two industries that refer to their customers as "users".
Computers are useless. They can only give you answers.
Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why.
I really hate this damned machine
I wish that they would sell it.
It never does quite what I want
But only what I tell it.
A Programmer's Lament
For every complex problem there is an answer that is clear, simple, and wrong.
And the users exclaimed with a laugh and a taunt: It's just what we asked for but not what we want.
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.
The Six Phases of a Project:
- Enthusiasm
- Disillusionment
- Panic
- Search for the Guilty
- Punishment of the Innocent
- Praise for non-participants
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.
Trying to get into the details seems to be a religious issue -- nearly everybody is convinced that every style but their own is ugly and unreadable. Leave out the "but their own" and they're probably right...
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.
Make everything as simple as possible, but not simpler.
The inside of a computer is as dumb as hell but it goes like mad!
Good programmers use their brains, but good guidelines save us having to think out every case.
An API that isn't comprehensible isn't usable.
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.
Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.
First, solve the problem. Then, write the code.
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.
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Computers are good at following instructions, but not at reading your mind.
You're bound to be unhappy if you optimize everything.
If you want a product with certain characteristics, you must ensure that the team has those characteristics before the product's development.
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?' Improve the code and then document it to make it even clearer.
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.
Any fool can use a computer. Many do.
Elegance is not optional.
Copy and paste is a design error.
Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't.
UNIX is simple. It just takes a genius to understand its simplicity.
If the code and the comments disagree, then both are probably wrong.
If you lie to the compiler, it will get its revenge.
Without requirements or design, programming is the art of adding bugs to an empty text file.
I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.
Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
Reference:
http://www.eskimo.com/~hottub/software/programming_quotes.html