TIP: Click on subject to list as thread! ANSI
echo: c_plusplus
to: PETER GARNER
from: JONATHAN DE BOYNE POLLARD
date: 1998-02-28 14:36:00
subject: Should a novice start with C or C++ ?

 JP>> All he seems to be saying is that their number is relatively
 JP>> small, compared to the number of those who haven't tried, or who
 JP>> have tried and failed. 
 PG> Thanks again John, that very accurately expresses my sentiments.
Sentiments which I agree with, although I tend to find that the majority are 
in the "haven't tried" category (or, more properly, in the "I'm using a C++ 
compiler for its convenience features when compiling C code, therefore I'm 
using what might be termed `C+'" category), rather than in the "tried and 
failed" category.
 PG> Before we are accused of being OTO, I would like to restate this
 PG> entire subthread began in response to a complete programming novice
 PG> asking whether he should learn C or C++ as his first language, his
 PG> goal being to become a proficient C++ programmer.  And I told him
 PG> that "I have met none to few programmers that ever successfully made
 PG> the jump from C to C++."  Certainly I HAVE met a few, such as
 PG> yourself, Jonathan, and more recently a consultant from Beijing. 
 PG> However I regard such persons as my intellectual superiors. I believe
 PG> that a novice is better off starting with C++.  The opposite thinking
 PG> seems to be since C++ was derived from an older version of C (K&R),
 PG> one should learn the modern version of C (ANSI) before attempting to
 PG> write in C++.  As an exaggerated allegory, that is like saying if one
 PG> wishes to write in modern English, one should first learn Icelandic,
 PG> since that is the modern language most resembling the Old English/Old
 PG> Norse languages from which modern English was derived!  A rather
 PG> absurd statement when you think about it!
I agree, and for reasons that tally with your chosen analogy.  Although 
learning C first and then learning C++ was the way that *I* learned C++, I 
don't think that the learning curve of learning C++ directly is any steeper, 
nor do I think that learning C++ requires a novice to jump in at the deep end 
and start with classes and templates straightaway.  I *do* think that 
learning C first will cause one to head down some dead ends, and imprint 
paradigms that one has to *un*learn when one switches to C++.  And as such, I 
think that starting with C++ immediately is the right way to go.
Which, in terms of your analogy, is the equivalent of saying that if one 
learns Old English first, one then has to unlearn the declension of nouns 
before one can progress to learning Modern English.
Yes, the evolution of the C++ language is an invaluable aid to understanding 
why some of the language features work as they do (since many of them were 
invented in response to pitfalls discovered from experience in the C 
language), but I don't think that tracking the evolution of the language is a 
good way to learn it.
 ¯ JdeBP ®
--- FleetStreet 1.19 NR
---------------
* Origin: JdeBP's point, using Squish (2:440/4.3)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.