correl.github.io/_posts/2015-01-01-sicp.html
2015-01-02 15:07:16 -05:00

95 lines
3.7 KiB
HTML

---
title: Adventuring Through SICP
author: Correl Roush
---
<p>
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.
</p>
<div id="outline-container-sec-1" class="outline-2">
<h2 id="sec-1">Learning Together</h2>
<div class="outline-text-2" id="text-1">
<p>
Over the past several months, we've read our way through the first
three chapters of the book, watched the <a href="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</a>, and
did (most of) the exercises.
</p>
<p>
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.
</p>
<p>
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.
</p>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2">SICP</h2>
<div class="outline-text-2" id="text-2">
<p>
Our first adventure together so far has been the venerable <a href="http://mitpress.mit.edu/sicp/">Structure
and Interpretation of Computer Programs</a>. 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.
</p>
<p>
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.
</p>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3">What's next?</h2>
<div class="outline-text-2" id="text-3">
<p>
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 <b>in</b> scheme, so there's plenty of fun left to be had
there.
</p>
<p>
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.
</p>
<hr />
<p>
If anyone's interested, I have the exercise work along with some notes
taken during the meetings <a href="http://sicp.phoenixinquis.net/">hosted online</a>. 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 <a href="http://extreme-tech-seminar.github.io/">seminar website</a>.
</p>
</div>
</div>