Earlier quoted context omitted.
> 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…
> I don't recall anything about CPUs in SICP. https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-30.htm...
Programming by poking: why MIT stopped teaching SICP
151–160 of 245 posts
Re: Programming by poking: why MIT stopped teaching SICP
#152Reading 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.
Oh, wait.
Re: Programming by poking: why MIT stopped teaching SICP
#153Earlier quoted context omitted.
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. 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. The idea that programmers need to understand how to "program by poking" thus becomes a self-fulfilling prophe…
People were excited about JSON because there was a desperate need for a data format that wasn't overly complex and/or unsafe to parse. S-expressions just weren't up to snuff because there's no standard way to do key-value mapping.
> S-expressions just weren't up to snuff because there's no standard way to do key-value mapping.
That's not true. There are two standard ways to do this: a-lists and p-lists.
Re: Programming by poking: why MIT stopped teaching SICP
#154Eh. Many students will have the rest of their lives to perfect the art of poking at a library. Getting the chance to play with the more sublime CS stuff is much harder outside of university.
Re: Programming by poking: why MIT stopped teaching SICP
#155Re: Programming by poking: why MIT stopped teaching SICP
#156Re: Programming by poking: why MIT stopped teaching SICP
#157Reading 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
#158I still swear by SICP and TAOCP for anyone who wants to learn CS seriously.
For working as a professional programmer, SICP, sure. But TAOCP? Why?
Re: Programming by poking: why MIT stopped teaching SICP
#159Earlier 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…
A minor point to make here, college isn't about learning practical skills; that's what trade schools and on the job training do. College is about learning the fundamentals, however, computer science is not software engineering and you don't need learn computer science to be a good software engineer because software engineers don't do much in the way of computers science anyway.
Re: Programming by poking: why MIT stopped teaching SICP
#160Some 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…
Engineering (no matter whether mechanical, electrical, software...) is the process of designing an artifact to be constructed out of available materials, which meets a set of requirements while minimizing cost. In mechanical engineering you design your artifact using off-the-shelf bearings, motors, pumps, etc. In electrical engineering you design your artifact using off-the-shelf cables, contactors, relays, VSDs etc.…
And many programmers aren't engineers, they're just interested tinkerers; people who play around in their free time enough to know how to make something work. Not unlike if you went to the store, bought some wires and batteries and tools, and then played with them until you got hired as an electrician.
Sharing culture is instinctive. People will do it. You might as well try to tell people they can't have sex without your permission unless they pay first. Oh wait, that's the porn industry. Everyone pays for porn, right?