Fully agreed. Debugging skills are not that hard to teach, while of course practice makes perfect.
Debugging is not limited to EE/CS courses of course. The sound on the TV doesn't work? But you still get a picture? So the HDMI cable is carrying the video correctly. Sound goes through the same cable, so it's not a cable issue. Do you hear sound if you switch to another input? Then the speaker is working fine. And so on. Divide and conquer.
Debugging (figuring out problems) relies on a handful of basic principles:
- having some understanding of how the system works
- looking for differences. A works, B doesn't. What are the differences between A and B?
- tracing issues through components (the data we care about makes it to the database, but the UI doesn't show it)
That's about it. Definitely teachable.