mirror of
https://github.com/correl/correl.github.io.git
synced 2025-01-01 11:03:18 +00:00
Correl Roush
966a3248a4
This will be removed once travis-ci can take care of running emacs & ox-hugo.
76 lines
3.4 KiB
Markdown
76 lines
3.4 KiB
Markdown
+++
|
|
title = "Adventuring Through SICP"
|
|
author = ["Correl Roush"]
|
|
date = 2015-01-01T00:00:00-05:00
|
|
keywords = ["emacs", "org-mode", "themes"]
|
|
tags = ["programming", "lisp"]
|
|
draft = false
|
|
+++
|
|
|
|
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 {#learning-together}
|
|
|
|
Over the past several months, we've read our way through the first
|
|
three chapters of the book, watched the [related video lectures](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/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 {#sicp}
|
|
|
|
Our first adventure together so far has been the venerable [Structure
|
|
and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/). 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? {#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 [hosted online](http://sicp.phoenixinquis.net/). 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 [seminar website](http://extreme-tech-seminar.github.io/).
|