Live data from Hacker News

Why Don't Schools Teach Debugging?

danluu.com

61–70 of 132 posts

Re: Why Don't Schools Teach Debugging?

#61

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

CS prof. here.

We don't want to teach "tools" (e.g. IDE) because they are always changing. There is no point is knowing how to set up an IDE when the IDE will have a different GUI before the student graduates. We teach"unix tools" a bit more because they did not change much during the last decades.

My goal is to teach "concepts" (which is hard) and use tools as examples of these concepts. Dealing with the specifics of a particular IDE or tool is pointless. We are trying to give students general skills that will be useful for the whole life of the students, and not skills that the industry needs this year.

That said, I do my best to teach debugging (mainly using gdb and valgrind). The real issue with debugging is that it relies on a lot of experience, which students do not have, by definition.

Re: Why Don't Schools Teach Debugging?

#62

Earlier quoted context omitted.

The purpose of a CS course is not necessarily to teach people to become developers. Indeed it would be interesting to know what % of CS grads even work as programmers post graduation, probably less than HN would imply. Based on the people I keep in touch with from my graduation class, I would put it somewhere near 30%.

I'm curious - what do the remaining 70% do?

[deleted]

Re: Why Don't Schools Teach Debugging?

#63
This is an excellent essay. I remember sitting in my parents’ basement in high school with a fully assembled electronics board that I’d soldered together from a schematic, and no idea what to do about the fact that it didn’t work. Had I understood that learning how to build involved learning how to debug, I’d probably have built more things and fewer programs (for better or worse).

I must have known this about software and math, in order to be doing what I was doing in those areas then, but not figured out to generalize it to {electronics, mechanical objects, project plans, social interactions, habits and motivational systems, and creative writing} — and only partially to writing essays.

Re: Why Don't Schools Teach Debugging?

#64
post #24

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

We didn't even learn what source control is, let alone a tool like Subversion. We used it because some of us were familiar with it, but tools in general weren't taught.

I was taught version control. In fact, university made very sure to emphasise proper source control in our second year group project, even to the extent of making one person in each group the "code librarian", responsible for making sure the code of the various members fitted together, was properly controlled, and safely backed up (which was me).

And of course the nightmare situation occurred. The project manager (read: no !*&^£ clue) "accidentally" deleted the entire source control repository. Reconstructed from backups from three hours previously, plus changes from peoples' working copies within half an hour.

Re: Why Don't Schools Teach Debugging?

#65
post #61

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

CS prof. here. We don't want to teach "tools" (e.g. IDE) because they are always changing. There is no point is knowing how to set up an IDE when the IDE will have a different GUI before the student graduates. We teach"unix tools" a bit more because they did not change much during the last decades. My goal is to teach "concepts" (which is hard) and use tools as examples of these concepts. Dealing with the specifics o…

Thanks for the comment. I agree that tools go obsolete quickly. But it occurs to me that debugging is both a set of tools but also a knack.

I'm curious what you think about how to teach the knack.

Re: Why Don't Schools Teach Debugging?

#66
post #19
post #2

Yeah there are two fundamental things that are not taught well in many (not all) computer science programs. 1. Debugging as the author explains. 2. How to properly use version control and work with others using version control on the same codebase. Hopefully Github for education will help with this one.

The author is talking about engineering not cs classes. That being said, I would completely agree with you, having been through a cs degree myself. Version control and working in a group with it would have been very beneficial in school. Although, when I was in school that would have meant svn not git which I have grown to love, but felt the pain of having to learn the hard way.

[deleted]

Re: Why Don't Schools Teach Debugging?

#67
post #29

Earlier quoted context omitted.

Does anyone have advice for learning this kind of "intuitive, heuristic, holistic way of grokking circuits"?

Buy the radio shack 150 in 1 electronics lab. Complete all 150 projects. In between play with Lego Technics. Buy all the parts and a breadboard, do 10 projects using solder to make the result permanent.

Do radio shack still edit it ? It does not look like it still does

Sparkfun should propose something similar then :)

Re: Why Don't Schools Teach Debugging?

#68

I never knew this was a problem in EE, but I know for a fact it's a huge issue in CS. They don't want to teach any "tools" b/c CS professors find teaching people how to be good developers as beneath them. They honest to god think CS is an actually hard science on par with math and physics. You can sum up their attitude with: "It's not an associates degree goddamnit!" (even though it should be) Another source of reluc…

> They honest to god think CS is an actually hard science on par with math and physics.

Theoretical computer science is a branch of mathematics. Don't dismiss the whole field just because your university chooses to under represent the theoretical side.

Re: Why Don't Schools Teach Debugging?

#70
It's not debugging as much as what us old timers call troubleshooting. At the university I had an insane advantage over those folks that had never seen a Simpson multimeter nor soldered a component nor seen a schematic. I had spent my teenage years building radios and computers followed by formal training in the military. And the Navy taught us how to troubleshoot large systems down to the component level. So college was mostly easy and extra beer money was earned fixing other students electronic devices and tutoring.
Post reply on HN