Nothing to Teach

About

About This Project

This blog is primarily intended to chronicle my journey through Structure and Interpretation of Computer Programs (SICP), one of the most influential computer science textbooks ever written. However, given how everything seems to be connected to everything else, I will inevitably end up sharing personal anecdotes from my own life, as well is reflections on other things I’m reading, watching, or experiencing in the world.

Why SICP?

Years ago someone recommended this book to me, and I found a digital copy online. However, as I progressed through Chapter 1 I lost momentum when the concepts got above my head. Without any mentor to help me through it, or perhaps simply lacking the drive to find the help I needed through forums online, I gave up and moved on.

Years later, I came across a physical copy of the book at a thriftstore, and decided to give it another go. I’m a sucker for real books, so it seemed like as good a motivation as any.

The Setup

To study through this book, my plan is to read each section, and use the following dev setup for doing the exercises and writing about what I’m learning and my problem solving process:

The Approach

Following the recommendations from educational research:

  1. Focus on critical exercises - Not every exercise, but the ones that build core understanding
  2. Write to learn - Documenting concepts here reinforces understanding
  3. Draw environment diagrams - Essential for Chapter 3 (State and Mutation)
  4. Watch Brian Harvey’s lectures - The best companion to the text
  5. Build the interpreters - Chapter 4

To help me with difficult concepts, my plan is to upload the complete copy of the text to Claude or Gemini and simply ask questions about anything I don’t understand. The goal isn’t to get the answers, but to help me understand the concepts needed to actually do the exercises.

The Goal

I started doing Linux customer support for a cloud hosting company in 2018. Since then, I’ve eventually moved into a Software Developer II role, purely by luck it seems, as the company shifted around staff, roles and responsibilities. Yet in all that time, since I studied economics in college and not computer science, I never really needed to understand the fundamentals of computer science or software development and engineering. This will always bother me, especially with the advent of AI tools making it easier than ever to have to think less in my work. All of this - finding the book, knowing my shortcomings, my thirst for learning and desire to always be challenging myself - has led me to starting this blog.

Timeline

However long it takes.

Contact


“I think that it’s extraordinarily important that we in computer science keep fun in computing.” — Alan Perlis