[Chicago] Best programming / dev book in 2015

Christopher Allan Webber cwebber at dustycloud.org
Wed Dec 9 19:35:29 EST 2015


Aisha Halim writes:

> I wasn't approaching SICP as a possible scheme programmer but
> learning/revising computer science concepts, and I agree, it gets
> challenging. Someone recommended The Little Schemer since I kept pausing
> SICP, and recently got through half. It's a great approach that'll interest
> anyone from beginners, hobbyists, industry programmers.
>
> I haven't read enough programming books to call it the best of '15, but
> it's worth a look.

I do think Little Schemer is a great path in to approach SICP if you
want to explore down that path (a rich mine, for certain, leading off to
other related mines whose jewels it would take multiple lifetimes to
collect).  Some additional advice:

 - The Little Schemer is not a normal programming book.  You should have
   a text editor handy from day 1 of reading through it (if an Emacs
   user, use Emacs + Geiser + Guile; if not, use Racket which ships with
   DrRacket).  The book is conversational, and you'll find that every
   question and answer pair requires that you went through the previous
   ones, often working through the examples.

   Normally I find working through examples to be fairly boring, and I
   skip it, but I found working through The Little Schemer's examples to
   be a delight... and absolutely necessary to progress.

 - Even having completed that, I found myself picking up and putting
   down SICP and just generally struggling to make it through the book.
   Then I found a wonderful thing: a series of SICP lectures from the
   80s have been recorded and uploaded to archive.org:

     https://archive.org/details/SICP_4_ipod

   Some advice: there are few better ways you can spend your time at the
   end of the day than an evening with a hot or cold beverage (adjusted
   to preference or to contrast with the present season) and just
   watching some of these lectures.  I'm serious!  (I spend a lot of my
   evenings zoning out and watching lectures on interesting topics these
   days... I recommend it, it's better than watching whatever current
   zombie show is out there, I assure you.)

   A good process for SICP generally is: thumb through one of the
   chapters, and try to get a sense of it.  Watch the corresponding
   lecture video.  Come back and re-read the chapter.  Try working
   through some exercises, in whatever time you have available (Sussman
   said to a friend of mine that to *really get* SICP, going through all
   lectures is essential.  Well, usually I go through them when I'm
   procrastinating on something else, which is when all things are
   generally most interesting.)

 - Oh yeah, if you have emacs, there's a texinfo version of SICP
   available, somewhere over that rainbow.  It's nice to flip through
   the pages in emacs' info reader when you have a deadline you're
   avoiding, I found.  (I don't recommend billing clients for that
   though.  But hey, if you're salaried, it's brobably more productive
   than reading twitbook or whatever!)

Wow, this is a long series of side-advice!  At this point, you might be
wondering, why bother, after all, you've been making it just fine as a
python webdev, what's the point?  I made it a full decade self-typed as
a "python web developer" and hey, it was a comfy, cushy experience.

Maybe too comfy, and maybe too cushy: I eventually hit a point where it
felt like, I've been doing these same things for so long, everything
feels the same and non-challenging.  That's a good sense that it's time
to mine yak hair in ye old lisp rabbit hole.

Unfortunately, all those smug lispers out there are are right.  Almost
no matter what programming feature you're interested in, either
lisp/scheme did it first, or you can learn how to do it yourself in
lisp/scheme in no time, and your depth of knowledge and understanding of
the topic will increase dramatically.

The downside is, once you go down that path, you might never be happy
about the alternatives again.  You'll wish you were using lisp/scheme!
Oh well.  Dang, if you could only find a nice way to use it at your day
job!

 - Chris

PS: I might have a practical answer for that last part soon.


More information about the Chicago mailing list