<div>Programming is hard. People are just not very good at being perfect.  And software has to be perfect in some sense to work properly.  This is what makes programming hard.  So the best plan is to work in a tight think, code, test loop. There are plenty of techniques that help you isolate trouble too.   The first technique everyone figures out is diagnostic print statements.  Second is usually learning how to use an interactive debugger for your environment.   Third is often automated testing.   Fourth is code review if you are working with someone else.</div>
<div><br></div><div>For me one of the best tools for programming is prospective documentation.  Call it requirements or system design if you like.  I like to write down in English what I want the program to do before I start programming.  Usual this is nothing very formal.  Just a few sentences and paragraphs, maybe a picture or two that convey the concepts and sequences that will go into the design.  From this I can work out a modular breakdown and some high level functionality goals.</div>
<div><br></div><div>Then I can take each module and goal and break them down further, implement each including automated testing and at least a stub of documentation and finaly integrate them together into a complete system including as much automated integration testing as I can muster.   When the system is finished and if you are lucky people start using your system.   And that&#39;s when it starts getting really hard. </div>
<div><br></div><div><br><div class="gmail_quote">On Tue, May 17, 2011 at 6:39 AM, Mike Bean <span dir="ltr">&lt;<a href="mailto:beandaemon@gmail.com">beandaemon@gmail.com</a>&gt;</span> wrote<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Besides, I know I&#39;m basically just a wanna-be, but my experience of coding is very...different, then the public perception of the work, especially in large projects.  write a couple lines, test, curse at the monitor, tweak, test, curse at the monitor, tweak, throw the monitor out the window.   Get a new monitor, tweak, test again, go out to lunch, get an idea, tweak, it finally works, write a few more new lines and repeat the whole process ad nauseum. <br>

<br>I wrote a python calculator, nothing special, just adds and subtracts.  50 lines.   Took me at least a week.  Granted, it&#39;s not my full time job, but I did some scribbling in various notebooks at Wendy&#39;s over dinner when I could until I could type it out <img goomoji="330" style="margin:0pt 0.2ex;vertical-align:middle" src="cid:330@goomoji.gmail"><br>

<br>Most of the large projects I&#39;ve seen don&#39;t tend to have one person in charge of the whole source,  this guy writes a function, that guy writes the video driver...etc...etc...  To a degree you all end up leaning on each other anyway.   Case and point, <a href="http://www.nerdmeritbadges.com/products/rubberduck" target="_blank">http://www.nerdmeritbadges.com/products/rubberduck</a><br>
<font color="#888888">
<br>Bean<br><br></font><div class="gmail_quote"><div><div></div><div class="h5">On Mon, May 16, 2011 at 11:42 PM, Brian Gibson <span dir="ltr">&lt;<a href="mailto:bwg1974@yahoo.com" target="_blank">bwg1974@yahoo.com</a>&gt;</span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div class="h5">
<div><div style="font-family:Courier New,courier,monaco,monospace,sans-serif;font-size:10pt"><div>&gt; <font size="2">In learning to program, can you get someone else to help debug the programs...?<br><br>Yes. The actual process of explaining your code to someone else often helps to highlight where you made your mistake.<br>

<br><br></font></div><div style="font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:10pt"><br><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><font size="2" face="Tahoma"><hr size="1">

<b><span style="font-weight:bold">From:</span></b> Louis Miller &lt;<a href="mailto:veganguy@canadaseek.com" target="_blank">veganguy@canadaseek.com</a>&gt;<br><b><span style="font-weight:bold">To:</span></b> clue &lt;<a href="mailto:clue@cluedenver.org" target="_blank">clue@cluedenver.org</a>&gt;<br>

<b><span style="font-weight:bold">Sent:</span></b> Sun, May 15, 2011 1:40:31 PM<br><b><span style="font-weight:bold">Subject:</span></b> [clue] debuging programs<br></font><div><div></div><div><br>
<div style="font-family:Arial, sans-serif;font-size:10pt"><font size="2">Hello,</font><div><font size="2"><br></font></div><div><font size="2">      I&#39;m working on the fourth program from the &quot;Learn Python the Hard Way&quot; book. It isn&#39;t working, right. In learning to program, can you get someone else to help debug the programs, or to see that you typed everything correctly, or are you supposed to be all on your own? If it is not inappropriate to get help with this, then how would I go about finding someone online? Maybe, there is a program that compares lines of text, automatically, that you can use?</font></div>

<div><font size="2"><br></font></div><div><font size="2">Louis</font></div><br> <br><hr><span>Get email for your site ---&gt; <a href="http://www.canadaseek.com" target="_blank">http://www.canadaseek.com</a></span></div>

</div></div></div></div>



</div></div><br></div></div><div class="im">_______________________________________________<br>
clue mailing list<br>
<a href="mailto:clue@cluedenver.org" target="_blank">clue@cluedenver.org</a><br>
<a href="http://cluedenver.org/mailman/listinfo/clue" target="_blank">http://cluedenver.org/mailman/listinfo/clue</a><br></div></blockquote></div><br>
<br>_______________________________________________<br>
clue mailing list<br>
<a href="mailto:clue@cluedenver.org">clue@cluedenver.org</a><br>
<a href="http://cluedenver.org/mailman/listinfo/clue" target="_blank">http://cluedenver.org/mailman/listinfo/clue</a><br></blockquote></div><br></div>