News for hackers. Stuff that matters.
Re:Why Structure and Interpretation of Computer Programs Mat... by zeroCalories on Sunday June 16, 2024 @04:41PM (#40699922)
I always see people gush over this book, but is it still worth reading for someone that already has a ton of experience programming?
Re:Why Structure and Interpretation of Computer Programs Mat... by sakras on Sunday June 16, 2024 @06:12PM (#40700554)
I started reading it around a year ago with the personal goal of doing every exercise. I'm not done yet (almost done with chapter 4). It has definitely taken a lot of my time, but it really has changed my thinking about a lot of language constructs I find in other languages.

For instance, the part about tagging objects with their type reshaped my thinking about static type systems in general. Static typing, for example in C, is essentially just moving the location of the type tag from existing at runtime within the struct, to the "analysis" phase of the compiler. It's a pretty simple idea, but it made the "degree of dynamism" tradeoff click in my head. All the information _has_ to exist somewhere, and the only question is where. And Scheme is just at an extreme where the _everything_ is stored dynamically.

Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @01:23AM (#40702550)
> Static typing, for example in C, is essentially just moving the location of the type tag from existing at runtime within the struct, to the "analysis" phase of the compiler.

See also "shift left"

> All the information _has_ to exist somewhere, and the only question is where.

Not entirely sure what you mean about this, but not all type information has to exist somewhere. Sometimes things get encoded into a type that might never be represented otherwise -- like whether an integer is a width or a height, or whether a string is a name or an address.

Re:Why Structure and Interpretation of Computer Programs Mat... by bryanrasmussen on Monday June 17, 2024 @03:39AM (#40703162)
whether something (a variable) is a width or a height is encoded somewhere in the code because if the variable is a width it makes its usage different than if it is a height.

Then the code is written to make sure you never make the mistake of sending a width to a height, because that would be silly.

The type (width or height) is represented as logic in the code.

theoretically - if you have a type system that allows you to know something is a width or height you can often reduce logic to keep track of these things but my experience is that level of granularity in your typing reduces dynamism too much. I would rather keep track of that in code (as it probably will have to deal with it anyway) than make my type system deal with it.

Re:Why Structure and Interpretation of Computer Programs Mat... by hibikir on Monday June 17, 2024 @04:19AM (#40703417)
There's some cool mechanisms in type-forward languages that lead to minimal dynamism loss along with safety: For instance, you can do scientific programming that carries units along. So you really can divide a length by a time with no problems: Your results just happens to be a velocity, and will come out in meters per second (or whichever your favorite units are). Adding meters to kilometers? Congrats, you might you have to say which physical representation you want in float-land. But then you are saved from adding seconds to milliliters, because then the types will tell you it's complete nonsense.

But note that to make all of that work well you really need your language to provide a lot of syntactic sugar features which are missing in most older languages, so all the operations read seamlessly, instead of being full of ceremony. One could do all of this in, say, old Java 1.4 or something, but the amount of type annotation, along with the massive mounts of boilerplate to get all of the operationg working right, and checked at compile time would make it all Not-Worth-It(tm) But with enough language features, and a smart enough compiler, `val acc = mySpeed / someSeconds` will work, straight up, with the safety included.

Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @07:04AM (#40704360)
> But then you are saved from adding seconds to milliliters, because then the types will tell you it's complete nonsense.

I was thinking about this as I was reading your comment, and wondering: is it nonsense? If I have 5 seconds of time as well as 10 milliliters of water... I can consider them as being packaged together... which is addition. And I can subtract 3 milliliters and 6 seconds from them without running out of what I had. Nothing wrong with that, really. Five potatoes and a gallon of water is the same notion, just more familiar. Seems no more nonsensical than dividing length by time, right? Food for thought...

Re:Why Structure and Interpretation of Computer Programs Mat... by schoen on Monday June 17, 2024 @08:52AM (#40705124)
Bundling the time and the volume might be better called "forming a vector" or "forming an ordered pair" rather than "addition". You can then perform addition and subtraction with the resulting ordered pairs or vectors.
Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @11:29AM (#40706606)
There's no need for ordering (it's a bag rather than a vector), but yeah.
Re:Why Structure and Interpretation of Computer Programs Mat... by twixfel on Monday June 17, 2024 @12:12PM (#40707258)
That's nonsense because addition loses the structure. 3 litres and 6 seconds becomes indistinguishable from 4 litres and 5 seconds. Maybe that's what you want, but it's realistically pretty much never what you want.
Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @12:24PM (#40707455)
That's not how it works. Addition losing structure doesn't mean "strip out everything from the textual description that isn't a number". It just loses some properties, like ordering.

Which means, for example: (3 liters and (i.e. "+") 6 seconds) + (4 liters and 2 oranges) = (7 liters and 6 seconds and 2 oranges). Perfectly sensible addition, which you do all the time. There's no stipulation the output has to be a single number...

Re:Why Structure and Interpretation of Computer Programs Mat... by twixfel on Monday June 17, 2024 @01:13PM (#40708150)
Alright you're just talking about a different operation entirely but have decided to give it the name "addition". Not particularly insightful, but thanks anyway.
Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @01:27PM (#40708371)
What? Addition isn't just for numbers. This is literally no different from adding vectors. I'm sure you've seen that in school?
Re:Why Structure and Interpretation of Computer Programs Mat... by twixfel on Monday June 17, 2024 @04:34PM (#40710744)
What do you mean subtracting a cat from a dog doesn't make sense? Heh, ackshualllyyy I was imagining a vector of pets, where we have still have a dog but now a cat deficit of one, because the cat died and now we have a big hole in our family... nothing personnel kid. surely you learnt that in school?

The point is, making a vector, that's not addition.

Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @05:09PM (#40711097)
This is quite literally no different than 1i + 2j. Or if you hate vectors like i or j, just complex numbers -- 1 + 2i. I'm not sure why you feel the rudeness is helping you get a point across, because it's very much not.
Re:Why Structure and Interpretation of Computer Programs Mat... by twixfel on Monday June 17, 2024 @05:51PM (#40711492)
I am being no ruder than you are, more or less.

> because it's very much not

I don't expect to change the mind of someone who thinks that addition and defining a vector are the same thing. You've just redefined generally common terms and then started accusing people of being uneducated for not sharing your own eccentric definitions. Poor show.

Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @08:11PM (#40712698)
No, you're grossly misrepresenting what I said. I never accused you of being poorly educated; in fact quite the opposite. I was ~100% sure you had seen vectors and complex numbers before and I was telling you this is exactly like what you have already seen. That's not an accusation of poor education, that's literally the opposite: pointing out that you're well educated enough to have seen that before.

I didn't intend that to be rude, I was pointing out this is something everyone learns in a standard curriculum i.e. that this is very much the opposite of esoteric. But you seemed determined to reply that way, so I'll stop here.

Re:Why Structure and Interpretation of Computer Programs Mat... by bryanrasmussen on Monday June 17, 2024 @05:15AM (#40703753)
thanks for saying it a lot better than I did!
Re:Why Structure and Interpretation of Computer Programs Mat... by dehrmann on Monday June 17, 2024 @01:55AM (#40702701)
That just means it exists in your head.
Re:Why Structure and Interpretation of Computer Programs Mat... by dataflow on Monday June 17, 2024 @02:17AM (#40702795)
Not really. Whether an integer represents a width or a height won't even exist in your head if you're implementing a function like max(a, b).
Re:Why Structure and Interpretation of Computer Programs Mat... by chii on Monday June 17, 2024 @03:35AM (#40703139)
> exist in your head if you're implementing a function like max(a, b)

surely, you have an idea of what you're using that function for, while you're writing it.

The compiler is doing a check to see if the function makes some minimal logical sense (ala, a typecheck), but it cannot read your mind. But this implies the types are actually an actualization of the thoughts in your head, in a formal manner.

Re:Why Structure and Interpretation of Computer Programs Mat... by lomase on Monday June 17, 2024 @03:36AM (#40703144)
The type is encoded in the name of the function.

Is a pretty bad system because you say "won't even exist in your head" but I dont even know if I should pass it integers, floats a srtring. Or what it will return.

Re:Why Structure and Interpretation of Computer Programs Mat... by globular-toast on Monday June 17, 2024 @03:34AM (#40703132)
Because inside the abstraction max it doesn't represent a width or height, they are just numbers (or just some "comparable things"). But outside the abstraction, at some level, you'll definitely know what a and b are.
Re:Why Structure and Interpretation of Computer Programs Mat... by port19 on Monday June 17, 2024 @03:26AM (#40703078)
At the extreme end, and with no claims of scalability, you have shell: everything is a string.

I'm skeptical that sophisticated type systems need to exist.

Perhaps I should dust off my copy and start reading SICP

Re:Why Structure and Interpretation of Computer Programs Mat... by Maxatar on Sunday June 16, 2024 @05:11PM (#40700145)
Experience in software development isn't linear so depending on which path your experience has taken it could be very insightful and useful, or it could be stuff you already know.

I'd say for the vast majority of developers, experienced or otherwise, it's a good read.

Re:Why Structure and Interpretation of Computer Programs Mat... by omnicognate on Sunday June 16, 2024 @05:54PM (#40700441)
Whether it's worth reading isn't a question others can answer for you, but "a ton of experience programming" definitely doesn't imply it isn't worth reading as it's perfectly possible to get through an entire programming career without encountering the ideas and ways of thinking that you'll find in it.
Re:Why Structure and Interpretation of Computer Programs Mat... by kikimora on Sunday June 16, 2024 @05:43PM (#40700367)
Yes, I bet it will give you new perspective on a number of things.
Re:Why Structure and Interpretation of Computer Programs Mat... by lisper on Sunday June 16, 2024 @04:46PM (#40699959)
Yes. But instead of taking my word for it why don’t you just start reading it and decide for yourself?
Re:Why Structure and Interpretation of Computer Programs Mat... by vsuperpower2020 on Sunday June 16, 2024 @05:47PM (#40700392)
Do you really need this explained? It's a 600 page technical book and people have a limited amount of time to sort through everything that exists.
Re:Why Structure and Interpretation of Computer Programs Mat... by lopatin on Sunday June 16, 2024 @06:30PM (#40700659)
Agree but you are replying to a user named "lisper".
Re:Why Structure and Interpretation of Computer Programs Mat... by CoastalCoder on Sunday June 16, 2024 @06:58PM (#40700798)
Maybe he struggles with a speech impediment, you insensitive clod!

</Slashdot_nostalgia>

Re:Why Structure and Interpretation of Computer Programs Mat... by exe34 on Sunday June 16, 2024 @05:52PM (#40700421)
> It's a 600 page technical book

> why don’t you just start reading it and decide for yourself?

A journey of a thousand miles....

Re:Why Structure and Interpretation of Computer Programs Mat... by Turing_Machine on Sunday June 16, 2024 @06:51PM (#40700763)
> It's a 600 page technical book

You do understand that you don't have to read an entire book before forming an opinion, right?

> sort through everything that exists

"Book that has been considered a classic for forty years and was used as the intro text at MIT for decades" is a long, long way from "everything that exists".

Re:Why Structure and Interpretation of Computer Programs Mat... by zeroCalories on Sunday June 16, 2024 @07:39PM (#40701018)
I did begin reading it a few years ago, and it seemed like a lisp flavored intro CS book. Why do I want to read an intro CS book? I've read those before. Yet people promise me that this one is different, while giving me nothing but condescending promises of enlightenment.
Re:Why Structure and Interpretation of Computer Programs Mat... by ozim on Sunday June 16, 2024 @11:07PM (#40701993)
Maybe not for you, but there is bunch of expert beginners out there that would benefit from reading up intro CS stuff.
Re:Why Structure and Interpretation of Computer Programs Mat... by BoiledCabbage on Sunday June 16, 2024 @11:44PM (#40702144)
I guess the honest question is "what are you looking for in a response to your question?"

You asked if you should read it, and almost everyone who bothered to reply has said yes. Each time this topic comes up and people ask if they should read it the majority of responses are 'yes'. And I presume if you've been around software for that long, you've seen all of those threads and previous questions and answers like I have - meaning you likely knew what people would say when they responded.

So, in the end, it's up to you to decide if you'll read it or not.

I don't know you personally, but from my life experience it sounds to me like something I've seen in other circumstances. You've more or less decided that you're not going to read it, but feel like you're missing out and you want someone who as read it to say "it's ok to not read it". So you can resolve both the feelings of the decision to not read it, and the uncomfortableness of feeling like you're missing out.

It's possible I'm way off the mark on the above, but I mean it to be helpful - as I can say I've seen what looks to be this same pattern many times in life.

or what you're likely looking for: In the end, there are only so many hours in the day. You gave it a fair shot and it wasn't your vibe. It doesn't say anything about your strength as an engineer, it just has a specific approach and it's not a match for everyone. That doesn't make it a bad thing, it just means you'd rather spend your time learning and exploring in other ways. And it probably would've had more impact earlier in your career than at the level of experience you have now.

But of course before wrapping up I do need to undo my comment: I think you should give it another go. Maybe skim past the early part if it feels a bit to introductory and come back to it later. But it's a book that continues to grows on you the more time it's been since you read it. The concepts it presents are subtle but impactful in changing how you think about software. You don't fully grasp it when you read it. It's just that afterwards you just start seeing things through its lens often. I haven't read any other book like it.

Re:Why Structure and Interpretation of Computer Programs Mat... by im3w1l on Monday June 17, 2024 @01:51AM (#40702677)
I think it's clear he wants arguments whose strength he can then evaluate, not just a yes/no answer.
Re:Why Structure and Interpretation of Computer Programs Mat... by turndown on Monday June 17, 2024 @01:32AM (#40702592)
If you are experienced then I’d say skim whatever sounds interesting from chapters 1-3, then do chapters 4/5 as they contain most of the interesting stuff.
Re:Why Structure and Interpretation of Computer Programs Mat... by PheonixPharts on Monday June 17, 2024 @01:23PM (#40708293)
> Why do I want to read an intro CS book? I've read those before.

"We shall not cease from exploration, and the end of all our exploring will be to arrive where we started and know the place for the first time." - TS Eliot.

You aren't a curious person who studies things for their own sake and finds wonder in exploring ideas. That's fine, this book is clearly not for you so why concern yourself with it? Most of my friends who are obsessed with their field count many intro books as their favorites and frequent re-reads.

> condescending promises of enlightenment.

It sounds like you're more upset that other people enjoy and therefore recommend this book. You're the one asking for proof that it's worth your time. It's clearly not. People who are curious and like to explore ideas in computing recommend this book frequently to other like minded people.

If you don't like sushi, why question somebody's recommendation for their favorite omakase place?

Re:Why Structure and Interpretation of Computer Programs Mat... by Turing_Machine on Monday June 17, 2024 @03:24PM (#40709938)
Okay. And you didn't have to read all 600 pages before deciding it wasn't for you.

Right?

> Yet people promise me that this one is different, while giving me nothing but condescending promises of enlightenment.

You do understand that it's possible for different people to place different values on the same thing, right?

I mean, clearly there are many, many people who do find the book valuable. You're not one of them. That's fine! But it doesn't mean the book sucks.

Re:Why Structure and Interpretation of Computer Programs Mat... by vsuperpower2020 on Sunday June 16, 2024 @07:27PM (#40700956)
Weasel words. Considered a classic by who? And why would being an "intro text at MIT" mean it's good for someone who is already experienced? If anything, that should show it's not worth his time.
Re:Why Structure and Interpretation of Computer Programs Mat... by Turing_Machine on Monday June 17, 2024 @03:30PM (#40710015)
> Considered a classic by who?

By just about everyone who's ever compiled a list of the greatest CS books of all time?

Here you go:

https://duckduckgo.com/?q=classic+computer+science+books&t=b...

Count how many of those have SICP on their list (hint: most of them, excluding the ones that aren't actually lists of CS books -- e.g. the ones that have Jobs and Gates biographies, etc.)

I didn't just make that up, dude. And this isn't Wikipedia, either.

Re:Why Structure and Interpretation of Computer Programs Mat... by BodyCulture on Monday June 17, 2024 @04:43AM (#40703560)
Do not waste your time and energy relying on the opinion of others. Always check yourself.
Re:Why Structure and Interpretation of Computer Programs Mat... by hackernoteng on Monday June 17, 2024 @07:29AM (#40704503)
this book is at the top of the list of near every list of best programming books of all time. its worth reading. is it an easy read? no. its sort of like the Illiad. Not an easy read. But worth it for anyone who wants to be considered well read.
Re:Why Structure and Interpretation of Computer Programs Mat... by PheonixPharts on Monday June 17, 2024 @01:11PM (#40708118)
Have you never been to a book store?

You don't have to read every word of a book to understand if it's interesting to you. I purchased a bunch of technical books the other day that I had never heard of based on opening them up, reading a bit of the intro and flipping through the examples.

Relatively few of my favorite books have come through recommendations compared to those that I have come across through serendipitous discovery.

For anyone who has no time to browse books, then most of the best books in existence would be of little interest to that person.

Re:Why Structure and Interpretation of Computer Programs Mat... by PheonixPharts on Sunday June 16, 2024 @06:48PM (#40700747)
"Don't cast your pearls before swine".

When I was younger I used to passionately defend those things I've seen as beautiful, but after years experience talking with people passionate about their fields and learning and those who never will be: If you lack the innate curiosity to explore those things others have declared marvelous, then this book will offer you no value.

Every time I crack this book open I get excited and I've read it multiple time and one most of the exercises. I can think of few other books that really expose the beauty and simultaneously strong engineering foundations of software.

You have "tons of experience programming" and sound like you've already decided you know what needs to be known (otherwise why even ask rather than just read it free online), I doubt this will offer you anything you haven't already seen before.

Re:Why Structure and Interpretation of Computer Programs Mat... by daggerdrone on Sunday June 16, 2024 @07:59PM (#40701124)
| I can think of few other books I’m interested to know which books …
Re:Why Structure and Interpretation of Computer Programs Mat... by shagie on Sunday June 16, 2024 @08:20PM (#40701225)
> If you lack the innate curiosity to explore those things others have declared marvelous, then this book will offer you no value.

> Every time I crack this book open I get excited and I've read it multiple time and one most of the exercises. I can think of few other books that really expose the beauty and simultaneously strong engineering foundations of software.

---

https://www.stilldrinking.org/programming-sucks ( https://news.ycombinator.com/item?id=7667825 and others)

> Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

I recommend (not ironically) Double Binded Sax by the group named Software.

Re:Why Structure and Interpretation of Computer Programs Mat... by ramenbytes on Monday June 17, 2024 @02:17AM (#40702798)
> I recommend (not ironically) Double Binded Sax by the group named Software.

After you finish that, I recommend queuing up Friedrich Nietzsche by Klaus Schulze.

Re:Why Structure and Interpretation of Computer Programs Mat... by toonalfrink on Monday June 17, 2024 @01:58AM (#40702709)
Might find it beautiful, but I'm also just f'in busy. Why do you think that if I enjoyed it I would've already done it? Enjoying things is great but it's not my main desideratum for doing something
Re:Why Structure and Interpretation of Computer Programs Mat... by llm_trw on Monday June 17, 2024 @03:45AM (#40703208)
Then it's not for you and you can do something else, like commenting about why you should read it.
Re:Why Structure and Interpretation of Computer Programs Mat... by dehrmann on Monday June 17, 2024 @02:00AM (#40702718)
> otherwise why even ask rather than just read it free online

Not GP, but my time is limited, so asking "is this something an experienced programmer would find worthwhile and insightful" is a fair question.

Re:Why Structure and Interpretation of Computer Programs Mat... by djtango on Monday June 17, 2024 @03:19AM (#40703041)
To be honest I'd recommend just taking a look. It's been 10 years since I first encountered the book (and programming) and I'm sure the lessons can be found elsewhere.

But I find the book a marvel of pedagogy and rank it as maybe one of the greatest textbooks of all time across disciplines. The lessons are packed so densely yet so concisely that you'll appreciate different things on successive reads.

If you're experienced it will also read very easily and quickly so it then becomes quite an easy and enjoyable skim and then you don't have to rely on other people's accounts of whether it is or isn't worth your time.

Re:Why Structure and Interpretation of Computer Programs Mat... by CuriousSkeptic on Sunday June 16, 2024 @05:28PM (#40700254)
Haven't actually done the book. Can vouch for the lectures[1] though. Very much worth it to get a different perspective on various language structures I had just taken for granted.

Watching 2-3 of these will probably answer your question.

[1] https://groups.csail.mit.edu/mac/classes/6.001/abelson-sussm...

Re:Why Structure and Interpretation of Computer Programs Mat... by bowsamic on Sunday June 16, 2024 @05:05PM (#40700102)
No
Re:Why Structure and Interpretation of Computer Programs Mat... by theshaper on Sunday June 16, 2024 @05:45PM (#40700379)
Because...
Re:Why Structure and Interpretation of Computer Programs Mat... by dswilkerson on Sunday June 16, 2024 @08:20PM (#40701226)
No. If you want a deeper understanding of programming, write your own static analysis / theorem prover.
Re:Why Structure and Interpretation of Computer Programs Mat... by egl2021 on Sunday June 16, 2024 @10:10PM (#40701737)
Depends on what you learned during that "ton of experience programming." My only regret was that I had, but stupidly ignored, the MIT course notes that preceded publication of SICP. I didn't realize what I had missed until many years later when I sat down to work my way through SICP. I coulda been a contender.
Re:Why Structure and Interpretation of Computer Programs Mat... by barrell on Monday June 17, 2024 @12:13AM (#40702245)
Only if you’re comfortable being converted to lisp
Re:Why Structure and Interpretation of Computer Programs Mat... by bazoom42 on Monday June 17, 2024 @02:56AM (#40702946)
Depends on the kinds of experience. If you have experience writing compilers and interpreters - probably not a lot. If your experience is in application development you might learn a lot.

I worked through it after years of practical experience as a self-thought programmer, and I learnt a lot (and found it quite challenging, especially the mathy parts).

Re:Why Structure and Interpretation of Computer Programs Mat... by zelphirkalt on Monday June 17, 2024 @03:22AM (#40703055)
That depends entirely on what kind of a ton of experience you have. If you have written Java/PHP/Python/JS for 20 years, SICP might teach you lots of new tricks. If you have worked a lot with functional languages, probably fewer, but still probably some in later parts of the book.
Re:Why Structure and Interpretation of Computer Programs Mat... by llm_trw on Monday June 17, 2024 @03:44AM (#40703204)
I'd worked exclusively with functional languages and assignment operators implemented as lambdas blew my mind more so than all the monads in Haskell.
Re:Why Structure and Interpretation of Computer Programs Mat... by ryukafalz on Monday June 17, 2024 @01:19PM (#40708246)
I'm still working through chapter 1 and, despite having some previous Scheme experience, let being syntactic sugar for lambdas just blew my mind the other day.
Re:Why Structure and Interpretation of Computer Programs Mat... by runlaszlorun on Monday June 17, 2024 @04:16AM (#40703406)
I’d personally say especially so. I’m guessing those taking it as freshman are missing out on 75% of the good stuff.

It’s free online. And YouTube has lectures from the authors- presented in all their early 80’s glory.

Re:Why Structure and Interpretation of Computer Programs Mat... by constantcrying on Monday June 17, 2024 @04:59AM (#40703663)
It definitely is a "classic" book for a good reason.

I think it really depends on your actual formal education, how valuable this book will be to you. If you have a CS degree basically everything in there should have been covered during your studies, you already know how to operate on trees, recursive algorithms and how to build an interpreter. The main value to you would have been seeing it all come together in one place.

If you don't have that kind of education I believe it is extremely valuable to see programming from a theoretical perspective. The book is very good at laying out a cohesive narrative of how you go from very basic structures to complex programs and how these programs can be executed by a computer. The highlight definitely is the implementation of lisp in lisp.

There were also chapters, mostly towards the end, which I think aged quite poorly and seemed mostly irrelevant. I don't think there is much lost by skipping them.

Re:Why Structure and Interpretation of Computer Programs Mat... by ookdatnog on Monday June 17, 2024 @05:03AM (#40703686)
I think it is, and if you don't want to take my word for it, John Carmack thinks the same :)

There's an old video [0] where he talks in-depth about his explorations of functional programming. It's perhaps a bit more about Haskell than about SICP, but in it he's also quite enthusiastic about what a veteran programmer can still learn from this book.

[0] https://youtu.be/1PhArSujR_A?si=OD8pGYsoGC7RXPVG&t=125

Re:Why Structure and Interpretation of Computer Programs Mat... by ricksunny on Monday June 17, 2024 @07:43AM (#40704598)
Did he study it before or after Doom?
Re:Why Structure and Interpretation of Computer Programs Mat... by mpalmer on Monday June 17, 2024 @07:56AM (#40704681)
This question is answered immediately in the linked video.
Re:Why Structure and Interpretation of Computer Programs Mat... by replygirl on Monday June 17, 2024 @08:01AM (#40704716)
this takes a lot longer to type than before or after
Re:Why Structure and Interpretation of Computer Programs Mat... by vitus on Monday June 17, 2024 @09:07AM (#40705248)
11 minutes in, he mentions SICP as a book that he ended up working through exercises "in the past year" (so 2012 timeframe, well after the original Doom but before the reboot).
Re:Why Structure and Interpretation of Computer Programs Mat... by ricksunny on Monday June 17, 2024 @12:25PM (#40707468)
Thank you! :) Provides helpful context vis-a-vis evaluating possible critical-path enabling / contributing factors to achieving a key milestone.
Re:Why Structure and Interpretation of Computer Programs Mat... by mpalmer on Monday June 17, 2024 @09:24AM (#40705393)
Think how long it would have taken to click the link!
Re:Why Structure and Interpretation of Computer Programs Mat... by ricksunny on Monday June 17, 2024 @12:28PM (#40707519)
(About 9 minutes, acc. to the parallel subthread. My time on this thread is about 90 seconds so far not incl this current comment.)
Re:Why Structure and Interpretation of Computer Programs Mat... by mpalmer on Monday June 17, 2024 @12:55PM (#40707927)
Still haven't clicked it, huh? If you did you'd see that the link takes you to straight to the moment in the video where he starts talking about functional programming.
Re:Why Structure and Interpretation of Computer Programs Mat... by Zambyte on Monday June 17, 2024 @08:59AM (#40705186)
I don't have time to watch the video right now, but according to gpt watching the video for me: after.
Re:Why Structure and Interpretation of Computer Programs Mat... by QuesnayJr on Monday June 17, 2024 @05:33AM (#40703846)
I would say yes. I read it when I was already an experienced programmer and I still found it worth it. Scheme is one extreme in terms of styles of programming languages, and it allows the authors to present a certain way of thinking about programming that was still new to me that is natural in Scheme.
Re:Why Structure and Interpretation of Computer Programs Mat... by hackernoteng on Monday June 17, 2024 @07:26AM (#40704481)
well worth reading even for veteran senior engineers. worth re-reading every few years too.
Re:Why Structure and Interpretation of Computer Programs Mat... by jnordwick on Monday June 17, 2024 @07:47AM (#40704624)
That book was my first programming class and programming ever: CS61A at Berkeley. When I started taking it, one of the TAs said that the ideas in the class were wasted on us - they seemed simple but we wouldn't grasp the fullness of the ideas until we had more experience. He said the class should be required to take twice: your first and last class.

It gives you basics of things like recursion and message passing that are easy to use immediately (well, once you figure them out -- it took me two weeks to be able to write even the simplest recursive function), but there are large conceptual things you won't really see the depth in until you have more experience. The last project is the meta-circular evaluator - writing a scheme program to interpret scheme programs. It is difficult to understand that without having a lot of other background.

Even then along the way learning things like exceptions as implemented through call/cc might be a little too much for a beginner programming. The book is in some ways talks about concepts way outside of a beginner's comfort zone.

Re:Why Structure and Interpretation of Computer Programs Mat... by aardvark179 on Monday June 17, 2024 @08:39AM (#40705002)
I used it as a teaching aid to help colleagues from our application teams get the background and skills to work on our core platform. I certainly got a lot out of it because I had to do all the exercises, and I think if i hadn’t had to prepare like that I would have skimmed more and gained less. But I already had a background that covered a lot of the same areas.

So it is going to depend a lot on your background and the effort you put in. It may be better done as part of a reading group where you can discuss the exercises than on your own as some are meant to highlight why certain approaches are hard and are not commonly used.

Re:Why Structure and Interpretation of Computer Programs Mat... by BeetleB on Monday June 17, 2024 @10:59AM (#40706247)
Reading that book made me good at recursive programming :-)
Re:Why Structure and Interpretation of Computer Programs Mat... by hulkmusic on Monday June 17, 2024 @11:25AM (#40706549)
Which made me good at recursive programming, which made me good at recursive programming.
Re:Why Structure and Interpretation of Computer Programs Mat... by Nekorosu on Monday June 17, 2024 @11:07AM (#40706341)
I'd say it is less about your experience with programming and more about your interest in it. SICP has quite a profound style that's in between academic and poetic. For me, it was both fundamentally informative and inspirational. So, if you feel like structuring your computer science foundation and like an imaginative approach to programming and math that favors aesthetics, give it a try.
Re:Why Structure and Interpretation of Computer Programs Mat... by gen220 on Monday June 17, 2024 @10:38PM (#40713560)
I’d say read the first chapter. If it doesn’t excite you at this point in your career it might not be for you and that’s ok.

I’d say it’s actually more valuable to people with programming experience. It gave me a greater appreciation for solving complicated problems in elegant ways. And perhaps ambition to solve other more practical but still complex problems in similarly elegant ways.