Debugging skills are essential because nothing complex works the first time, or the second time or ...Also, the ability to correct your mistakes and survive to be able to do so. Unlike what our Plant Manager expected there are few programmers who get a complex program 100% correct on first pass. Something our IT manager spent quite some time convincing our Plant Manager was how it really went.
Oscilloscopes, network analyzers, logic analyzers, target debuggers, etc ...
All of this stuff is not because we like toys. One of the important tricks to learn is how to translate programming abstraction states in to hardware debugging outputs. It's something most pushing pixels programmers never seem to learn sadly.
Last edited: