[nSLUG] Re: C++ beginner references

Miles Thompson milesthompson at ns.sympatico.ca
Tue Oct 21 09:26:24 ADT 2003

At 04:00 AM 10/21/2003 +0100, you wrote:
>On Mon, Oct 20, 2003 at 03:42:14PM -0300, Jeff Warnica wrote:
> >
> > As a disclamer: Im not a programmer.
>The time spent by a student writing a program is minimal, most of my
>undergrad programs were written in a less than an hour. Most of the time,
>past the first 10-20 minutes my time was spent debugging, so I suggested
>languages that are easier (IMHO) to debug. In the work place I spend most
>of my time planning, debugging, and maintaining software not writing
>new code. Quick and easy to code is not the only focus a programmer
>should have IMO.
>Perl is not the easiest language to debug, the multiple intereprations of
>symbols depending on context, the weak typing, the culture of obfuscated
>code, the evolved rather than planned designed which allows you to shoot
>yourself in the foot with great speed, ease, and few bytes - nothing I want
>near anyone trying to master first steps of programming.

I've been following this thread with interest. My background is probably 
atypical, as I started with CDC BASIC,   FoxPro / Pascal, other BASIC's, 
Python and, more lately, PHP for web sites. I've always suspected that I've 
never been a "real" programmer, as I've only played a bit with C, never 
used it in anger.

Despite that, the applications have worked, customers have been satisfied, 
and I've taken enough care to ensure that when I returned in 6 months I was 
able to understand what I'd done.

The two most important things when learning to program are understanding 
what you want to do and working out an algorithm before touching the 
keyboard, and understanding what you want to do and working out an 
algorithm, again, before touching a keyboard. A road map is essential. (God 
forbid, I'm nearly recommending pseudo-code rather than jumping right in!)

After that, a language which enables easy trials, has a tight write-run 
loop, has a clear and enforceable syntax, and provides adequate debugging 
information speeds the learning process. In this case, I'd recommend Python.

Compare this with learning to drive - starting out it's important to keep 
between the ditches, but more importantly to learn how to see and read 
traffic, to maintain situational awareness and to develop a feel for the 
road. Same thing with programming, the skills are v. transferable. Starting 
with a language which facilitates clear and comprehensible code really helps.

Hope this helps, Vikram - Miles

PS As for Perl, I fully concur with the assessment included above; 
undoubtedly a fantastic tool for those who learned it, and once learned, 
probably useful for almost everything. 

More information about the nSLUG mailing list