Is debugging a lost art ?
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Well on one side you are kinda right, on the other you just can't generalize that. I would say it totally depends on their education. Most of them (i guess) are at the starting point or never learned programming. I'm a 1992 build and i had to learn debugging in console with c++... thank god in VS it's so unbelievable easy :)
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
} -
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
BillWoodruff wrote:
Is debugging a lost art ?
I should say so! Personally, I haven't seen a good debugging session since 1990[^]! :doh:
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
I'd just like a chance to prove that money can't make me happy.
Me, all the time -
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
BillWoodruff wrote:
Well, what to do with/for/to people who do not have a clue about debugging
An article describing/demonstrating the basics of debugging and I imagine OG would put in his database as a stock answer where appropriate. Debugging c# is simple, an article would suffice, I would not like to do the same for browser/asp.net/mvc/javascript/etc... there is a lifetime of wasted effort there!
Never underestimate the power of human stupidity RAH
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Maybe beside all the series we already have (HTML, MVC and others) CP should open a content for debugging - it will create a article-base that we can feed to the QA...
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
-
BillWoodruff wrote:
Well, what to do with/for/to people who do not have a clue about debugging
An article describing/demonstrating the basics of debugging and I imagine OG would put in his database as a stock answer where appropriate. Debugging c# is simple, an article would suffice, I would not like to do the same for browser/asp.net/mvc/javascript/etc... there is a lifetime of wasted effort there!
Never underestimate the power of human stupidity RAH
Hi Mycroft, There are some articles here on debugging: and I saw one posted this monththat looked promising: [^]. But, this is a "research article" post by a tool vendor that wants me to share my profile details to download a .pdf file to access any content. And, there are lots of videos on VS/C# debugging: [^]. Perhaps the question is: "how do we lead the horses into the pasture?"
«Tell me and I forget. Teach me and I remember. Involve me and I learn.» Benjamin Franklin
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
I think that debugging is something that is skimmed on when it comes to programming education. I'm not very good at it myself but I've picked up a few tips and tricks that tends to help me. I think a lot lies in recognizing errors and utilizing error codes. A missed semicolon or bracket might not generate a error where the error code by itself will help you but you tend to recognize the structure of the error in your ide fairly quickly. This is the most basic of stuff but too common. I think it should be mandatory when studying programming to early on have a course in debugging to learn how to take advantage of different tools and learn some debugging methods.
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
I think a lot of it is that "programming" is becoming a "required course" in some education systems, just as Maths has been for years. And that means that a heck of a lot of people who have no aptitude - and definitely no interest - in the subject are having to sit through it and then do homework. They are used to courses where thinking isn't an option - memory and Google is enough - so when you get to work which has no right answer but a million different ways to get the right result it throws them. Thinking isn't an easy habit to get into, and the modern world positively encourages you not try it, just "follow the herd" and do what they do, say what they say, like what they like (and of course "buy what they buy"). Debugging isn't just a skill, it's a state of mind - and most of us who came into the industry early already had the right "how does that work?" when we first sat down with a compiler (or a stack of blank cards and a punch machine in my case). But I have seen a few people there who would appear to be trying to hold down a job purely by asking questions in QA - and everyone knows you should use vWorker for that! :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
I think a lot of it is that "programming" is becoming a "required course" in some education systems, just as Maths has been for years. And that means that a heck of a lot of people who have no aptitude - and definitely no interest - in the subject are having to sit through it and then do homework. They are used to courses where thinking isn't an option - memory and Google is enough - so when you get to work which has no right answer but a million different ways to get the right result it throws them. Thinking isn't an easy habit to get into, and the modern world positively encourages you not try it, just "follow the herd" and do what they do, say what they say, like what they like (and of course "buy what they buy"). Debugging isn't just a skill, it's a state of mind - and most of us who came into the industry early already had the right "how does that work?" when we first sat down with a compiler (or a stack of blank cards and a punch machine in my case). But I have seen a few people there who would appear to be trying to hold down a job purely by asking questions in QA - and everyone knows you should use vWorker for that! :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
OriginalGriff wrote:
Debugging isn't just a skill, it's a state of mind
Hi Griff, I like those words ! But, I keep thinking that the situation vis-a-vis debugging knowledge would be equivalent ... for automobiles ... to someone who only uses one forward gear in the gearbox, and tries to go backwards by making a full-circle turn ... then wonders why they get stuck in traffic.
«Tell me and I forget. Teach me and I remember. Involve me and I learn.» Benjamin Franklin
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
If you post a question over on the dark side (SO) you get prompted with similar questions / answers before you submit your own, in an effort to determine if a related / similar question has already been posted which may be helpful. Maybe during the question creation process, we try to eliminate all these sorts of questions before they ever get posted. Before you post this question..... 1. What have you tried so far? 2. Are any of these related questions helpful to you? Whilst we don't want to turn CP into the elitist forum that SO has become, we also want developers to be able to help themselves.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare Home | LinkedIn | Google+ | Twitter
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Have to admit I want to put my fist through the monitor every time I see a question with "Object reference" in the title. When I click the question and see a 300 line code dump with no indication what line the error is on I want to through it out the window. As for debugging tutorials, I tend to refer people to this link Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^] As the adage says, give a man a fish and he'll eat for a day, ask about null reference exceptions and you annoy the living cr*p out of a lot of devs.
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Being a 1970 model I learnt to debug Cobol code using hexadecimal dumps on reams of paper. Sounds awful but in practise it was not too bad, it was just a case of being methodical when one went through the 90+ pages of paper.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
New? Wellllllllll - in the 1980's I had a FTIR* from Hewlett Packard - the software was written in England on IDRIS. The software was rev. 5 and buggy as hell. We got updates - rev 6, 7, . . . etc. - and rarely was a bug fixed. Not contesting what you mention, above, there's also the problem of coders so arrogant that they don't check for bugs. If we go into the current climate, it's beyond coding: so much is manufactured as cheaply as possible and it's left to the consumer to get a replacement. As it turns out, it's cheaper to do no Q/C and replace the items that fail. So, why not with code? After all, how many innocent marks users bring their PC in for a repair due to software problems and the solution is to reload the operating system - trashing all of their data and non-OEM apps. Not debugging? Perhaps it's because it's what has come to be acceptable. * Fourier Transform Infrared Spectrometer
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
-
I think that debugging is something that is skimmed on when it comes to programming education. I'm not very good at it myself but I've picked up a few tips and tricks that tends to help me. I think a lot lies in recognizing errors and utilizing error codes. A missed semicolon or bracket might not generate a error where the error code by itself will help you but you tend to recognize the structure of the error in your ide fairly quickly. This is the most basic of stuff but too common. I think it should be mandatory when studying programming to early on have a course in debugging to learn how to take advantage of different tools and learn some debugging methods.
Member 11683251 wrote:
I think that debugging is something that is skimmed on when it comes to programming education.
Agreed! When I went through programming classes (98-00) we were never taught how to debug. I got a part-time programming job in my junior year and remember finding out about breakpoints and the magical F8 (now F11) key! I also remember starting in classic ASP and javascript and having to get creative on the debugging using alerts or response.writing variable values to see what was happening. It's sooo much easier these days! :)
"Go forth into the source" - Neal Morse
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Wait.. are you implying that posting questions in QA ISN'T debugging??
If it's not broken, fix it until it is
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Its not the art of debugging that is missing, its the whole process of problem solving for which debugging is a tool. Most programming quickie course teach how to write code, but not how to 1 methodically analyze problems, 2 review the evidence, 3 read the code, 4 formulate an hypothesis for the primary cause, 5 use the debugger and other available tools to prove or disprove the hypothesis, 6 repeat as required. This is stuff you had to do when compiles took many minutes and had to be submitted to a mainframe, possibly on punch cards. Now, with a couple of seconds to compile massive solutions, you see them hacking at the code and re-running to see if it is fixed, not checking to see if their changes have 'suboptimal' side effects.
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
Got my CS degree in 03. The only how to debug education I was given was in HS; a number of my peers in college at the time appeared clueless about debugging. The situation with lack of debugging training was made worse by the fact that someone with pointy hair had settled the MSVC vs GCC holy war by mandating that freshman C++ 1/2 were to be taught using Borlands Tools. Neither of my profs, nor any of the student TAs in the labs really had a clue with Borland's stuff and weren't able to show us how to use any of the debuggering tools (Freudian slip, the Borland IDE was horrible at the time). More than a few basically said that for grading they normally just used their favorite compiler and only tried running in Borlands if it didn't work in theirs. Beyond freshman year the general req was just to state what compiler you used when you submitted.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
When I was in HS taking CS we had an entire section on learning to use the debugger. That was because we were taught by someone who knew it was important to understand the entire process no matter the language. Starting with Pascal, then moved into C++, Delphi, Java, etc. In college, one of the required courses for all CS majors was Logic. Imagine requiring someone know how to think through a problem! More often than not, when I get called over to help fix someone else's code because it won't run they have done zero debugging. If I ask if they have added breakpoints and stepped through the code all I get is a blank stare like I've grown a second head. Gotten some of them trained because I stopped helping them if they hadn't. Some of the logic I've seen just hurt my brain. Why on earth would you fire a request to get all the information for a record for each and every page during onload? If you don't need it or it doesn't change, why do you get it again? Are you worried that the database fairy decided to play a prank on you? Along with debugging, I question if orders of efficiency (Big O notation) are taught. It is like when computers got powerful, all the basics got tossed out the window. :sigh:
-
The more I comment on, or answer, QA questions here, the more I think that, apparently, having no knowledge of how to debug seems a common feature of posters. Of course, that conclusion could just be an artifact of the fact that a major reason for the use of CP QA is because the posters are: 1. here because they are tolerated here ... in comparison similar questions on StackOverFlow would be quickly closed ? 2. they're not getting any education about how to debug ? no one showed them how to debug ? they just didn't think of it ? 3. for whatever reasons, they never bother to study the wonderful (to those of us who remember coding in the ancient days) tools in Visual Studio for debugging ? Of course, we could also take the most negative general view: CP QA attracts the lazy, the ignorant, gimme-codez beggars, and the homework-shirking; but, I choose not to take that view, although it's obviously true, to me, that some posters could be described that way. I think we, "older," programmers (from before ... 1991 ... the time of VB with an IDE) had no choice but to learn how to debug, because: we didn't have CodeProject, StackOverFlow. Although, remembering those early days of VB and the UseNet forum ... and the Microsoft UseNet forum for VB ... where people like the amazing Nicholas Paldino (back then's equivalent of OriginalGriff) seemed to be providing support 24/7, there certainly was some support, and community. Microsoft did start providing some MSDN content on how to debug about the time of .NET 3.0; for example: [^]. But, I would assert that valuable material on how to debug was available early on ... to those who looked for it. Well, what to do with/for/to people who do not have a clue about debugging ? I could fantasize there's a forum on CP that is really an on-line course on debugging that takes the user through a series of coding "challenges," demonstrating/educating-about debugging in Visual Studio. But, I doubt the people that actually needed it would use it. And, I'd estimate the "technical cost" to CP to implement that would be prohibitive. On the most general level, I wonder if the expectation of many new programmers ... an expectation driven by marketing that portrays programming as "easy" if you just get the latest whatever ? ... is that they simply don't need to know about debugging ? I'd call that: a "weak hypothesis." When I have students (private, th
I agree - this seems to be a bit of a lost art. I've noticed many new software engineers focused on tools as opposed to understanding what really goes on, so when they run into a problem they often run to me to help them. I think this is part of the "coding is easy" mindset that so many of them have. It takes a lot of practice to debug very well. Learning the basics is relatively easy.
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Marcus Brigstocke, British Comedian
-
Its not the art of debugging that is missing, its the whole process of problem solving for which debugging is a tool. Most programming quickie course teach how to write code, but not how to 1 methodically analyze problems, 2 review the evidence, 3 read the code, 4 formulate an hypothesis for the primary cause, 5 use the debugger and other available tools to prove or disprove the hypothesis, 6 repeat as required. This is stuff you had to do when compiles took many minutes and had to be submitted to a mainframe, possibly on punch cards. Now, with a couple of seconds to compile massive solutions, you see them hacking at the code and re-running to see if it is fixed, not checking to see if their changes have 'suboptimal' side effects.
I like this general discussion - and your post struck a chord - now, I'm not so good at this yet (because I know how to debug & use logging etc so to some extent I 'get away with it' ), but I believe using 'tests'/a testing framework appropriate for whatever dev toolchain is being used, would assist greatly - not sure where it fits in 1-6 but its another 'tool' somewhere in the mix
-
When I was in HS taking CS we had an entire section on learning to use the debugger. That was because we were taught by someone who knew it was important to understand the entire process no matter the language. Starting with Pascal, then moved into C++, Delphi, Java, etc. In college, one of the required courses for all CS majors was Logic. Imagine requiring someone know how to think through a problem! More often than not, when I get called over to help fix someone else's code because it won't run they have done zero debugging. If I ask if they have added breakpoints and stepped through the code all I get is a blank stare like I've grown a second head. Gotten some of them trained because I stopped helping them if they hadn't. Some of the logic I've seen just hurt my brain. Why on earth would you fire a request to get all the information for a record for each and every page during onload? If you don't need it or it doesn't change, why do you get it again? Are you worried that the database fairy decided to play a prank on you? Along with debugging, I question if orders of efficiency (Big O notation) are taught. It is like when computers got powerful, all the basics got tossed out the window. :sigh:
I agree on 'efficiency' - what data structure to use where, knowing its 'general' characteristics with respect to lookups, traversals etc - Im just not how to express the relevant characteristics - I guess thats why Big O is important - it just seems pretty 'dry' as a topic