4 ms·
Any Learn To Be A Programmer text that has "Learn to debug" as step one has me won over from the start.
by waterlesscloud 16y ago
Any Learn To Be A Programmer text that has "Learn to debug" as step one has me won over from the start.
- gruseom 16y agoDebugging is a fascinating experience. On the one hand, it's the Jungian shadow of design, forcing you to look at everything that's wrong and unintended and resistant to conscious control in your work. On the other hand, there's the thrill of the chase. I really started to enjoy debugging when it dawned on me that it always ends in a surprise. That follows trivially from the definition: if you knew what the problem was, you wouldn't be hunting for it. But experientially the surprises are often rather dramatic -- as if there's a built-in Agatha Christie plot generator -- and can be quite enjoyable as long as one's genius ego knows how to take a punch.
- scott_s 16y agoI love that thrill. I've gotten around the ego-punch by making "I can debug anything" part of my ego. With that thought in mind, I just don't give up.
- deleted 16y ago[deleted]
- pmiller2 16y agoI concur with this thought. For me, the act of debugging is an act of pure problem solving, even more so than the act of programming. Why the hell is this code acting this way rather than the expected way? And what is the right way to fix it? Oftentimes, programming can be (almost) reduced to pasting together libraries and putting a nice UI on the resulting code[1], but debugging is always a fresh experience. [1] Of course, I know this is a total oversimplification.
- gruseom 16y agoYour comment reminds me of another thought I've had, which is that debugging is the part of programming that's closest to empirical science. You're faced with a piece of reality (a running system) and you don't know how it works.
- calibraxis 16y agoThis could be the best on the subject I've read. But I wish he spent a sentence fragment mentioning sources (like Papert's Mindstorms) which expand on how important an activity debugging is. Some people think that a real innovation of computing is that there's now a word for "debugging". > "Surely 'debugging strategies' were developed by successful learners long before computers existed. But thinking about learning by analogy with developing a program is a powerful and accessible way to get started on becoming more articulate about one's debugging strategies and more deliberate about improving them."
- scott_s 16y agoI came here to say something similar. I just finished teaching programming to complete beginners, and getting them to actively debug was one of my hardest tasks. His comment about programming without being able to debug is programming blind is spot on. When most of my students' code wouldn't work, they were blind. I had to teach them both the questions they had to ask themselves and how to answer those questions. There's a logical process involved that's similar to induction that I suppose I had to figure out on my own. Teaching that process was the hardest thing to do, no question. I said many times during the course that algorithmic thinking will be a kind of thinking that's completely new to them. What I hadn't anticipated was that the thinking required for debugging is actually a level above that.
- drblast 16y agoWhat I find fascinating is that problem solving seems to be so counter-intuitive for some people when to me it just seems natural and obvious. Like you said, "I suppose I had to figure [it] out on my own." I'm the same way; nobody taught me. That you'd have to teach someone that when something goes wrong the first step is to narrow down the possibilities until you find the cause baffles me, but I've had the experience of leading people through that process so many times that I no longer think they're just being obtuse or lazy. It really must be a learned skill.
- jeebusroxors 16y agoI get this a lot when talking to semi technical people about a project I'm working on. Their side of the conversation normally goes something like "Well how did you think of X? But where did Y come from?", to which I reply, I wanted X, X needed Y to work, so I created Y". The question is always asked, and the answers are always similar and I always feel awkward explaining things that are second nature. It's akin to someone asking - so why did you exhale?
- ErrantX 16y agoYep, this was my immediate thought too. The number of new employees I have to drill in the basics of debugging and problem solving is frustrating.