Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

191–200 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#191
post #114

Some day we will recognize that some areas of "programming" are very different and require different skill sets, and eventually different titles. We tend to call everything "software engineering" so that everybody can feel proud of such a title ("I'm an engineer"), but engineering is certainly not about figuring out how to vertically center divs with CSS (and it's also not about proving algebra theorems either -- eve…

[deleted]

Re: Programming by poking: why MIT stopped teaching SICP

#192
post #79

Earlier quoted context omitted.

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.

[deleted]

Re: Programming by poking: why MIT stopped teaching SICP

#194

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…

Closed source? Decompile the f ker.

I'm sure the lawyers in your company will be really happy to hear that.

Re: Programming by poking: why MIT stopped teaching SICP

#195
post #98

There's a quote I love from the book "The Idea Factory: Learning to Think at MIT": Freshman double E's take six double oh one (a.k.a. six double no fun) to learn to program in LISP... This is also where they begin to leave the rest of the world behind them in their ability solve problems and make things work. He goes on to describe how the course instills the virtues and limits of abstraction.

Would you recommend it for people thinking about institutional culture/school design?

The MIT book? No, it's just a fun book about MIT culture, the analysis doesn't run very deep IIRC.

Re: Programming by poking: why MIT stopped teaching SICP

#196
post #184

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…

Serious question: What is stopping you from going back? I'm naive but curious and I do not want to make guesses. I wonder how are we going to preserve knowledge about programming from first principles if, under pressure from corporations and lazy peers, no one does it anymore?

I think nowadays the most important business in a company is to built things atop fundamental things. For example, we build apps atop Cocoa, web atop ror. That is the business stop us from going back.

Re: Programming by poking: why MIT stopped teaching SICP

#197

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 don't subscribe to the school of thought that values engineers lower on the stack more than those higher up Meaning developers who understand low-level details vs. developers who just wire up high level libraries? I've done the full range, from entire games written in assembly language and embedded C code, through high level full stack development with NodeJS, Python, and other languages. The low-level coding is fa…

Sorry, that way you do not write an app for all of the platforms. You write for none of them it just happens to run on one of them.

Re: Programming by poking: why MIT stopped teaching SICP

#198

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…

Hmm, I didn't get your dichotomy... By "half" did you mean the first half? IMHO the main dish of SICP is chapter 4 and 5 (ch1-3 is just laying foundations), and the content of latter chapters is strongly connected to system-level things like compilers, run-times, processor design etc.---it's not as immediately applicable as like the Dragon Book, but SICP gives you the perspective, in a sense that it shows broader possible design space within which you can locate the current OS / hardware / language technology.

Re: Programming by poking: why MIT stopped teaching SICP

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

So, did you read the backflap and sent the email to Bill Gates as he suggested ;).. jk.. jk How do you about working with such a hefty tome. I only use it a (light)reference. Any tips on how you went about it?

I got up early everyday and read a chapter before work and tried many of the exercises. Now I use the whole set as an almost daily reference where I work. The prelim math you can get from MITs 6.042 either on OCW or the reg school site https://courses.csail.mit.edu/6.042/spring16/class-material.... if you just want to understand on an applied level what's going on. I did it in MMIX using the book 'The MMMIX Supplement' by Ruckert to check answers.

Re: SICP I noticed Harvard and other schools typically have an intro to CS course then a course after in abstraction using OCaml or other functional language. The syllabuses I've found for these second semester CS intro courses looks almost identical to SICP ToC except no hand rolled compiler which is probably the single most useful chapter I've ever read in any CS book.

Re: Programming by poking: why MIT stopped teaching SICP

#200
post #46

Earlier quoted context omitted.

> no one has time to learn everything Nonsense. The fundamentals don't take a long time to learn. And once you know them, everything else becomes much easier to learn. That's the reason that learning the fundamentals matters: it's a huge lever. Here's a single, small, very accessible book that takes you all the way from switches to CPUs: http://www.amazon.com/Code-Language-Computer-Hardware-Softwa... SICP gets you fr…

> SICP gets you from CPUs to Scheme I don't recall anything about CPUs in SICP. Its more about data driven programming and writing of intepreters. What i liked about SICP and scheme programming was that it is a pretty good environment for tinkering - the REPL makes it easy to combine functions, and to work in a bottom-up manner. (btw you had less of that in common lisp, and most other environments that teach you to w…

Sorry, why do you feel there is less of that in Common Lisp? Surely the REPLs offer equal facilities...
Post reply on HN