Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

11–20 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#11

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…

>Surely graduates of MIT, of all places, would be the ones building the libraries that ordinary programmers are stitching together and would still need the ability to build complex systems from fundamental CS abstractions? What's going on over there?

Ordinary programmers everywhere are building those libraries, just like your assumed wunderkind are building programs out other people's libraries. The nature of programming has changed for >everyone<.

Re: Programming by poking: why MIT stopped teaching SICP

#12

Earlier quoted context omitted.

Having to write my own shell in C for my operating systems class absolutely blew my mind. And then after that my professor made us implement a quine in the shell we just wrote. Yes, he was insane.

Genuinely curious: what are some of the interesting things in writing your own shell? Was it the programming language interpretation aspect, or having to learn the kernel's API for forking tasks and redirecting, etc.?

Not OP but also had to write my own shell, as well as the kernel APIs for forking and whatnot. The kernel APIs are definitely interesting, but I think the biggest dopamine rush was once the way to parse and structure commands "clicked" and suddenly shells made a whole lot of sense.

Re: Programming by poking: why MIT stopped teaching SICP

#13

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…

Your assumption about who writes libraries and who uses whose code is broken.

Re: Programming by poking: why MIT stopped teaching SICP

#15

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…

Your assumption about who writes libraries and who uses whose code is broken.

I think he meant to say "should".

Re: Programming by poking: why MIT stopped teaching SICP

#16

Earlier quoted context omitted.

Having to write my own shell in C for my operating systems class absolutely blew my mind. And then after that my professor made us implement a quine in the shell we just wrote. Yes, he was insane.

Genuinely curious: what are some of the interesting things in writing your own shell? Was it the programming language interpretation aspect, or having to learn the kernel's API for forking tasks and redirecting, etc.?

Well it was my first low level experience so a lot of it was new to me - I hadn't even used C before so pointers alone were a revelation of sorts. I was blown away by the idea of interpretation and then once we delved into forking and processes (and zombie processes), well I truly went down the rabbit hole. It was really cool implementing your own system hooks with Minix - being able to press F12 to get a formatted tables of all running system calls was supremely satisfying. I fully appreciated how complicated and yet in a way beautiful OSes could be and it forced me to learn how to sweat the small stuff and build good software from the ground up.

Re: Programming by poking: why MIT stopped teaching SICP

#17
post #2

All that said, it is still worthwhile to work through all of SICP, if you want a deeper understanding of how certain tools work. Writing your own interpreter is a very rewarding experience.

Having to write my own shell in C for my operating systems class absolutely blew my mind. And then after that my professor made us implement a quine in the shell we just wrote. Yes, he was insane.

this is going to sound crazy, but in eighth grade I took a CS class where they had us create an interpreter in lisp. It was amazing, and I haven't done anything quite like it since (though dan boneh's crypto class on coursera was close).

Re: Programming by poking: why MIT stopped teaching SICP

#18

Earlier quoted context omitted.

Genuinely curious: what are some of the interesting things in writing your own shell? Was it the programming language interpretation aspect, or having to learn the kernel's API for forking tasks and redirecting, etc.?

Not OP but also had to write my own shell, as well as the kernel APIs for forking and whatnot. The kernel APIs are definitely interesting, but I think the biggest dopamine rush was once the way to parse and structure commands "clicked" and suddenly shells made a whole lot of sense.

also being able to look at the source code for a kernel and saying "ah ha! so that's where the process table is created" is also a lot of fun...kind of like uncovering ancient artifacts and learning to read the glyphs

Re: Programming by poking: why MIT stopped teaching SICP

#19

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…

[deleted]

Re: Programming by poking: why MIT stopped teaching SICP

#20

Earlier quoted context omitted.

Having to write my own shell in C for my operating systems class absolutely blew my mind. And then after that my professor made us implement a quine in the shell we just wrote. Yes, he was insane.

this is going to sound crazy, but in eighth grade I took a CS class where they had us create an interpreter in lisp. It was amazing, and I haven't done anything quite like it since (though dan boneh's crypto class on coursera was close).

That sounds fun! Lisp is great for that because of its code-as-data principle (I use clojure in my day job and it makes dealing with structured data like JSON an absolute breeze). Did you go to an advanced school or something?
Post reply on HN