SICP videos are also great. The first part of the Lecture 1A, talks about "computer science". From the first moment, we learn that computer science is also not really much about computers. "...when some field is just getting started and you don't really understand it very well, it's very easy to confuse the essence of what you're doing with the tools that you use..." "...Well, similarly, I think in the future people…
Why SICP Matters
11–20 of 130 posts
Re: Why SICP Matters
#12I have only skimmed so far, but combined with the lectures I have to say that I really wish that had been my introduction to programming. Maybe it is just because of where I'm at, but it really feels like in the first 3 lectures some of the more elusive topics of programming are at least touched. Sure, you will need to seek out more, but it is not as hidden behind "but for this language, you have to do this" kind of crap.
Re: Why SICP Matters
#13I have to confess I just discovered you can order a relatively cheap copy (well, compared to Amazon) of SICP direct from MIT. I have only skimmed so far, but combined with the lectures I have to say that I really wish that had been my introduction to programming. Maybe it is just because of where I'm at, but it really feels like in the first 3 lectures some of the more elusive topics of programming are at least touch…
Re: Why SICP Matters
#14Re: Why SICP Matters
#15I didn't discover SICP until after I had graduated from a good CS school. Its clear and away the best programming book I've ever read, even for an experienced developer.
I think thats the great thing about SICP and its younger, more spritely cousin The Little Schemer - they're both really good to read .
Re: Why SICP Matters
#16Earlier quoted context omitted.
I think thats the great thing about SICP and its younger, more spritely cousin The Little Schemer - they're both really good to read .
Which would you recommend to read first?
Don't worry if the last few parts don't make too much sense.. I went back and forth between the two quite a lot
Re: Why SICP Matters
#17Re: Why SICP Matters
#18But an average student might need the exposure to other "common" paradigms from C, Python, or Java, before getting introduced to SICP, to "fully appreciate" the power of functional language.
Re: Why SICP Matters
#19I didn't discover SICP until after I had graduated from a good CS school. Its clear and away the best programming book I've ever read, even for an experienced developer.
Re: Why SICP Matters
#20To this day, this is why I value a good theoretical CS education, why I value university education, and why I continue to look back on and use my supposedly theoretical and impractical CS education with great respect.
This is so true: "learning another programming language isn't a big deal; it's a chore for a weekend. I tell my students, 'the language in which you'll spend most of your working life hasn't been invented yet, so we can't teach it to you. Instead we have to give you the skills you need to learn new languages as they appear.'" Can you imagine how valuable it was to be told that from the start?
He's right about scheme too: part of the value of using Scheme or Lisp is its inherent crazy unfamiliarity to the great majority of students. The first thing when you see all those parentheses and weird paradigms is "woah, this is unlike anything I've seen before." And that's perfect. You don't get lost in things you think you already know—you learn concepts fresh and the language, because it's so weird and wild and totally abstract and you can't imagine using it for any real project—is as malleable and temporary as modeling clay. You get to make things with it that teach you about art, and how to look at things, how to see infinity—not about the properties of the materials in your hands.
For this reason among others, it's profoundly disappointing to me that Berkeley has switched their introductory language to Python. As great as it is, it's no Scheme, if only for the fact that its popularity and usefulness as a language detracts from the underlying concepts. I have to think Brian Harvey fought this change, had he not retired and lost some influence.
"Every five years or so, someone on the faculty suggests that our first course should use language X instead; each time, I say "when someone writes the best computer science book in the world using language X, that'll be fine.'"
SICP was, in retrospect, a masterpiece of education. Someone sat down and thought about exactly these concepts and how best to elucidate them without getting in the way of the connections being made. The new trend toward applications-focused education feels to me like the wrong direction, and I don't think I would get as good an education today as I did learning abstract concepts theoretical computer science taught as the most important part.
Sure, it's fun and attractive to think about applying what you learn to the revolution at hand quickly, making mobile apps and designing robots and putting everything together into useful applications, but you can learn all that stuff after a couple semesters of awesome CS core theory anyway. And while you might get frustrated for those 2 years as an 18-year-old hotshot upstart startup-minded student, in 10 years you'll look back on it and think, "wow, that really was the most important part."