Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

101–110 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#101
post #72

Earlier quoted context omitted.

I feel miserable doing the kind of programming I do nowadays! I wish I could go back to simpler times, where I actually had to reason about algorithms, data structures, hardware, etc... I don't subscribe to the school of thought that values engineers lower on the stack more than those higher up, especially since there seem to be a lot more new jobs of the latter sort and we all need to make a living, and there are pl…

I think he doesn't necessarily imply anything about being high or low in the chain. But about beauty and understanding. SICP is one example, but I bet it's even possible to be happy coding GUIs or any other rather mundane things if one does it with an elegant toolset. For example, Oz comes to mind. Some modern tools are not pleasing to use, often because architectures are a mess. Things move forward too quickly.

What's Oz?

Re: Programming by poking: why MIT stopped teaching SICP

#102

Reading this made me so so sad, I do agree with the reasoning. I learned to program on a course that follows SICP, I spent all my college years learning how to program from first principles, building all the pieces from scratch. Building compilers, soft threads implementations, graph parsing algorithms... and I was happy with that way of programming! Today I'm an iOS developer, I spend most of my day 'poking' at the…

And why exactly you're wasting your skills on something as pitiful as this? There is a lot of work out there for people who can build complex solutions from the first principles.

Re: Programming by poking: why MIT stopped teaching SICP

#103
post #26

Earlier quoted context omitted.

For working as a professional programmer, SICP, sure. But TAOCP? Why?

I wrote that for anyone interested in learning CS seriously, I swear by those two books. I would recommend an entirely different set of books for someone who wants to work as a professional programmer. That being said, TAOCP really gave me a clear understanding of algorithmic analysis. It's a hard book, but after you finish it, you won't look at programming the same way again. Especially when it comes to design decis…

What books would you recommend for someone who wants to be a professional programmer?

Re: Programming by poking: why MIT stopped teaching SICP

#104
post #72

Earlier quoted context omitted.

I think he doesn't necessarily imply anything about being high or low in the chain. But about beauty and understanding. SICP is one example, but I bet it's even possible to be happy coding GUIs or any other rather mundane things if one does it with an elegant toolset. For example, Oz comes to mind. Some modern tools are not pleasing to use, often because architectures are a mess. Things move forward too quickly.

What's Oz?

http://mozart.github.io/

Re: Programming by poking: why MIT stopped teaching SICP

#105
I think it's also very natural for this time that "[the past solution] was “more coherent” than what they have now and that they still don’t know what the right [current solution] should be." If you ask around you that's how most people feel about their job, their families, some more advanced people even feel that way about their gender, political position, life goal, philosophy.

Re: Programming by poking: why MIT stopped teaching SICP

#106
post #99
post #47

Earlier quoted context omitted.

Which class/university was it? Any chance the materials are online? I'm actually writing my own shell now; I'd be interested to compare :) The fork/exec/pipe/dup calls are definitely an unusual and powerful paradigm. I think too many programmers don't know this because we were brainwashed to make "portable" programs, and that's the least portable part of Unix.

CS61 at Harvard covers that stuff, building your own shell (and memory management, etc) in C and it's an introductory class. There is a lot of hand holding of course but I really loved that class.

Harvard? Never heard of it. Good school?

Re: Programming by poking: why MIT stopped teaching SICP

#107
post #26

Earlier quoted context omitted.

I wrote that for anyone interested in learning CS seriously, I swear by those two books. I would recommend an entirely different set of books for someone who wants to work as a professional programmer. That being said, TAOCP really gave me a clear understanding of algorithmic analysis. It's a hard book, but after you finish it, you won't look at programming the same way again. Especially when it comes to design decis…

One reason I went with different algoritm books is that they were for languages I use. Did the use of a fake ISA hamper your understanding at any point?

I think it works for the same reason _A Modern Method for Guitar_ works.. by not using a familiar context (tunes/languages), you have another vantage point to help internalize the lesson.

Re: Programming by poking: why MIT stopped teaching SICP

#108
post #97
post #27

Earlier quoted context omitted.

Calling it his "reasoning" with all the connotations that come with that word goes way too far. This was his polite implicit criticism of the new core, which among other things also teaches much less in the way of EE fundamentals, a topic he's cared about very much since at least the late '70s (i.e. 6.002 is no longer a required course for all EECS majors). The bottom line is that in the post-dot.com crash panic whic…

It may have been that it just took 7 years to actually get a new course in place, but it wasn't until fall 2007 that MIT officially got rid of 6.001 as required course, well after the dot com crash. There were a TON of changes that happened with the MIT EECS curriculum at that time, so perhaps it was a holistic response to the dot com crash that was beyond just 6.001.

I think "panicked spasm" is more accurate than "holistic response", at least in connotation, but as I recall the only real changes were in what was required, terminating the use of Scheme in the entire required curriculum with extreme prejudice, and adding, what, 6.005? Where they claimed to teach most of what was in 6.001/SICP, but using Java, a language which is "not even wrong" for that purpose.

Yeah, MIT has become a Javaschool, plus Python....

And just when the failure of Dennard scaling was making functional programming a lot more important.

Re: Programming by poking: why MIT stopped teaching SICP

#109
post #99

Earlier quoted context omitted.

CS61 at Harvard covers that stuff, building your own shell (and memory management, etc) in C and it's an introductory class. There is a lot of hand holding of course but I really loved that class.

Harvard? Never heard of it. Good school?

Does not have an ABET accredited CS major, for what that's worth.

Re: Programming by poking: why MIT stopped teaching SICP

#110

I read about half of SICP and thought it was OK. Not great, but okay. The programmers I've met fall largely into two groups, those who like systems level programming, knowing how the OS works, how it interfaces with the hardware, what the memory layout is like, etc. and those who like abstraction and the things that SICP values. I'm definitely in the former group (but I certainly appreciate people who prefer the SICP…

SICP is programming for the theoretically inclined. It seems analogous to calculus in math versus calculus for physics: you can study it more formally with all the proper proofs and derivations (and bizarre cases), or pick up just the applied bits (such as chain rule and dot notation) that you need for doing AP physics. This analogy suggests the existence of two approaches, with different implications and consequences for programming culture.
Post reply on HN