Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Book · OtherFree

Structure and Interpretation of Computer Programs

The classic MIT textbook by Abelson and Sussman, here as an unofficial HTML and EPUB version of the second edition, free to read online. It teaches how to think about computation (abstraction, state, interpreters and the design of languages) using Scheme. It suits developers who already program and want to understand why programs are structured as they are, and who are willing to work slowly through hard exercises.

Edition

2nd edition (1996)

MIT Press · Sept 2026

GitHub stars (this version)

4.5k

GitHub · Sept 2026

Format

HTML5 and EPUB, free

sarabander/sicp · Sept 2026

Format

Book

Topic

Other

Provider

Abelson and Sussman, MIT

Level

Advanced

Access

Free

What the book is about

SICP is not a Scheme tutorial, even though every example is in Scheme. It uses a tiny, uniform language so that nothing distracts from the ideas: building abstractions out of procedures, building abstractions out of data, managing state and time, and finally writing interpreters and compilers for languages. The five chapters move roughly as follows:

  • Building abstractions with procedures, including recursion, iteration and higher order functions.
  • Building abstractions with data, from pairs and lists to symbolic data and generic operations.
  • Modularity, objects and state, including the environment model, streams and concurrency.
  • Metalinguistic abstraction: writing an evaluator for the language itself, then variants such as lazy and logic evaluation.
  • Computing with register machines, down to a compiler.

The version linked here is a community produced HTML5 and EPUB edition of the second edition, prepared from the freely licensed text MIT Press published. It is easier to read on a screen than the original web version.

What it changes in how you think

After the first three chapters you will see code as layers of abstraction, each with a boundary you can reason about. The interpreter chapter is the one people remember: once you have written an evaluator, "how does a language work" stops being a mystery, and debugging unfamiliar languages gets easier.

How to work through it

  • Use a Scheme or Racket environment (Racket with its SICP language is a common choice) and run everything.
  • Do a good share of the exercises. Reading without them gives a small fraction of the value.
  • Go slowly: a chapter can take weeks alongside a job. Several universities publish lecture videos from courses based on the book, which help with the harder sections.
  • If you get stuck, compare with published solution sets only after a real attempt.

Who should wait

If you are still learning your first language, start with something gentler and come back. If Scheme is a barrier, there is an official JavaScript adaptation published by MIT Press, which keeps the ideas in a more familiar syntax. If you want job ready skills in a specific stack quickly, this is the wrong book for now.

Common questions

Is SICP still relevant? Yes for ideas, less for tooling. MIT itself stopped using it for its introductory course years ago, but the concepts of abstraction, state and interpretation are timeless.

How long does it take? Months, if you do the exercises alongside other commitments. Many readers aim for the first three chapters and treat the rest as optional.

Which version should I read? This HTML version is the easiest free option for the Scheme edition. The JavaScript edition suits those who find Lisp syntax a barrier.

Do I need maths? Early examples lean on numerical methods and some maths. You can skim those and still follow the main ideas.

Best for: programmers a year or more in who want deeper foundations and enjoy difficult exercises.

computer sciencealgorithms

Ready to start?

Opens on Abelson and Sussman, MIT in a new tab.

Open resource
Link broken or out of date?

Report a problem

With "Structure and Interpretation of Computer Programs". Only Tauseef reads this.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.