   Is it rare for schools to teach debugging???
  Something that's been bugging me lately is how little many people use the debugger when trying to track down problems.I expect to see a lot of these posts in the For Beginners... forum, since that is what it is there for. But even at work lately people will come to me and say "Hey, this weird thing is happening when I do 'this' do you know what's wrong???". The first question I always have for them is whether they've used the debugger to set a breakpoint and step through the code to find the problem. Rarely is the answer ever "yes". Personally, using the debugger was something I had to teach myself. In four years my university never once even showed me how to set a breakpoint (or even what a breakpoint was for that matter). Is this a familiar experience for anyone?Anyways, I was just wondering why colleges and university didn't invest more time in taking a class or two to just get the basics covered? I know debugging isn't the most exciting topic, but it is definately one of the more important ones that can be covered (and honestly, even people struggling at programming would understand how to debug something if they could see a hands on lesson put on by the professor showing how to set breakpoints, how to step in/over, and how to make use of the other various debugging windows).   
  In my university's Intro to Programming course, we had an entire lab period dedicated to learning about common debugger functions like stepping through code, setting breakpoints, using logging statements, and the like.And then I forgot how to use most of those tricks. Such is life.   ;  I disagree that debugging isn't the most exciting topic, it can actually be quite interesting :). But yeah, was forced to take a few programming classes at my university, and I don't recall them even teaching us about debugging in a superficial way, let alone how to do it properly.   ;  It's nice to see that your school actually tries to teach it (although I can see it being something students would brush off really easily. "You mean this isn't going to be on the exam? zzzzzzzzzzzzzzzzzzzz").Thanks for your input.   ;  I think many schools teach how to debug using gdb specifically.  This makes a lot more sense, because for people in their freshman year, many of them have probably never or rarely used linux before college, and debugging in gdb seems much more complicated than something like visual studio.   ;  I got a couple of emails from professors after my article was published, thanking me for some material that they could finally give to their students on the subject. So it sounds like it is rare for schools to teach it. It's understandable, because it's really difficult to teach - most of the skill comes from a really solid understanding of how your technology can work, and beyond the basics of "this is a breakpoint, this is a watch" it's almost all situation-specific.It's also hard to examine, as noted, though coursework may be an option for some universities.   ;  We learned a lot of different language and of course at some point you need to find way to debug but we never really had a class about debugging. I learned it at home mostly and at work afterwards.   ;  I think lots of universities use command-line versions of C++ - my C++ course was.   Although, we used JBuilder for Java and I don't remember them mentioning the debugger there either. It's one of the most important skills a programmer needs to be productive IMO.   ;  Hmmm, this thread brings up a good point; while I can't speak for the first year of my degree I don't recall being given any information on debugging in the 2nd or 3rd year. Infact, during the 2nd year, when we were working on GUI apps in Java various monkeys in my class would often come to me saying 'whats wrong? why has it broken?' to which my first reply was normally 'what does the stack trace say?' (for reference we were using Borland J Builder which dumps its stack trace in red letters in the output window). This would earn me a blank look until I taught people how to read the output to find out where things exploded.I don't even recall being taught it when I was first at uni, back then I probably used the tried and tested 'print something out' method as I hadn't puzzled out the debugger at this point; I since have and it's become an invaluable tool for working out the insanity which is my programming [grin]   ;  We got shown how to use the debugger,stepping through code, using the call stack, how to track or find memory leaks.  Even when being taught or shown algorithms we always had to single step through them to show what was happening to the variables.Then we had to do mobile development and we were all screwed because there was no debugger and we had to write our own debugging functions.