6 ms·
I think it’s a question where do you start. It the late 90’s computers and operating systems were already so complex that you did not start CS curriculum by un
by jpalomaki 4y ago
I think it’s a question where do you start.
It the late 90’s computers and operating systems were already so complex that you did not start CS curriculum by understanding how they really work. You took those for granted to get to the interesting topics first and then later went for the details.
- lisper 4y agoAnd what exactly were "the interesting topics"? I was a grad student in the late 80s and early 90s, and I remember having classes that took this approach. It took me years to recover and repair the damage. Understanding how a real OS works is not actually that hard. It's actually easier if you start with that than what I went through, which was a bunch of abstract academic bullshit that left me with no idea how it was supposed to make contact with reality.
- inimino 4y agoIn the late 90s? Surely OOP, code re-use through encapsulation and inheritance, the relational model (though on the way out), and making XML of all the things should have been some of the "interesting topics" at this time.
- jpalomaki 4y agoThe best way to understand how an operating system works is to build a simple one yourself. But you can't build one before you have learned how to program. I believe it's a bit similar case with many other topics nowadays. Having some basic Python skills unlocks opportunities in other fields, such as machine learning or robotics.
- urthor 4y agoExactly this. As a fulltime functional programmer... I cannot ask university graduates to learn functional programming to the depth of SICP teaches. Even the "Scala redbook" is 50-100 hours of work. Junior graduates, have so, so, so much information to cover. Bashing a "good" development workflow/flow state into them. Communicating with correct nouns. There's SO MUCH work for them to do. Plus, output they're paid to produce. Functional Programming, manipulating higher order functions, is useful for reasoning about truly complex concurrency. Hard to justify the time investment otherwise. There's SO much work to do in software development.
- inimino 4y agoSICP is better for full-time programmers with some experience than it is for recent HS grads, however motivated they might be. As I understand it, no freshman class ever made it through the full text anyway, so it was always understood that you can go further later, and come back to it, similar to how much undergrad calculus is taught.
- Woodi 4y agoThis is what everyone is saying, Sussman and MIT included... But it is not true. It is just how Windows is stitched together + no sources. And now systemd in Linux - it was just first big application of cgroups and noone else was doing serious work with them. RedHat was realy leading force. Everything is build from pieces and pieces are explainable. Ocasionally you have hard algo but still you can understood what it do becouse it do exactly what simpler algo for that problem do. Btw. there is not so much material in SICP - some tricks like lazy functions implementation and symbolic math. From that point of view it's good introductory course to compilers building :)