From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1696ae,97188312486d4578 X-Google-Attributes: gid1696ae,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Should I learn C or Pascal? Date: 1996/07/19 Message-ID: #1/1 X-Deja-AN: 168939465 references: <4sf9e7$kl7@news.jump.net> <4slt4p$9jj@ns.broadvision.com> <4sm83e$jkg@solaria.cc.gatech.edu> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.dos.programmer,comp.lang.ada Date: 1996-07-19T00:00:00+00:00 List-Id: Jason said ": Of course I think you should learn at least seven or eight high level : languages just for fun, and five or six assemblers for the same reason. No doubt. No good programmer only knows one language. And no really good programmer doesn't know assembly." I worry at this recommendation. It encourages what I often see at the beginning level of the "language collecting" phenomenon. People think that learning about programming is learning the syntax of lots of different languages, while not really knowing how to program in any of them. Yes it is true that really good programmers tend to know several languages and to know assembler, but this is not always true, I know some quite brilliant COBOL programmers around who don't know other languages, and these days you quite often find very good programmers who only know C. On the other hand, I sure know lots of *terrible* programmers who can program equally terribly in many different languages. I still think the important thing at the start is to learn how to program. It is worth using a language that is rich enough to introduce all the necessary abstraction concepts (Borland Object Pascal, Ada 95, C++ meet this criterion, this is not a complete list of course, but you get the idea). It is a mistake to learn C to start with, since it lacks critical abstraction features and so you will tend to miss the importance of data abstraction and parametrization at the module level (it is not that this cannot be done in C, just that you are unlikely to learn it if you start by learning C). But in any case, the important thing is to concentrate on programming, not on language collecting, at an early stage. Unfortunately many high school teachers who teach computing have not progressed much beyond the language collecting stage themselves, so you often have to rely on books at that level.