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=3.8 required=5.0 tests=BAYES_00,INVALID_MSGID, RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: "Tim Behrendsen" Subject: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/07/26 Message-ID: <01bb7b06$311fabc0$87ee6fce@timpent.airshields.com>#1/1 X-Deja-AN: 170602080 references: <01bb73e3.1c6a0060$6bf467ce@dave.iceslimited.com> <1996Jul20.124025.122789@kuhub.cc.ukans.edu> content-type: text/plain; charset=ISO-8859-1 organization: A-SIS mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-07-26T00:00:00+00:00 List-Id: Mark Eissler wrote in article ... > Yes, but since just about everyone else has said something I'd say follow > this path BASIC -> Pascal -> C -> C++ -> JAVA. I think that is fine for the casual programmer. If you want to be a professional programmer, I think this is the *best* course, but not the easiest ... Assembly -> C [non-GUI] -> C-GUI -> C++ All the rest of the languages are variations on the same theme. Here's my rationale ... Assembly: Learn what's *really* going on. The most important. C: Learn structured programming. C is close enough to assembly that a student can really *see* how the compiler translates the code to assembly, and really understand what languages are all about. C-GUI: Learn the concept of event-driven programming (which is all GUI is, stripped of the extraneous stuff). C++: Even though I think C++ is brain damaged, it is close enough to C that the student can see what OOP really is in the context of, again, assembly language. Assembly is without the "abstraction bias" that other languages have. IMO, the only thing OOP brings to the table is the concept of assigning methods to areas of memory, AKA objects. Non-OOP: Apply methods to memory. OOP: Execute method abstractly bound to memory. All the rest of the concepts of OOP derive from that. Obviously, I'm speaking from a "reality" point of view, not from the OO abstraction. My point is there is nothing that is all that complicated in computer science, if it can be expressed in the fundamental components of programming, which are move, arithmetic, logicals, test, and branch (might be something else I'm leaving out). If a student is ground in these fundamentals, there is nothing else they can't learn. -- Tim Behrendsen (tim@airshields.com)