Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

71–80 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#71
> The “analysis-by-synthesis” view of SICP — where you build a larger system out of smaller, simple parts — became irrelevant. Nowadays, we do programming by poking.

I imagine many of us do programming by poking. But the skill set referred to here is essential if you're going to build (create/construct) a complex system or architecture.

To say the skill set is irrelevant is to say we as an industry are doing things more or less right. But when I look around, I see that we're making a huge mess of things everywhere or are at least sorely inefficient when it comes to building and growing systems. That is to say, I believe (I know) that we could be doing much much better than we are now -- and I believe the skill set being dismissed here is a large key to doing better. So I'm sad to see it dismissed like this.

Re: Programming by poking: why MIT stopped teaching SICP

#72

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…

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.

Re: Programming by poking: why MIT stopped teaching SICP

#73

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…

The problem is that most programmers today aren't apart of either of those groups but apart of a third, totally separate group: programmers who pick and prod and then glue lines of code together.

Re: Programming by poking: why MIT stopped teaching SICP

#74
post #27

I'm surprised and a bit dismayed to read Sussman's reasoning: "...Sussman said that in the 80s and 90s, engineers built complex systems by combining simple and well-understood parts. The goal of SICP was to provide the abstraction language for reasoning about such systems. Today, this is no longer the case. Sussman pointed out that engineers now routinely write code for complicated hardware that they don’t fully unde…

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…

I took 6.002x when MITx was first launched. I don't know how similar it is to 6.002, but if it's still available, I highly recommend it.

Re: Programming by poking: why MIT stopped teaching SICP

#76
post #40

Earlier quoted context omitted.

The ecosystem is thus becoming infested by horrible hacks which kinda-sorta work, and which everyone uses, because they kinda sorta work, and there is nothing else. Yes, but the reason it has changed for everyone is that no one understands the fundamentals any more, because they aren't being taught to anyone. I mostly agree with both of these statements, but with a slight twist. To some extent, I feel like the reason…

> learn everything all the way from NAND and NOR gates, up to 7400 series IC's, to microprocessors, to assembly language, to C (portable assembly), to operating systems internals, to TCP/IP, HTTP internals, to HTML, and ultimately to Javascript, and also including a side order of databases, filesystems, machine learning/AI, etc. It's called a Computer Engineering degree, sometimes called EECS (as at MIT). I did it an…

For those that want to learn that information in a structured way, but don't want to accumulate debt doing it, there are some online resources that are meant to be pretty good. I've heard good things about NAND2Tetris, for example, would be interested to hear if anyone here has given it a go.

http://nand2tetris.org/

Re: Programming by poking: why MIT stopped teaching SICP

#77
post #62

As a college student who followed along Berkeley's SICP lectures online in 2015 (taught by John DeNero), I am kinda confused by the Scheme v/s Python debate. Did I miss out on something having used Python in the entire first half of the course v/s say CS61A taught completely on Scheme (like when taught by Brian Harvey)?

Yes, I believe so. I think Brian Harvey puts it aptly, "The big ideas in the book — the ones that alumni in the real world tell us they’re using in their work — express themselves best in Scheme."

[1] https://www.cs.berkeley.edu/~bh/proglang.html

Re: Programming by poking: why MIT stopped teaching SICP

#78
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…

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?

Re: Programming by poking: why MIT stopped teaching SICP

#79

Earlier quoted context omitted.

especially at the beginning of their career. That's why you spend four years in a university before you start your career. If you're not going to learn all the fundamentals, you might as well go to an 8 week code camp and save your time.

But that's exactly the point... these days, even 4 whole years isn't enough to learn "all the fundamentals", at least not while balancing things so that you learn enough practical skills to also do something useful. So what do we do, have people do a 4 year degree, and then go spend 8 weeks, or 16 weeks, or a year, learning to actually build systems? I don't know, maybe that is the answer. But I suspect the MIT guys…

> even 4 whole years isn't enough to learn "all the fundamentals"

No. You are missing the point. The fundamentals are very simple and easy to learn. That's what makes them "fundamental." It's all the random shit invented by people who didn't understand the fundamentals (or chose not to apply them) that takes a long time to learn.

Re: Programming by poking: why MIT stopped teaching SICP

#80

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…

[deleted]
Post reply on HN