news.volyx.in

SICP: The only computer science book worth reading twice? (2010) (simondobson.org)

466 points by pieterr · 628 days ago · 180 comments on HN

Article summary

The article discusses the book 'Structure and Interpretation of Computer Programs' (SICP) by Hal Abelson and Jerry Sussman, considering it a seminal work in computer science that has stood the test of time. The author reflects on how the book influenced their career and research interests, and notes that its content has barely aged despite being published in 1984. The book is available online for free and introduces programming concepts using the Scheme language. Its relevance and timelessness are attributed to its focus on foundational concepts rather than ephemeral technologies.

Main themes

  • SICP book
  • Computer science education
  • Programming fundamentals
  • Timeless concepts
  • Scheme language
  • Computer science vs programming

What commenters say

  • SICP is a computer science course, not just a programming course, and its goal is to teach fundamental concepts rather than specific programming skills.
  • The book's use of a functional programming language does not limit its scope to procedural epistemology, but rather encompasses all programming paradigms.
  • Some argue that the distinction between computer science and programming is arbitrary and irrelevant, and that SICP teaches both.
  • Others believe that SICP's success stems from its grounding in exhibiting concrete examples of programming concepts, making them accessible to students.
  • There is a need for a book similar to SICP but using a different programming language, as some readers may be put off by Lisp.
  • The abandonment of first principles in system design can lead to brittle and calcified systems that are difficult to maintain.
  • SICP is not the only way to teach computer science, and some schools may be failing to provide a comprehensive education by only teaching specific programming languages.
  • The book's focus on procedural epistemology is seen as a key aspect of its timelessness and relevance to the field of computer science.