As soon as we started programming, we found out to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification.
Testing proves a programmer’s failure. Debugging is the programmer’s vindication.
Software testing techniques by Boris Beizer
ISBN: 0442206720 This book is available from Amazon
There has never been an unexpectedly short debugging period in the history of computers.
People get annoyed when you try to debug them.
Debugging is an art that needs much further study. The most effective debugging techniques seem to be those which are designed and built in to the program itself. Another good debugging practice is to keep a record of every mistake that is made. Even though this will probably be quite embarrassing, such information is invaluable to anyone doing research on the debugging problem, and it will also help you learn how to reduce the number of future errors.
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.
If debugging is the process of removing bugs. Then programming must be the process of putting them in.