Live data from Hacker News

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

simondobson.org

171–180 of 189 posts

Re: SICP: The only computer science book worth reading twice? (2010)

#171

It’s interesting, SICP and other many other “classic” texts talk about designing programs, but these days I think the much more important skill is designing systems. I don’t know if distributed systems is consider part of “Computer Science” but it is a much more common problem that I see needs to be solved. I try to write systems in the simplest way possible and then use observability tools to figure out where the de…

Do you have any distributed systems design books to recommend?

Distributed Systems by Van Steen and Tanenbaum is very good and freely bailable:

https://www.distributed-systems.net/

Re: SICP: The only computer science book worth reading twice? (2010)

#172
post #116
post #79

Earlier quoted context omitted.

Have you looked at it? It's an abomination. The point of SICP isn't Scheme or the syntax of Scheme, but what it represents. Whoever made the Javascript rewrite didn't understand that. You can't write a metacircular interpreter in Javascript, because Javascript is not homoiconic.

You can't write a metacircular interpreter in Javascript, because Javascript is not homoiconic. Is that a downside? I never wrote or used metacurcular interpreter in my life and still don’t know why I had to read about it. Is it an interesting implementation technique of lisp? Yes. Does anyone really need that? You can rip off that part and everything that follows and that will be enough for a regular programmer. No…

It allows the book to skip things like lexing and parsing and instead go straight to its main course: transforming, executing and compiling syntax trees.

Re: SICP: The only computer science book worth reading twice? (2010)

#173

i'd also recommend "Concrete Abstractions: An Introduction to Computer Science using Scheme" by Max Hailperin, Barbara Keiser, Karl Knight. http://www.gustavus.edu/+max/concrete-abstractions.html

I'll second that recommendation, it's a bit like a gentle mixture between SICP and TAOCP. A very enjoyable read.

Re: SICP: The only computer science book worth reading twice? (2010)

#174

There are some great books, and every book means something different to each person who reads it. K&R influenced a generation of programmers. Hennessy and Patterson influence a generation of architects. etc. etc. It's not just SICP. But the greater point: a book can be meaningful, and we can always use more good ones.

I think this was mentioned in a Paul Graham essay from many years ago, but half the battle in tackling a new area of study is finding out what the best books (or papers) are. There aren’t that many, and yet it’s hard to know what they are if you aren’t already well-versed in the field.

Re: SICP: The only computer science book worth reading twice? (2010)

#175
post #13

Earlier quoted context omitted.

I recall that when MIT stopped teaching with SICP, one of the main claims was that programming now is often not about thinking abstractions through from first principles, and creating some isolated gem of composing definitions. Which is a category mistake that they actually address in the lectures. SICP is not a programming course, it’s a computer science course. Computer science is not about computers, let alone pro…

You don't think they can address both needs? What are non-MIT schools teaching when they teach CS if it's not SICP? Is everyone else just a vocational school?

SICP isn’t the only way to teach CS, obviously, but I’ll be honest with you: some schools aren’t even trying. They just offer Java and Python programming courses and call it a day.

Re: SICP: The only computer science book worth reading twice? (2010)

#176

I haven’t seen it in the comments yet, but you can watch Abelson and Sussman teaching the material from this book from recorded lectures in 1986. I still find their description of how to create and group abstractions in various layers to be useful personally and as a mentor. (In the videos, lesson 3A, 1:07:55) https://m.youtube.com/playlist?list=PLE18841CABEA24090

Thanks for sharing this. It's crazy to see videos like this and think how these people had no idea what was coming in the future.

Re: SICP: The only computer science book worth reading twice? (2010)

#177
post #158

Earlier quoted context omitted.

> but these days I think the much more important skill is designing systems. It is hard to design systems if you don't have the perspective of implementing them. Yes, you move up the value chain to designing things, no, but no, you don't get to skip gaining experience lower down the value chain. > What computer science doesn’t teach you is how memory caching works in CPUs. That was literally my first quarter in my CS…

> the old Hennessy and Patterson book, which I believe is still used today. Do you mean "Computer Organization and Design - The Hardware / Software Interface" or "Computer Architecture: A Quantitative Approach"? Thanks.

The latter, I’m pretty sure.

Re: SICP: The only computer science book worth reading twice? (2010)

#178
post #88
post #81

Earlier quoted context omitted.

IMO it's not excellent. It's not like SICP, it's obtuse for no reason, I find it a hard slog. Flexibility is good but it seems to try to make every bit of your program flexibile and pluggable and you just need to do something eventually. My opinion, I'd welcome others on the book; there was a small splash when it came out but not much discussion since.

I haven't read the book, but my experience is that the way to make things flexible is to make them simple as possible. When I've used (or built) something that was built in the style like you're talking about, it's almost always wrong, and the extra complexity and stuff now makes it harder to do right. It's not surprising: unknown future requirements are unknown. Over building is trying to predict the future. It's li…

I think that is what the book does. Step by step introducing new requirements, by telling you about a situation, where the previous code would not be flexible enough. I am sure it doesn't state, that one should apply all of its ideas all the time, regardless of the project at hand.

Re: SICP: The only computer science book worth reading twice? (2010)

#179
There are many layers and dimensions. As pointed out that these days systems design, integration and how to interface is more important (and in fact in older days as well not sure why it becomes these days as system analysis is a job higher than programmer usually, at least 3-4 decades ago).

We need someone knowing this, just like we need someone to run the nuclear plant we use. But we do not need much those but we need more how to use electricity. Hence unlike another post physics are not the key even if it is more foundational.

For personal growth, it might be still though.

But frankly lisp is such a non-multi-system language, it has a hard time to deal with external world by its nature. It can be done as lisp is really the god level programming language. But as said it is NOT used by the gods for a reason.

We need find a system level language to express ourselves so that we can stand in giants. We need giants but no need to be one.

Re: SICP: The only computer science book worth reading twice? (2010)

#180

It’s interesting, SICP and other many other “classic” texts talk about designing programs, but these days I think the much more important skill is designing systems. I don’t know if distributed systems is consider part of “Computer Science” but it is a much more common problem that I see needs to be solved. I try to write systems in the simplest way possible and then use observability tools to figure out where the de…

Have you seen "Software Design for Flexibility: How to Avoid Programming Yourself into a Corner" by Chris Hanson and Gerald Jay Sussman It's from 2021.

https://archive.org/details/software-design-for-flexibility_...
Post reply on HN