home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / lang / cplus / 18647 < prev    next >
Encoding:
Internet Message Format  |  1993-01-03  |  3.2 KB

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