SICP Challenge
I have decided to take on task of actually doing Structure and Interpretation of Computer Science. I have tried reading it in the past with varying degrees of success. Just reading the book isn’t enough though. The authors have really put in a lot of effort in structuring the exercises. If you skip them, you’ll be missing out on a huge part of what makes SICP so wonderful. You can find the book freely available in any format here, these versions have much better fonts than the official one.
Why am I doing it?
You will find a lot of claims about this book on the internet ranging from horrid to magical. I’m not kidding, check any reddit or Hacker News thread, you’ll find people either praising this book or hating on it. Peter Norvig’s review of the book on Amazon sheds some light on why this is so.
I want to read SICP because functional programming fascinates me. It forces me to think in ways I’d never have imagined in a heavily Object Oriented language. I love how elegantly designed Lisp is in John McCarthy’s original paper. Here’s an excellent summary of it without being too dificult to understand. Most languages today are adopting at least some of the ideas found in the functional world, anonymous/lambda functions being the most copied feature of late. Even Java has them now with the release of Java 8. If you haven’t heard of Lisp before, I recommend reading Paul Graham’s post on Lisp, the wittiness with which it is written makes the history lesson fun. I’ve shamelessly become a proponent of any functional language I come across.
Goals
-
Read the book alongside watching the original SICP lectures by Abelson and Sussman at MIT OpenCourseWare or their YouTube playlist.
-
Complete at least 95% of the exercises. There are 3561 exercises in SICP, so if I average one a day, it should take one year.
The project will be publicly available on github at this repo it’s so that I can easily track my progress and to help me stick to my schedule. Here’s to the future.
If you have any questions or comments, please post them below. If you liked this post, you can share it with your followers or follow me on Twitter!