Unfortunately, there appears to be some evidence that debugging prowess is an innate
human trait. some people are good at it and others aren't. Although experimenter
evidence on debugging is open to many interpretations, large variances in debugging ability have been reported for programmers with the same education and experience.
commenting on the human aspects of debugging, Shneiderman [shn80] states:
Debugging is one of the more frustrating parts of programming. It has erements of prob_
lem solving or brain teasers, coupled with the annoying recognition that you have made
a mistake. Heightened anxiety and the unwillingness to accept the possibility of errors
increases the task difficulty. Foilunately, there is a great sigh of reliel and a lessening of
tension when the bug is ultimately . . . corrected.
Although it may be difficult to "learn" debugging, a number of approaches to the
problem can be proposed. I examine them in Section 17.8.3.