[b. 1942] Canadian computer scientist
Scroll down
If you're as clever as you can be when you write it, how will you ever debug it?
The only way to learn a new programming language is by writing programs in it.
Kernighan and Ritchie
Each new user of a new system uncovers a new class of bugs.
More Programming Pearls: Confessions Of A Coder.
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
The paper Unix for Beginners (1979)
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.
Controlling complexity is the essence of computer programming.
Another effective technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed “Never mind, I see what's wrong. Sorry to bother you.” This works remarkably well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.
Don't comment bad code ‐ rewrite it.
90% of the functionality delivered now is better than 100% delivered never.