It is easy to empathize. The ethic of school has rubbed off too well. What we see as a good program with a small bug, the child sees are "wrong," "bad," "a mistake." School teaches that errors are bad; the last thing one wants to do is pore over them, dwell on them, or think about them. The child is glad to take advantage of the computer's ability to erase it all without any trace for anyone to see. The debugging philosophy suggests an opposite attitude. Errors benefit us because they lead us to study what happened, to understand what went wrong, and, through understanding, to fix it. Experience with computer programming leads children more effectively than any other activity to "believe in" debugging....except when it doesn't.
The problem, in my experience, is that we too often don't teach programming with this debugging perspective. And students are still too often scared of trying something in a guided fashion until they figure it out (and actually make sure they understand it as well).
This is something I want to be particularly mindful of in all the courses I'm teaching in the upcoming year, from first to third year. I'm hoping to explicitly talk about solving problems this way, set an example during class, and somehow work it into active learning activities, labs, and assignments.
If you have any suggestions for how to succeed at this, please help me out!