7 ms·
"that make me jump through intellectual hoops made of mathematics" There is actually surprisingly little mathematics in SICP. What is does have are mechanisms
by craigsmansion 8y ago
"that make me jump through intellectual hoops made of mathematics"
There is actually surprisingly little mathematics in SICP. What is does have are mechanisms that are then analysed and modelled, after which the mental model is adapted so it can be turned into computational model that is a faithful representation.
Some of the presented mechanisms are mathematical in nature, but you don't need a mathematical background any more than you need an economics background to write, say, a banking application.
"make it hard for me to learn the actual programming."
Depends on if you see "actual programming" as the mental discipline of correctly representing a part of the real world into a computational model.
If you see "actual programming" as typing in characters on a screen until they compile, then ship them and get absurd amounts of money for it, then sure, SICP might not be for you.
"without going too deep into the quirks of a single programming language"
SICP is not about scheme, has never been about scheme, will never be about scheme.
You will not emerge a "God of the Lisps" from SICP. It might, however, clue you in about what's actually happening when programming, in any language of choice.
- agumonkey 8y agoHonestly, there's just a tiny bit too much of real number knowledge required in SICP. I wasn't good enough to really derive newtonian method on my own. For someone looking to develop applications I believe it's completely off the map. HtDP requires no arithmetic from what I recall. Which makes it more focused. Now SICP was for EE doing software. I suggest to everyone to learn EE, even partially, it's surprisingly useful to learn designing anything. It's still system design, state changes, but in a different substrate, and personally I found it very helpful (gives you a new appreciation for crude language like C).
- vanderZwan 8y ago> I wasn't good enough to really derive newtonian method on my own. There is an old SMBC comic highlighting this general issue in STEM where for some mysterious reason, mathematical theories that took at least a few scientific generations to figure out, with lots of bitter fighting among the giants of science about which conclusion we should accept as correct, are now being taught as if they are trivial to reproduce and come up with for bachelor students. As a physics drop-out, I felt really relieved when I read that, in a "oh so it's not just me"-sense
- agumonkey 8y agoI grew up bothered by this on many levels. Not only some of us feel negatively for the struggle. I believe that ~learning the results teaches less than learning how to solve it. I does accelerate learning and allow people not to reinvent all 4 wheels... but reading old papers (there's a video on Newton's very own notebook, it is so damn different from anything I've ever read about physics) tickles another part of your mind.
- codetrotter 8y ago> there's a video on Newton's very own notebook, it is so damn different from anything I've ever read about physics Sounds interesting. Would like to watch it. Got a link?
- agumonkey 8y agoI think that's this one https://www.youtube.com/watch?v=ObPg3ki9GOI https://www.youtube.com/watch?v=ObPg3ki9GOI They don't review all of it, but you can get a few pages read
- vanderZwan 8y agoSimilarly, a lot of James Clerk Maxwell's writing can be found on Archive.org, and it's amazing: https://archive.org/search.php?query=maxwell%2C+james+clerk&and%5B%5D=creator%3A%22james+clerk+maxwell%22&and%5B%5D=creator%3A%22maxwell%2C+james+clerk%2C+1831-1879%22&sort=-date&page=2 https://archive.org/search.php?query=maxwell%2C+james+clerk&...
- agumonkey 8y agotoo easy, last night I went to Gilbert De Magnete (original in latin no less) http://www.gutenberg.org/ebooks/33810?msg=welcome_stranger http://www.gutenberg.org/ebooks/33810?msg=welcome_stranger
- vanderZwan 8y ago
- CodeArtisan 8y agoThe first chapter of SICP is entirely relying on mathematical examples because data structures are not introduced before the second chapter. The book expect the reader to have a solid base in calculus.
- theoh 8y agoThis comment reads like a very partisan, overstated puff piece in defence of the book. The Scheme aspect of SICP, and other decisions made by the authors, matter a lot because, contrary to what you seem to be claiming, there are many different approaches to and flavours of programming. There isn't a single core philosophy that, once imparted to students, "clues them in" to the essence of the cultures/styles/models deployed by Forth, Haskell, APL, Prologue, C etc.
- veddox 8y agoOf course these decisions matter, but not in the way you mean. The biggest hurdle to learning programming is not the syntax, not even when you're starting out with C++. It's learning to think like a programmer. One needs to learn how to take apart a problem and put it back together again in a way the computer understands - to get rid of all the ambiguities and phrase the solution in terms of conditionals and loops. When one starts to deal with bigger problems, one needs to learn the use of abstraction in order to deal with the added complexity. This is the skill that makes somebody a real programmer, and it stays pretty much the same across languages. The differences between OOP, FP and all the rest pale in comparison to that first great lesson that needs to be learnt. (Having started off with Java, learning Lisp was a huge step for me that I really struggled with at first. But it still wasn't anywhere near as difficult as learning programming for the very first time.) This is the skill that SICP tries to teach.
- deleted 8y ago[deleted]
- yyrrll 8y agoI do not understand the "domain knowledge" complaints. So far I have found that the Wizard Book always provides the required algorithm, or enough discussion to work it out.
- kkylin 8y agoI agree with everything you say. Just want to add that SICP had a context: it was designed to be an introductory computer science course designed for university engineering students (including CS), almost all of whom take calulus in their first year, if not earlier. This was probably a valid assumption back in the day, but clearly there is a more diverse audience now. Anyway, I absolutely agree SICP was never about Scheme per se, or even functional programming. Scheme is nice as a teaching tool because, as Sussman likes to say, you can teach everything you need students to know about the language in one lecture. (Not even all of Scheme, mind you, just what you'd use in a 1-semester course, which back when I took 6.001 meant R4RS minus macros and continuations.) There's certainly always been pressure to use more "practical" languages. But back in those days, there weren't the options there are now. Any derivative of C, especially C++, would end up being as much about the language as about programming concepts, if not more. I think the thing about SICP is that while it makes some minimum demands about mathematical background, it makes a lot of demands about intellectual maturity. It took me years to appreciate many of the points it makes -- as I got more experience, different parts of the book start to resonate. On the other hand it's stayed relevant all these years, at least for me personally.
- ahuth 8y agoWell said. I'm reading the book now (and watching the lectures), and can't imagine trying to go through it as an undergrad.
- emmelaich 8y agoIndeed, the context reflects the origins of CS departments. They are always were part of physics school and later electrical engineering. All the famous CS people over say 60 started in physics or EE.
- dan-robertson 8y agoThis might be true in America but in Europe it is common for the CS department to have been an offshoot of the mathematics department.
- CalChris 8y agoSICP is not about scheme, has never been about scheme, will never be about scheme. It strikes me that when someone says that, and my GSI said something very similar to that in section, it means that the book+course has failed to say what it is about, clearly, in a way the student will understand rather than misunderstand. It's f'ing ineffable is not a good thing.
- veddox 8y agoFrom the preface to the first edition: > we believe that the essential material to be addressed by a subject at this level is not the syntax of particular programming-language constructs... The whole preface talks about how the aim of the book is to get students to think with a programmer's mindset. Scheme is only incidentally the language the consider best for the task, due to its near-absence of syntax. https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-7.html#%_chap_Temp_4 https://mitpress.mit.edu/sites/default/files/sicp/full-text/...