C++ and programming

Derek Neighbors plug-discuss@lists.plug.phoenix.az.us
Fri, 3 Jan 2003 10:56:04 -0700 (MST)


> On Fri, 2003-01-03 at 04:17, Aaron Cordova wrote:
>> I switched from M$ Windows to linux thinking I would sorta be forced
>> to  learn more programming. I have had two college classed in C++ but

I actually think using UNIX forces you to know more tools, but actually
signficantly cuts down the amount of code you have to write.  For example,
there are about 10,000 'utilities' and 'tools' in UNIX that replace what
you would have to write a custom windows application for. ex: I have it so
that I download digital photos from my camera into a set directory.  Then
a cron job swipes them out and moves one copy to BurnQueue and another
size to a directory to be 'resized' to a reasonable image by mogrify. 
Then its moved to a directory for iGal to create a gallery of.  I am then
notified when the burn queue is approaching the size of a cd to burn.

This is nothing more than a few one line bash scripts and existing tools
and programs.  Not what I would call 'real programming', but to do the
same on windows I would likely have had to written a program.

>> I have yet  to learn how to really "Code" not once in either classes
>> was any serious  application programming taught. I need to learn to
>> program desperately. But  trying to sit down and page through code is
>> very very boring. When I'm  debugging I can spend hours in front of

If paging through code is boring, I would suggest another career. 
Programmers have to do lots of paging through code.

>> the terminal, same with trying to  hack one of my friends programs.
>> But whenever I try to hack/figure out, a  complex app I get frustrated
>> because right off the bat the code gets very  advanced or is commented
>> in a way only a guru would understand.

The best way for many people to learn programming is to program.  That is
start by writing very simple programs to get the basics.  Then dissect
some moderately difficult programs to learn some advanced 'tricks'.  Then
take and write an application from scratch of similar difficulty.  Rinse
and repeat.  Going from Hello World to trolling through Konqueror source
for example would seem silly to me.

That said, the best way to get experience is to get thrown in the fire.

>> I have read a few c++ books but they are almost all the same, covering
>> the  same thing over and over. Can someone recomend a book or a method
>> to help me  to break out of newbie code? I would greatly appreciate
>> it.

Join a free software project that interests you.  Offer to help.  Ask to
be put to work.  With GNU Enterprise we regularly mentor people on Python.
 We try to give them tasks suitable to their level and then answer
questions they may have about how things work.  Its a good trade off for
us.  We could probably do some of the work faster our selves, but in the
end we have more people understanding the internals which helps us in the
long run.

The give a man a fish or teach a man to fish principle I suppose.

-Derek