mirror of
https://github.com/correl/correl.github.io.git
synced 2024-12-29 11:09:24 +00:00
67 lines
3.4 KiB
Org Mode
67 lines
3.4 KiB
Org Mode
|
#+TITLE: Adventuring Through SICP
|
||
|
#+AUTHOR: Correl Roush
|
||
|
#+STARTUP: indent
|
||
|
#+OPTIONS: toc:nil num:nil
|
||
|
|
||
|
Back in May, a coworker and I got the idea to start up a little
|
||
|
seminar after work every couple of weeks with the plan to set aside
|
||
|
some time to learn and discuss new ideas together, along with anyone
|
||
|
else who cared to join us.
|
||
|
|
||
|
* Learning Together
|
||
|
Over the past several months, we've read our way through the first
|
||
|
three chapters of the book, watched the [[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/][related video lectures]], and
|
||
|
did (most of) the exercises.
|
||
|
|
||
|
Aside from being a great excuse to unwind with friends after work
|
||
|
(which it is!), it's proved to be a great way to get through the
|
||
|
material. Doing a section of a chapter every couple of weeks is an
|
||
|
easy goal to meet, and meeting up to discuss it becomes something to
|
||
|
look forward to. We all get to enjoy a sense of accomplishment in
|
||
|
learning stuff that can be daunting or difficult to set aside time for
|
||
|
alone.
|
||
|
|
||
|
The best part, by far, is getting different perspectives on the
|
||
|
material. Most of my learning tends to be solitary, so it's refreshing
|
||
|
to do it with a group. By reviewing the different concepts together,
|
||
|
we're able to gain insights and clarity we'd never manage on our
|
||
|
own. Even the simplest topics can spur interesting conversations.
|
||
|
|
||
|
* SICP
|
||
|
Our first adventure together so far has been the venerable [[http://mitpress.mit.edu/sicp/][Structure
|
||
|
and Interpretation of Computer Programs]]. This book had been on my todo
|
||
|
list for a long time, but never quite bubbled to the top. I'm glad to
|
||
|
have the opportunity to go through it in this format, since there's
|
||
|
plenty of time to let really get into the excercises and let the
|
||
|
lessons sink in.
|
||
|
|
||
|
SICP was originally an introductory textbook for MIT computer
|
||
|
programming courses. What sets it apart from most, though, is that it
|
||
|
doesn't focus so much on learning a particular programming language
|
||
|
(while the book does use and cover MIT Scheme) as it does on
|
||
|
identifying and abstracting out patterns common to most programming
|
||
|
problems. Because of that, the book is every bit as useful and
|
||
|
illuminating as ever, especially now that functional paradigms are
|
||
|
re-entering the spotlight and means of abstracting and composing
|
||
|
systems are as important as ever.
|
||
|
|
||
|
* What's next?
|
||
|
We've still got plenty of SICP left to get through. We've only just
|
||
|
gotten through Chapter 4, section 1, which has us building a scheme
|
||
|
interpreter *in* scheme, so there's plenty of fun left to be had
|
||
|
there.
|
||
|
|
||
|
We're also staring to do some smaller, lunchtime review meetings
|
||
|
following the evening discussions to catch up the folks that can't
|
||
|
make it. I may also try sneaking in some smaller material, like
|
||
|
interesting blog posts, to keep things lively.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
If anyone's interested, I have the exercise work along with some notes
|
||
|
taken during the meetings [[http://sicp.phoenixinquis.net/][hosted online]]. I apologize for the lack of
|
||
|
notes early on, I've been trying to get better at capturing memorable
|
||
|
excerpts and conversation topics recently. I may have to put some more
|
||
|
posts together later on summarizing what we discussed for each
|
||
|
chapter; if and when I do, they'll be posted on the [[http://extreme-tech-seminar.github.io/][seminar website]].
|