My journey with SICP so far

The magic of SICP

I was introduced to this book by a great article from Peter Norvig, Teach Yourself Programming in 21 Days. This idea of programming being a skill to be honed continuously for an extended period of time really resonated with me, and Peter did write a great review for this book on Amazon as well (Thanks to Hacker News for highlighting this).

I come from a non-traditional programming background, with a degree in Mechanical Engineering, and first job in management consulting! Although as an undergrad, I had taken up a bunch of CS electives, and had developed on a couple of websites for student bodies, I never really considered myself as a “true blue programmer”. But now that I was working in the field of data science, I wanted to a have a better foundation in programming, and more broadly, computer science.

So I started reading this book around April 2020, just when COVID had enforced lockdowns all around the country, and luckily enough for me, it gave me the extra time to go through this (introductory ?!) CS book in detail, solving each and every exercise along the way.

But I had never imagined this ride to be as fun !! Solving SICP problems in an exotic language like Lisp is one of those intellecutal mind-bending experiences that I have always relished. Engineering students might relate to the joy of solving Classical Mechanics problems from the Physics textbook by HC Verma (or Irodov!). While I’m still on Chapter 2 (of 5 chapters) of the book, so far I’ve learnt a great deal about the language Scheme, functional programming, the concepts of recursion, abstraction & closures.

I always thought these CS concepts were too abstract for any real life use case, especially in data science. On the contrary, I’ve started seeing their application all around me, not just in functional languages like Scala & R, but even in Python. The best parts of R to me, the tidyverse & magrittr, are all based on functional programming, and meta programming. I read Advanced R sometime back and some of the chapters that talked about non standard evaluation went above my head, but I reckon I will go back to them once I’m done with SICP.

But enough about the exciting parts, when you get down to it, SICP is hard, really HARD !! Codology.net was one of the best resources I found online documenting each problem & solution of SICP meticulously, and even that site is incomplete. Fortunately though, there is a community contributed Wiki for SICP problems that is almost complete and provides good resources to help you when you’re stuck. The Youtube lectures from MIT by the authors of the book are also a great learning resource. I love the puzzled and bewildered reactions of the students in these videos btw :D

So anyway, I will continue to work through the rest of the exercises of this book and share my learnings (enlightenment ?!) along the way.

2020

Fun with Haskell

3 minute read

My notes halfway through the book Learn You A Haskell

Back to Top ↑