Live data from Hacker News

Programming by poking: why MIT stopped teaching SICP

posteriorscience.net

211–220 of 245 posts

Re: Programming by poking: why MIT stopped teaching SICP

#211
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?

It's mostly that I got 'stuck' with iOS. Once you specialise it's hard to get out. If I change jobs now for anything other then iOS, I have to take a pay cut and I need to find someone that will hire me without any previous experience in... embedded, for example.

There are also a lot more of this 'poking' jobs when compared to first principle coding jobs. Specially for someone like me who never worked for huge corporations.

Re: Programming by poking: why MIT stopped teaching SICP

#212
post #174

Earlier quoted context omitted.

That's a perfectly reasonable goal for a high school or someone performing self study. The whole point of a university is to impart knowledge of subtle things.

The majority of CS students (including MIT) never studied CS before coming to college. Unless you propose MIT/CMU/Stanford/Berkeley/etc. only admit people to their intro CS classes who have studied CS before (chicken and egg problem, anyone?).

Well, MIT's intro calculus classes are overwhelmingly for people who have studied calculus before. Making it an actual requirement wouldn't change much.

Re: Programming by poking: why MIT stopped teaching SICP

#213

Earlier quoted context omitted.

My university used to have an Engineering Fundamentals class that all Engineering students were required to take their first year. Among several other things, it taught how to use Excel and more importantly, programming using Fortran. It wasn't in-depth, but you learned what programming was in a pretty easy environment.

We had a similar freshman pan-engineering course at Texas A&M that taught both excel and fortran among other things. Probably the most practically useful course in the entire program.

My university offered "intro to unix". It wasn't required for anyone, but it did fill a general education requirement.

It was also one of the most practical, useful classes they had. A CS student who didn't take it (probably most of them) would still pick up most of the material by osmosis, but I think that class was a great idea.

Re: Programming by poking: why MIT stopped teaching SICP

#214

Earlier quoted context omitted.

The majority of CS students (including MIT) never studied CS before coming to college. Unless you propose MIT/CMU/Stanford/Berkeley/etc. only admit people to their intro CS classes who have studied CS before (chicken and egg problem, anyone?).

Well, MIT's intro calculus classes are overwhelmingly for people who have studied calculus before. Making it an actual requirement wouldn't change much.

Errr, when did this happen?

As of 1979, the 18.01 I took matched what I understand is the the AP Calculus BC sequence, and while having previous exposure to the calculus certainly helped, it wasn't assumed.

Re: Programming by poking: why MIT stopped teaching SICP

#215

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…

And to make this really annoying, you still need to know low-level algorithms and data structures to make it through most interview processes. What they should really do is give you a crappy API doc and have you make it do something useful.

You're just applying at wrong companies.

Re: Programming by poking: why MIT stopped teaching SICP

#216
post #184

Earlier quoted context omitted.

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?

It's mostly that I got 'stuck' with iOS. Once you specialise it's hard to get out. If I change jobs now for anything other then iOS, I have to take a pay cut and I need to find someone that will hire me without any previous experience in... embedded, for example. There are also a lot more of this 'poking' jobs when compared to first principle coding jobs. Specially for someone like me who never worked for huge corpor…

Not _that_ hard. Gradual transition should work.

If you like videogames, learn some OpenGL ES, apply to mobile game development position, if you’ll like the area, you’ll be able to continue career developing games for other platforms. If you’d like to move to MS stack, learn some .NET, then look for Xamarin iOS jobs, you’ll be able to continue career developing .NET for Windows. If you enjoy hacking, seek a job in a company that makes UI test automation tools for iOS, or iOS-related security software.

You already have experience dealing with all those iOS weirdness, you might be able to minimize or even negate that pay cut.

Re: Programming by poking: why MIT stopped teaching SICP

#217
Looks like another face of a centuries-old debate between theoretical and experimental science.

The theoretical scientists play with abstractions they fully understand. Experimental scientists poke at things they don’t fully understand. They tend not to do well with each other.

When computers were in the infancy, they were viewed primarily as a scientific tools to crunch numbers and play with abstraction. That’s the theory-oriented view that I think is shared by the SICP authors.

Then computers became complex, fast, and capable of doing much more than crunching numbers and evaluating those S-expressions. While you can view a modern web browser, or MS Word, or a videogame, as a program for a Turing complete machine, this does not mean you should. Too little value in that: sure there’re instructions and state, but now what? More experiment-oriented mindset usually works better with those kind of problems.

Re: Programming by poking: why MIT stopped teaching SICP

#218
This is the way of real life. We breathe, eat, excrete all without understanding or knowing. We poke at our bodies with junk food, exercise, video games, and other stimuli. Sometimes we achieve the desired effect, most times not. We still do not really know how we work. Poking at complexity is ALWAYS how science was done.

And the high priests of computer science strove to build a corpus that was intimidating, complex and beautiful. They tried to be gods and birth a new form of life. That computer scientists applied Socratic and Aristotelian principles to their framework is hubris. Human individuals really cannot be gods to machines that are useful. We have constructed masses of spaghetti code into libraries that no one has the time to read or understand and it is our own fault. These are tools and should have been kept simple and open and easy. Perhaps AI will evolve to save its parents.

I have a dream of the day when I can talk to Alexa, and write code for her in English just by speaking. Her built in projector would show me what I said. My words would be translated into correct Python, c++, or JavaScript. She would highlight errors that would lead to build failures. Point out race conditions. And tell jokes along the way.

Re: Programming by poking: why MIT stopped teaching SICP

#219
This is the way of real life. We breathe, eat, excrete all without understanding or knowing. We poke at our bodies with junk food, exercise, video games, and other stimuli. Sometimes we achieve the desired effect, most times not. We still do not really know how we work. Poking at complexity is ALWAYS how science was done.

And the high priests of computer science strove to build a corpus that was intimidating, complex and beautiful. They tried to be gods and birth a new form of life. That computer scientists applied Socratic and Aristotelian principles to their framework is hubris. Human individuals really cannot be gods to machines that are useful. We have constructed masses of spaghetti code into libraries that no one has the time to read or understand and it is our own fault. These are tools and should have been kept simple and open and easy. Perhaps AI will evolve to save its parents.

I have a dream of the day when I can talk to Alexa, and write code for her in English just by speaking. Her built in projector would show me what I said. My words would be translated into correct Python, c++, or JavaScript. She would highlight errors that would lead to build failures. Point out race conditions. And tell jokes along the way.

Re: Programming by poking: why MIT stopped teaching SICP

#220

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. Join the TXR project: http://www.nongnu.org/txr http://www.kylheku.com/cgit/txr/tree/ I made some 3000 commits all by myself since 2009. The main reason why this exists is the above: a project where I can stuff ideas, algorithms, what…

TL;DR but it reminds me of Awk...
Post reply on HN