Turning over a new leaf

Undertaking a new challenge

Pratyush Nalam
Decoding SICP
Published in
2 min readMar 8, 2016

--

Beginning a journey to understand a CS classic

SICP. Structure and Interpretation of Computer Programs. The first time I encountered this book was in my second semester of undergrad at IIT Bombay. It was the textbook for our department introductory course — the first department-specific course in the whole mass of department-agnostic common courses we had to take in the first year. The course was called Abstractions and Paradigms in Programming, taught by one amazing professor named Professor Amitabha Sanyal.

I will be honest. I never fully grasped the beauty of this book or the course. We used DrRacket — a Scheme dialect — in this course. It was hard. Most of us hated the course. While we somehow managed the assignments and exams, at the end of the course, it did not feel as if I completely understood what was taught. Also being relatively new to programming, and having learnt C++ before, I could never wrap my head properly around Scheme. And since at the time, functional programming was still an afterthought in the industry, and I was a young and naive fool, I forgot all about it.

Now however, older and wiser, I have decided that it is time to take a second attempt to delve into this CS classic. SICP isn’t just about functional programming and writing code in Scheme. It is something more than that. Understanding the science of computer science is essential if I want to improve my skills as a software developer. And now, as I stand on the cusp of finishing my formal education and transitioning to the industry, the time is right to go deeper.

If you wish to follow my progress, I will be taking notes in a OneNote notebook which can be accessed online here — http://1drv.ms/1QDhI7y. I am also maintaining a GitHub repository for the exercises as I solve them — https://github.com/pratnala/sicp.

Wish me luck folks!

--

--