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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC 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: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: cjsonnack@mmm.com (Chris Sonnack) Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/09 Message-ID: <4ug6l2$n23@dawn.mmm.com>#1/1 X-Deja-AN: 173216835 references: <31FBC584.4188@ivic.qc.ca> <01bb83f5$923391e0$87ee6fce@timpent.airshields.com> <4uah1k$b2o@solutions.solon.com> <01bb853b$ca4c8e00$87ee6fce@timpent.airshields.com> <4udb2o$7io@solutions.solon.com> followup-to: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada organization: 3M/IT/EIS (St.Paul,MN 55144) reply-to: cjsonnack@mmm.com (Chris Sonnack) newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-08-09T00:00:00+00:00 List-Id: Peter Seebach (seebs@solutions.solon.com) wrote: > I think algorithms should be taught on paper. *Away* from implementations > on computer. > > Believe me, you understand quicksort much better after *DOING* it than you > can from writing any reasonable number of implementations. Absolutely! Without qualification. And: > ...once they showed you *the algorithm*, you could implement it however > you want. Yep. > It's worth observing good programmers rewriting. A good programmer will > add features and cut the size of a program slightly; a bad programmer will > bloat it hugely to add the feature. (Assuming the original program to be > mediocre.) This is so true. And it applies to ones own work. Most programs of any size I write follow a time/size curve, getting larger as the features are implemented. But at some point I begin to //truly// understand the solution the program represents. This, to my mind and experience, only comes from living with the problem and in the code for a time; a long time. All the design analysis in the world never seems to quite touch the heart of the matter. It's the wedding between the concrete problem and the concrete mechanism (language) that births the elegant solution. Once I hit that point, the code size begins to decrease and and the solution starts to become truly elegant. ObTopic: I disagree students should START with assembly (although I did and it's served me well). I do feel that any programmer who really wants to be called a true craftsperson should know AS MUCH AS POSSIBLE about their craft. I think there is much to be gained from looking at problems and solutions from as many points of view, high and low, as possible. Hell, I think it's self-evident. -- Chris Sonnack http://eishcq.mmm.com Engineering Information Services/Information Technology/3M, St.Paul, Minn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TODAY'S RULE: No Smoffing or Fnargling! Opinions expressed herein are my own and may not represent those of my employer.