When researchers tested students in software programming classes on their debugging and troubleshooting skills, they got a surprising result; even in a group of high achieving programmers, only about 40% could also identify problems in the code and debug it. Needless to say, students with poor programming skills were even worse off.
There are plenty of debugging programs available for various software programs from the xvid codec to the file sharing software Ares, but most are incomprehensible to the average home user. In fact, CNET tested a free debugging system for Windows and even those guys couldn’t figure it out!
A research project in Finland offers some suggestions for improving programmer’s ability to debug a program. The first proposition is that students have to have better program comprehension. That means attention and ability to follow execution code coupled with the ability to make predictions of variables and values and observe how those values look when looking for discrepancies. The programmer really has to understand how the software execution will work on the machine. The researchers claim that the typical debugger only looks at snapshots of execution. Without getting into a deeper, more systematic analysis, they’re less likely to successfully troubleshoot a problem.
Because these are difficult tasks, there are teaching modes that use program visualization and animation of algorithms to make the process easier to understand. The shakedown is that most average computer users aren’t going to find the bug, much less fix it. That will have to be left to the expert with a keen eye, deep understanding and the proper debugging software.
Technology is a complex thing that works great when it works well, but it can be endlessly frustrating when it breaks down. The intricacies of software development no matter if it is a paid software or free open source software from openoffice.org are nothing short of a miracle to the normal person. The student who chooses software development as a career choice must self assess whether he or she posses the patience, attention to detail and systematic ability to problem solve before taking the leap.