PartingAdvice

^z 16th April 2023 at 6:18pm

Brian Harvey and Matthew Wright in their computer science text Simply Scheme conclude with some "Last Words" (the final section of Chapter 26, on page 505 in my edition) — comments which I have long cherished, and which came to mind again yesterday evening over dinner when I tried to paraphrase them without much success. To help me next time here's the quotation:

It's hard to wrap up something like this without sounding preachy. Perhaps you'll forgive us this one section since we've been so cool all through the rest of the book.

We thought of two general points that we want to leave you with. First, in our teaching experience at Berkeley we've seen many students learn the ideas of functional programming in Scheme, then seem to forget all the ideas when they use another programming language, such as C. Part of the skill of a computer scientist is to see past surface differences in notation and understand, for example, that if the best way to solve some problem in Scheme is with a recursive procedure, then it's probably the best way in C, too.

The second point is that it's very easy to get a narrow technical education, learn lots of great ideas about computer science, and still have a hard time dealing with the rest of reality. The utilitarian way to put it is that when you work as a computer programmer it's rare that you can just sit in your corner and write programs. Instead, you have to cooperate with other people on a team project; you have to write documentation both for other programmers and for the people who will eventually use your program; you have to talk with customers and find out what they really want the program to do, before you write it. For all these reasons you have to work at developing communication skills just as much as you work at your programming skills. But the utilitarian argument is just our sneaky way of convincing you; the truth is that we want you to know about things that have nothing to do with your technical work. Matt majored in music along with computer science; Brian has a degree in clinical psychology. After you read Abelson and Sussman, go on to read Freud and Marx.

Well, I don't know about those last two; I would have recommended Shakespeare and Mill. But Harvey & Wright's key points — the importance of seeing through surface differences, and the value of a liberal education — are undeniable ... and this is a neat way to finish up a freshman CS textbook. (See also ThinkingToolsGoals (9 April 1999) for a good quote from the preface of Simply Scheme, and StrandsOfTruth (2 November 2000) for some related thoughts by Richard O'Keefe.)


TopicProgramming - TopicThinking - TopicScience - TopicLife - 2002-06-21


(correlates: CogDis, ClosedWindowRisks, SomebodyElse, ...)