Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

Harold Abelson, Gerald Jay Sussman, Julie Sussman
#7
79.8 score
303 mentions
127 threads
264 commenters
Score Breakdown
Component Scores — Weighted Analysis
Sentiment
81.0
Very Positive
Substance
59.9
Substantive
Diversity
100.0
Extremely Diverse
Story Qual.
74.5
High-Quality
Discussions · 9 threads
daat418 · hn↗

First thing that occurred to me while reading OP's post. Your symptom list is accurate. I'm ADHD and can account for all of these traits, save for alcohol abuse (I dislike alcohol in general and only typically drink Scotch, on occasion, and socially drink with co-workers). I'm 26 years old. I started my career in computing doing tech support. For at least a decade, I've been aspiring toward this ideal of "becoming a programmer". What worked for years was convincing myself that I still had plenty of time and my lack of progress could be attributed to [excused by] my upbringing. I grew up in…

smcl · hn↗

I think the point was that many people talk breathlessly about Lisp but are often quite hand-wavey about specifics. When this concern has come up before I've seen them dismissed with comments along the lines of "if you have to ask you won't get it" or "just read SICP". I've written and read a bunch of lisp and I'm slowly working my way through SICP at a leisurely pace, but I totally understand what these OP means. Some talk about lisp as something magical (it appears on xkcd as a sort of "god's programming language" - https://xkcd.com/224) yet often seem cagey about actually sharing exactly…

dschiptsov · hn↗

I am not English major, but I am pretty sure that the idea of becoming a writer by reading pieces of other people's texts is wrong. This is simply not enough. There is a "second component" in good writing, and it is not just about language usage. One could read Selinger or Pamuk or Sartre or Hesse, to realize that this second component is much more important, while masters like Nabokov whose speciality is playing with words might show you that wording is also important.) The transition from reading to writing ones own texts, not imitating or copy pasting is also not clear, and, of course,…

thanatropism · hn↗

I'm a simple man. I don't have an advanced education in computer science (I did have a SICP-inspired first course in programming as an undergrad and an algorithms course in grad school using Dasgupta and Kleinberg/Tardos). Like everyone who's doing stuff with data, I live in Python now. I'm fairly conversant in functional idioms (wrote a monad tutorial when it was all the fashion), but like objects because they're a straightforward way to keep data and code together in a bundle that can be passed around and serialized. The typical situation for me is machine learning - I could have…

jasode · hn↗

>it is common because academia loves OOP. Maybe we're exposed to different evidence but it seems like academia heavily favors non-OOP such as functional programming. Programmers also make repeated citations to SICP class they enjoyed in college but were forced to deal with OOP when they got a real job. It's the commercial industry that pushed OOP. Universities seem very anti-OOP while commercial businesses like Adobe/Microsoft/Google use OOP languages like C++. Other companies that write back office "enterprisey" software also favor OOP languages like Java/C# over non-OOP such as…

josteink · hn↗

I've dabbled in Scheme (SICP), Clojure, Elisp (Emacs) and now Common Lisp. My opinion is that there is value in at least looking at more than one. That way you will see what compromises have been made, and how it affects your program. While Clojure is definitely more a in-thing right now, it's nice to see "the originals", where it all came from. There are several things Clojure does really well, at the cost of other aspects. It's a very opinionated language, and for some, it may be too opinionated. I find idiomatic Clojure-code to be a bit on the too terse side, affecting the clarity of the…

dfranke · hn↗

Hi javascripter. First of all, welcome to news.yc! There's at least one thing you're already doing right: you're starting out with a problem that interests you. However, I don't think you have quite the right goal. You don't want to be the best Javascript programmer ever. You want to be the best programmer ever. Javascript should just be one weapon in your arsenal, and a rather specialized one at that. That said, you have to start somewhere. Usually I recommend that people start with Scheme and read SICP (online at http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html), but…

drostie · hn↗

Well, it depends in what ways you're competing against Comp Sci majors, but even in their own major there is a lot of competition from competent physicists -- especially as we try to understand more and more about what quantum computers can and can't do. (Scott Aaronson's page and blog are wonderful to see what theoretical comp sci looks like; http://www.scottaaronson.com/ ). If you just want to code, pick up a language, do it in your free time. CS majors will know a couple of more involved things; for example, many of them may have written a functioning, if minimal, compiler. If you want at…

gml · hn↗

I recently did this, as in about a month ago, I became interested in learning Lisp. I started with a bunch of things. First I tried to get various working environments going like: Emacs + Slime + SBCL Emacs + Quack + PLT Scheme I also tried DrScheme (which is a great learning environment). Not knowing what i'd really need I also did some searching and discovered a few books: http://mitpress.mit.edu/sicp/ http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html http://www.gigamonkeys.com/book/ i also purchased the little schemer. I learned various interesting things from these…

_pius · hn↗

"Structure and Interpretation of Computer Programs" (SICP) by Abelson and Sussman is a must read. Some other foundational texts I'd recommend: * "How to Solve It" is a (the?) classic introduction to mathematical problem solving. http://en.wikipedia.org/wiki/How_to_Solve_It * CLRS ("Introduction to Algorithms") is the classic introduction to solving problems through computation: http://en.wikipedia.org/wiki/Introduction_to_Algorithms Those texts are useful for "programming in the small." [1] As you get closer to "programming in the large" (basically putting together non-trivial software…

← Back to Index