Resources for the Software Craftsman
💯 📺 📖 by Hal Abelson, Jerry Sussman (1979)
SICP is regarded by many as one of the best books on "practical computer science" out there. While it can be a somewhat challenging book to read, it stands out for its clear exposition, very well-written prose and a broad set of interesting and important topics in programming and computer science.
It starts out with the basics of programming and computation, but very quickly ramps up to concepts such as data abstraction, procedural abstraction, modularity and objects, streams, metalinguistic abstraction, all the way to register machines, logic programming languages, interpretation and compilation.
For those who are serious about studying this book, there are many resources online that can help. Here are just a few:
- A study guide with several links to plenty of other resources, reviews and criticisms.
- My own set of solutions to some of the exercises and links to a couple of free online versions of the book.
For those who enjoy video or want to have complementary material to better digest the book, there is also a series of lectures taught by the book authors.