[Tutor] A slighty off topic question/rant for the experienced. [SICP]

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Wed Dec 18 02:37:01 2002


> * learn one of each type of language.  Learn Lisp or Forth or ML.
>
[some text cut]
>
> * when you read a book try to avoid "XXX solutions" where XXX is some
>   language.  As another poster commented languages come and go but the
>   solutions are still there.  Read books which talk about the act of
>   programming not where to place a semi-colon or the right library
>   routine to call.  A book like "Design Patterns" is relevant every day
>   of my programming life while "improved Delphi" was only good for 3
>   months.


The wonderful thing about the Web is that there are a heck of a lot of
good online resources, all freely available.  In the spirit of this
thread, this is also pretty "non-Python" related.  *grin*


One of those really hard resources is called "The Structure and
Interpretation of Computer Programs":

    http://www-mitpress.mit.edu/sicp/

SICP has the infuriating property of being incomprehensible or
illuminating.  And usually at the same time.  Either way, I think it's
refreshing to try something that isn't claiming to be the next technology
or hot thing... and SICP is definitely something that's not immediately
applicable.  (Although it does try to show how to actually write an
apply() and eval() function.)


It is a hard book.  And some of the reviews of the book at Amazon.com are
extraordinarily harsh.

But there are a lot of good gems in it.  I feel that the most valuable
part of the book are the exercises: the authors really took the effort to
ask hard questions of all types, and not just the "Write a program that
does this...", but more often "What happens when we tinker with this part
of a program...?"


Anyway, forgive me for doing this cheerleader routine for SICP.  Hmmm...
I seem to do it every few months or so:

    http://mail.python.org/pipermail/tutor/2001-May/005286.html

*grin*


Hope this helps!