Hi Steve! Thanks for the rapid response to my query with regards to
programming under Linux.  Just a few words...

Steve Philp wrote:

<snip>

>
> Excellent!  You've picked a wonderful development environment.  One that
> allows you to experiment to your heart's content with extremely little
> cost.
>

I am very pleased in your encouraging words above, and what you had to say
there simply reaffirms one of the many reasons I am abandoning Windows as
development environment of choice and moving to Linux.  The nice thing is
that I intend to start with a higher-level language such as C/C++, but
intend on going down from there to much lower-level programming using
assembly language.  Unfortunately (or maybe fortunately), I was born with an
inquisitive mind that is always questioning the hows and whys something
works.  I, for one, am simply never satisfied until I've picked things apart
to find the "least common denominator" in how it works.  My philosophy is
that, to be a true, knowledgeable programmer, one must know the machine.
And what better way to become proficient than to try "thinking" like the
machine for a while!?!?

I had been duped by some who told me not to pursue assembly language because
it is outdated and isn't practical in todays fast-paced world.  However, I
finally was able to see through their blindness FOR them.  Todays machines
still "think" and process information in many of the same ways as
yester-years computers.  Only differences are processing power, speed and
memory needs.  So, in my opinion anyway, it appears that assembly language
should be just as valid today as it always has been.  PLEASE correct me if
I'm wrong on this.  But I've seen people write programs in assembly that
could never be done using a high-level language.  This, as I understand, is
right where a programmer WANTS to be.  Am I on the right track here??

<snip>

>
> One of your best friends as a Linux/Unix user will be O'Reilly and
> Associates.  They publish a wide variety of books on various Unix-ey
> topics that are generally considered to be the absolute best references
> available.  They have an excellent series of 5 or 6 books on Perl, a
> couple on Python, and a couple that cover beginning C and C++.
>

Very good!  O'Reilly is what it is. :o)  I already have purchased two books
from O'Reilly.  "Learning Perl" and "Programming Perl".  Both are absolutely
superb, and even throw in a great sense of humor, which makes the learning
process feel more human than some other references.  So, with my previous
experience with O'Reilly, combined with your affirmation that O'Reilly
cannot be beaten, I shall visit their website and indulge on all of the
happenings of the time.

>
> I'd recommend a different book for learning C and C++ though.  "C: How
> to Program" and "C++: How to Program" are published by Prentice Hall and
> have served well as a "do it yourself" classroom for learning the
> languages.

I will check for these two titles on Amazon.  Copperfield books here in our
area is excessively lame in carrying the "right books for me".  Of course, I
don't like considering myself an "average user" either, which is who they
cater to mainly because there are more of them than us
"do-it-yourself'ers".  Thanks for the recommendation in Prentice Hall, I'm
sure it will come in handy.

>
>
> Overall, you'll find that you want to avoid the SAMS titles.  They're
> very rarely worth the paper that they're printed on.  There were enough
> errors in the "Teach Yourself Perl in 21 Days" book that I simply gave
> up on day 7 or 8.
>

I understand EXACTLY what you are saying in that SAMS books are riddled with
numerous errors.  A good example is Listing 8.3, in "Teach Yourself C in 21
Days", there is a program one is asked to enter and run, called "RANDOM.C".
It is supposed to print random numbers using a three dimensional numeric
array.  I typed it in and compiled, just to find out something was missing
from the listing (and I don't believe it was left out intentionally).  The
problem is that they omitted the fact that, for the program to work, one
needs to call the conio.h function, in addition to stdio.h and stdlib.h ;
They also tried to give an array the name RANDOM[] which the compiler
complained about profusely due to its being a reserved C keyword.  The
hilarious thing about this "bug" in their supposed educational text, is that
the various libraries aren't discussed until numerous chapters later.  I
caught this little "glitch" in their text, but I am wondering how many new
programmers out there ended up quitting because of such errors and feelings
of inadequacy?  One can only guess at the numbers we're talking about here.
LOL

<snip>

>
> For standard GNU libraries (glibc, stdc++, termcap, ncurses, etc),
> you'll find documentation in the /usr/info directory.  The info file
> reader is a bit hacky to try to use for very long, but if you're
> familiar with Emacs, you'll probably like the reader.  A number of the
> library packages also include some sort of documentation and reference
> material in /usr/doc/<package>.
>

Most excellent!  Not only am I very new to the world of programming, but
also of the various Unix-es/Linux.  I'm getting there, with a successful
install of Red Hat, then Slackware, then on to SuSE, and finally have found
my liking in Mandrake.  I always did like Red Hat out of all the others,
even though I am a purist and feel RH could lead a portion of the Open
Source Linux purists astray given enough time.  However, one cannot deny
progress either, and Mandrake appears to have a very realistic outlook in
becoming the "desktop user's" version of Linux.  Once this occurs, I imagine
that more and more people will want good programs to run once they've
finally liberated themselves of the Microsoft cesspool.  I like Slackware
due to a more purist-type mindset and for running servers.  However, I
believe I will keep my Mandrake system now, as it helps in the way of
decreased productivity time for a change.

>
> The nice part of Linux (and the open source/free software world in
> general) is that you can tear into other applications to see exactly how
> they work.  There's nothing better than reading some wonderfully written
> code to show you how various libraries should/are used.
>

You are absolutely correct, and I have found myself tracing the steps other
programmers have taken in programs such as LICQ, MICQ, etc.  I even took a
glance into the Linux kernel source and finally got totally lost with all
the hex and assembly material embedded within it.  But looking at all the
0xXXX codes looks like something of a challenge, and I LOVE a good
challenge. :o)  Thanks to open source, it makes a lot of things possible now
that never were before.  Todays programmer has a MAJOR advantage over
yesterdays newbies, if ONLY the individuals will open their eyes and see
what is in front of them.  I'm glad I have been awakened from my slumber!

<snip>

>
> Distributions tend to do a pretty good job of ensuring that the items
> they ship all work well together.  There are, of course, a few
> exceptions that are just beyond their control -- StarOffice, ApplixWare,
> and Netscape come to mind immediately.  You'll notice something common
> to those three, they're all closed source products.  Given the source,
> we wouldn't have the need for the multiple versions of libraries just to
> keep a strange app working.
>

Not familiar with StarOffice and ApplixWare, as I haven't really installed
and used them yet.  But I am very familiar with Netscape (use it daily) and
I do understand the problems with it.  I've seen everything from broken JAVA
VM's to broken widgets to "invalid site certificate" problems, to lack of
color in various versions of Netscape.  Fortunately, version 6.x that comes
with Mandrake (and probably the other distro's as well) seems to have the
problems taken care of for now.  I don't know if they've broken anything in
the newest version 7x, but it wouldn't surprise me.

>
> As for GUI libraries, pick one that you like.  Noone is going to
> complain about your choice of libraries as long as everyone is able to
> use them, fix them, and share them.  Lesstif, Fox, Fltk, Qt, Gtk, etc,
> etc are all available universally across distributions.  All of them are
> more-or-less freely available for whatever use you'd like to put them to
> (Beware commercial programming with Qt, it's got a licensing fee for
> closed source work).

I am glad you reminded me of Qt, Gtk, etc.  One can easily become dazzled
and overly excited in KDE, GNOME etc... to the point of forgetting the
unbiased investigation into the others that have been tried and proven over
the years.  Glad you brought me back to being humble in this regard.  Thanks
a bundle!!

>
>
> The one thing that people have to get used to with the open source
> community is that things move relatively quickly compared to other
> software communities (would it even be fair to call Windows users a
> "community"?  Interesting thought...)  However, don't let constantly
> rolling version numbers scare you.  It's typically regarded that as long
> as the major number doesn't change, the interface to the library hasn't
> changed (I suppose the glibc 2.0->2.1 change is an exception, that broke
> things).  Pick a library, code to it, and track updates to the library.
> If you come across things that are broken, update the libs.
>

Truly marvelous!  I will definitely do just that.  Pick one and possibly
break it myself! LOL  j/k
TERROR on Linux Lane: Chapter 2:  The REVENGE of the Kernel (salutes)..
oops, or is it Colonel?  Hmph.

> All in all, I much prefer the versioned library scheme used by Unix to
> the blind trust you are forced to give applications under other
> operating systems.  Watching new packages install in Windows gives me
> the heeby-jeebies when I see things going into /windows/system.  Sure,
> the new lib works for that app, but what did it overwrite and what will
> break in the process?  At least under Linux, libraries and applications
> are distributed (and often developed) individually so you have a bit of
> control over what will be installed.

I have also experienced the heeby-jeebies as you have.  I used to be able to
use Eudora Lite on my Windows box.  But after using Netscapes UNCOOL "Smart
Update", not only does Eudora Lite crash the system, but the Netscape
version 6.1 constantly tells me every site I visit contains an invalid site
certificate and refuses to load the webpage.  It WASN'T broken UNTIL they
fixed it.  (Does that last statement make sense?  If not, please direct your
enquiries to Netscape (or can you say AOL?) and they will do some
manipulations of the wording FOR you) *gasp*

>
>
> I hope this message at least makes you feel more confident of your
> choice in using Linux to learn programming.  It's a wonderful
> environment, overall.
>
> --
> Steve Philp
> Network Administrator
> Advance Packaging Corporation
> [EMAIL PROTECTED]

Your reply is very rational and the almighty penguin salutes you with great
honor!  You have definitely provided me a boost in confidence when it comes
to doing my learning using the Linux platform.  Now WHICH way do you
prounounce it again... "Lih-nux" as it is pronounced in civilized realms, or
is it "Line-ucks" as pronounced in HicksVille (cringe), or is it "Lee-noos"
as it is pronounced by Linus himself?  I guess we can decide that one for
ourselves through a new form of mathematical equation that compares between
the number of muscle tissues necessary to say it each way, with the main
decision being based upon speed or productivity in how we speak.  Ooops,
umm, have I been rambling again?  Uhh, Yup!  Sorry. :o)  (EG)

Kurt

Reply via email to