home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.lang.c++:18647 comp.lang.c:19149
- Path: sparky!uunet!pipex!bnr.co.uk!uknet!mcsun!sun4nl!and!jos
- From: jos@and.nl (Jos Horsmeier)
- Newsgroups: comp.lang.c++,comp.lang.c
- Subject: Re: Newbie Wants Advice on C-Programming
- Message-ID: <4284@dozo.and.nl>
- Date: 3 Jan 93 10:14:04 GMT
- References: <1992Dec24.172333.7339@grebyn.com> <1993Jan2.163028.8829@netcom.com> <24538@alice.att.com>
- Followup-To: comp.lang.c++
- Organization: AND Software BV Rotterdam
- Lines: 57
-
- In article <24538@alice.att.com> bs@alice.att.com (Bjarne Stroustrup) writes:
- |
- |jimlynch@netcom.com (Jim Lynch @ Netcom Online Communications Services (408-241-9760 login: guest)) wrote
- |
- | > >You should always start out with the official books:
- | > >
- | > >For C, it is _The_C_Programming_Langauge_ 2nd ed. by Kernighan & Ritchie
- | > >For C++, it is _The_C++_Programming_Language 2nd ed. by Stroustrup
- | >
- | > No no no no no no no no no no no no. These books are _unreadible_ to a beginner.
- | > However, they can be quite valuable as a reference (whenever you get around to
- | > learning how to read them...)
-
- |It is worth remembering that `beginner' means different things in different
- |contexts and what `unreadable' means depends critically on what kind of
- |beginner we are talking about.
- |
- |If by `beginner' you mean `someone who approaches programming for the first
- |time,' you are almost certainly right (though I have heard of exceptions to
- |that rule). If, on the other hand, `beginner' means `experienced programmer
- |who just happens never to have encountered C or C++ before,' you are with
- |a high propability wrong (though again I suspect a few exceptions could be
- |found).
- |
- |The backgrounds and expectations of want-to-be C or C++ programmers seem
- |infinitely varied and textbooks, approaches to teaching, and advise must
- |try to take that diversity into account. No one approach or one book can
- |cover all angles.
-
- I think there's a bit more to leaning C++ than there is in learning C.
- C++ uses quite a different paradigm: the object oriented programming
- approach. Here at my company, they made me volunteer (with a gun pointed
- to my head ;-) to teach the programmers team the concept of object
- oriented design and programming. My first attempt was using your book
- along the line of explaining inheritance, polymorphism, data encapsulation
- etc. etc. We ended up discussing the misty details of the C++ language.
- I completely failed here. My second attempt was, not using any programming
- language at all, but just a clear explanation of the object oriented
- concepts and mechanisms. When all that was clear, we switched to C++.
-
- This approach was much more fruitful: the C++ language became just
- a mechanism to express these object oriented mechanisms. I kept on
- convincing these people that it doesn't matter _how_ you express these
- concepts, as long as the language offers you the building blocks to
- express them. IMHO there are tree types of `beginners':
-
- - First time programmers;
- - Experienced programmers but still unaware of the OOD concepts;
- - Experienced programmers aware of OOD concepts, but they don't know
- anything about the C++ language.
-
- I think that one has to be a beginner of the third kind to be able
- to learn the C++ language successfully.
-
- kind regards and happy new year,
-
- Jos aka jos@and.nl
-