The contents of the book are wonderful, but I can't stop admiring the TeX typesetting itself. It's startling how effortless it is to read this document compared to 99% of Web-based reading I do every day. The things that stand out to me most are the lack of vertical whitespace "rivers" due to the smart kerning & tracking, the small-caps for technical initialisms like 'HTML', and the beautiful beautiful Garamond of th…
TeX isn't so bad when you use a typeface other than the eyeball-scarring, madness-inducing Computer Modern.
Structure and Interpretation of Computer Programs (1996) [pdf]
91–100 of 151 posts
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#92I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space.
Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a sharp pivot that I registered for a PhD because I just had to know what else I took for granted. I was 42 when I registered (graduated at 48)!
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#93I took a one-week SICP course with 5 or 6 other professional programmers last year. It was amazing. I wrote about my personal motivation for doing so here: https://amontalenti.com/2018/08/26/sicp-expanding As for an update: SICP was as good as I expected and definitely makes a professional programmer regain some love for the art and magic of computer science. (However, the book is a hard read without a guide. But it'…
I worked through the book using #lang sicp in racket however.
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#94SICP shows up every few months on HN, and I upvote enthusiastically every single time! I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space. Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a s…
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#95Code: https://github.com/stanfordhaskell/cs43 Site: https://stanford-lambda.gitlab.io
All of the course materials will be open-sourced @ https://github.com/stanfordhaskell/cs43 (previously Clojure, now Haskell!)
If anyone has concrete suggestions on how to improve our curricula, I would be happy to take any suggestions.
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#96SICP shows up every few months on HN, and I upvote enthusiastically every single time! I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space. Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a s…
Would you mind expanding a bit more about your PhD? Which school did you go to? Did you find that your age made it more difficult to get in/stay in once accepted? How did you handle family commitments (if you had them)?
Reason I ask is because I've been considering going back to school to get a PhD.
Again, that is quite an achievement, so congrats!
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#97I took a one-week SICP course with 5 or 6 other professional programmers last year. It was amazing. I wrote about my personal motivation for doing so here: https://amontalenti.com/2018/08/26/sicp-expanding As for an update: SICP was as good as I expected and definitely makes a professional programmer regain some love for the art and magic of computer science. (However, the book is a hard read without a guide. But it'…
I did that interview! Interestingly enough, in it Hal said javascript was the inheritor of the scheme spirit. I worked through the book using #lang sicp in racket however.
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#98SICP shows up every few months on HN, and I upvote enthusiastically every single time! I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space. Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a s…
Read any other good books in your time in school? I'm always looking for a good CS book to add to my reading list.
Security Engineering. Ross Anderson
The Formal Semantics of Programming Languages. Glynn Wynskell.
Communicating Sequential Processes. Tony Hoare. This book is surprising in its compactness and lucidity.
Pi Calculus. Robin Milner.
Semantics With Applications. Hanne Riis Nielson
On Concurrent Programming. Fred Schneider.
Specifying Systems with TLA+. Leslie Lamport.
Distributed Algorithms. Nancy Lynch.
Reliable Distributed Computing. Ken Birman and Robert Van Renesse.
I'm sure I'll recall more as soon as I hit "reply".
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#99I took a one-week SICP course with 5 or 6 other professional programmers last year. It was amazing. I wrote about my personal motivation for doing so here: https://amontalenti.com/2018/08/26/sicp-expanding As for an update: SICP was as good as I expected and definitely makes a professional programmer regain some love for the art and magic of computer science. (However, the book is a hard read without a guide. But it'…
Does it make sense to use Clojure while reading the book?
There's no impediment to completing Chapters 1 & 2 in Clojure, but the first chapters are not what is called to mind by "Structure and Interpretation of Computer Programs" [1].
- Function redefinition is extremely useful required if you want to write your code in a linear fashion as intended. Clojure automatically sets up a major hindrance here.
- A few subchapters explore parallel computation, Clojure is likely to lead you astray here as you try to find directly corresponding functions and why exactly the authors are suggesting.
- Several chapters explore mutable lists in detail. Serious complaints have been made about the suitability of Racket here, where there exists no more of a barrier than that methods which operate on mutable lists are prefixed with a specially named qualifier. Clojure would be functionally impossible here.
- On the plus side, the "JIT" meta-evaluator will be a much more interesting challenge!
You'll notice that all of these issues can be worked around. However, SICP with exercises will take you about a year if you're a serious student.
[1] Huffman trees exercises excluded.
[2] Doing the whole thing in Emacs Lisp is potentially fantastic. I don't know if I can wholeheartedly recommend it, but I would be really pleased if someone wrote tests and built the metaevaluator, compiler and really went the whole nine yards here.
Re: Structure and Interpretation of Computer Programs (1996) [pdf]
#100Earlier quoted context omitted.
It does not assume anything except algebra (and I think some minor calculus concepts are mentioned in passing, as using higher-order functions to estimate derivatives or some such, but not at all required). However, it is designed to be used in an introductory university course led by experienced instructors. Without support, even a highly motivated high school group would have a hard time with the material and pace.…
This is not true. I've watched conversations on this over the years on HN, and inevitably you get a few people saying the math is nothing to worry about, and then a bunch of people saying they had to give up because they didn't have the math background (oftentimes these are professional programmers). My recollection from the bit of time I spent with it was that most of the examples were drawn from mathematics, often…
However, I do think the math shouldn't be a great hurdle with the right guidance, but:
> If a high-schooler is training for math olympiads or they're on track to study math/CS/etc. at a top-tier university, they'll probably be fine. All the others will likely be completely lost.
This is probably the right answer.