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…
Programming by poking: why MIT stopped teaching SICP
191–200 of 245 posts
Re: Programming by poking: why MIT stopped teaching SICP
#192Earlier 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.
Re: Programming by poking: why MIT stopped teaching SICP
#193Re: Programming by poking: why MIT stopped teaching SICP
#194Reading 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.
Re: Programming by poking: why MIT stopped teaching SICP
#195There'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?
Re: Programming by poking: why MIT stopped teaching SICP
#196Reading 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?
Re: Programming by poking: why MIT stopped teaching SICP
#197Earlier 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…
Re: Programming by poking: why MIT stopped teaching SICP
#198I 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…
Re: Programming by poking: why MIT stopped teaching SICP
#199Earlier 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?
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
#200Earlier 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…