One of the hardest things for students to learn how to do is to debug their code. I think that most students are somewhat surprised when their programs don't work. They get over that surprise pretty quickly of course because bugs are pretty common place. The more someone codes the more bugs they create. So debugging is quite an important skill.
Important doesn't mean it is easy to learn. Recently an announcement came through a mailing list I am on about a set of videos that have been created to help students learn how to debug their code. These videos include a wide variety of common problems discovered by students in CS1 and CS2 courses in college. Of course beginners discover many of these same problems not matter how old or young they are and wether they are learning on their own or in school.
The videos I watched seem to be mostly based on Java and C++ but should work with most "C-style" languages. The basic concepts work with other languages as well. The people behind it (the ITiCSE Debugging Repository Working Group) are looking for students and teachers to use these videos and to provide feedback for future development. So check them out here. I'd love to know what others think about them.