[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: V = I * R and the rest (Re: OT: C++ Newbie and KDE/QT)



On Friday 29 June 2001 00:57, you wrote:
> On Tue, Jun 26, 2001 at 12:06:50PM +0200, Brendon wrote:
> > what did you start with when learning C++?
> >
> > any suggestions are appreciated.
>
> No suggestions, but you get a free ticket to a gratuitous rant:

woohoo! ;)

> Start with a soldering iron and develop a practical feeling for
> electronics.  The basics are very simple, really.  It is necessary
> groundwork and also an excellent way to learn how simple things can work
> or not work, and how to work with that.

i wouldn't have any fingers left to type if i tried to use a soldering iron.

> Then learn assembly, read Tanenbaum and a few architecture reference
> manuals, too.  Debug assemly code, in your head and maybe also with
> a tool.  Make it work in reality, repeatably.  Dig up a cbm-64 from
> a landfill, because they're still great for this purpose.  Or install
> vice, a complete cbm-64 emulator for linux.

i always loved my amstrad 464.. shame i chucked it out years ago. it'd make a 
good learning tool.

> Then learn C, the unix api and libc basics.  Read some classics.  K&R,
> Stevens, McKusick et al. spring to mind.  The glibc docs are freely
> installable on your debian system, as is the documentation in the linux
> kernel source.  You don't have to know every detail, but these concepts
> are precious knowledge.  Watch the McKusick video too, if you can,
> because it is very entertaining.
>
> Then learn how to effectively use the standard userland tools:
> sh, sed, awk and friends.  Learn how to prototype an arbitrary
> to-be-written-in-<insert pet language> program in these tools, it's good
> for creativity and your for your understanding of the difference between
> "job" and "tool".  Then go out and learn to program intricate C code
> that does these things much faster and more bug prone.
>
> Read lots of freely available source code.  Such beautiful children were
> born from the marriage of free software and the internet.  Read mailing
> lists, faqs, howtos, manpages, drink freely from this fire hose.  When you
> have done all of that, go ahead and read Soustrup's book and maybe some
> others (but don't get lost in highly academic stuff).
>
> When you have mastered all of the above, only then learn to use C++
> and Java.  It should be very simple by now, because you already know most
> of the syntax and semantics, because you know their roots.  And because
> you first learnt C and then read Soustrup, you know what the concept
> was about.  And because you have a bit of hands-on experience, you
> are familiar with the tradeoffs between design elegance and conceptual
> overhead.
>
> Working your way through all of the above shouldn't take more that
> 20 years, if you're eager and quick to learn maybe even 10, but you
> would still be weak on the experience side.  I went through some of the
> above points in a suboptimal order, and I guess that I'm not even about
> halfway now.  Maybe not even a tenth of the way.

only 10 you say? hmm, then we still have to learn all about firewalls, 
routers, new internet protocalls.. i was also planning on learning a third 
language......

> Other people will say that I'm violently wrong and that you should first
> learn pascal, logo or some flavour of paradigm-quiche.  But I think that
> computers just don't work that way and that you should not hide this.
> Maybe these people should first figure out how people really work and
> then try to match that to how computers work before they conceptualize
> away into nowhere land.
>
> Maybe all this will be different in 50 or maybe a 100 years from now.
>
> Maybe a lot of it will have turned out to be clumsy and arcane, and
> be succeeded by more elegant insights and methods.  Who knows what
> "computers" look like, by then.  Maybe all devices will run object-forth
> natively (just kidding).
>
> Maybe only a few will know, because after the big gpl-trial, microsoft
> will own all the copyrights to all software still available on the
> microsoft inter.net, and besides that, also all the patents to any
> ideas conceived since 2004, granted to them by the global corporation
> in exchange for access to some of microsoft's property -- your documents
> and emails (just kidding, I hope).
>
> But the learning curve will surely only steepen more and more, as long
> as more sophisticated machinery is created primarily for more features,
> instead of less.

true, but isn't that the whole point of this push behind the computer 
industry? no one can know everything about one single computer these days, 
and that won't change in the future.

> Because the ar^Hct of automation is a fundamental activity, unlike most
> other human activities that require an extensive knowledge of facts and
> concepts, the world needs many people who have excellent automation skills
> and many many more with good automation skills, whereas a relatively
> small group of excellent greek scolars can fullfill the world's current
> demand for knowledge and applied skills in their area.
>
> If the demand for interpreters and performers of classical greek mythology
> was as high as the demand for computer professionals, then surely we would
> see a constant churning out of Certified Story Tellers, who had learnt
> "Visual Hellenic +- in 30 days" (watched a few videos of contemporary
> greek television quiz shows and could remember the names of some of the
> contestants afterwards).
>
> Hopefully there would be a Free Sanskrit Foundation, where the thirsty
> may come for clear sources and to seek refuge from the senseless crap
> that was being sold for culture to the unsuspecting masses.  And before
> anyone thinks I dislike greek literature, you wouldn't like euripides very
> much anymore either after it were "adapted to better suit the sponsors".
>
> If you choose to ignore its genesis, you'll likely only give C++ even more
> of a bad name.  And most of all avoid "Visual" anything like the plague,
> unless it refers to a so-called "visual editor" (for quiche eaters,
> real programmers still use ex(1) on their trusty teletypes).  :-)

overdosage of information, i'll go to bed now :)

oh, and i'm starting with the lego first (python), perhaps after gaining a 
better understanding of OOP programming i'll continue learning C++. My 
ambition isn't too become a professional programmer.

cheers for the amusing read,

Brendon
-- 

"if we live by an "eye for an eye and a tooth for a tooth"...before long, 
the whole world will be blind and toothless." 
         --Tevye, Fiddler on the Roof



Reply to: