News for hackers. Stuff that matters.
Re:SICP in Python by pdamoc on Tuesday April 28, 2020 @03:41AM (#23004537)
"Do not seek to follow in the footsteps of the wise; seek what they sought." - Basho

One of the reasons that the wizards stopped teaching SICP was the fact that the world changed. Back in the 80s, most programming was done from first principles, since the middle of the 90s it switched to programming against an API.

While learning to program from first principles is still amazingly useful, it is not what beginners need because most of them will never end up programming like that.

Re:SICP in Python by ssivark on Tuesday April 28, 2020 @04:26AM (#23004886)
Love the quote (and totally agree with that), but I'm not sure MIT's decision to teach their freshers on a different track needs to apply to every kind of beginner. Needless to say, there would be a sizeable audience (of whatever background), who would find it extremely useful to learn the ideas in SICP.

All the more because they might not otherwise get the experience of rigorous constructionist thinking, and instead get too used to gluing libraries and slinging boilerplate.

More importantly, for many people, it is an eye-opening spiritual experience where they realize there is more to computing than they previously imagined, and then learn to expect more from their computing tools, and set higher goals for themselves.

Re:SICP in Python by randomsearch on Tuesday April 28, 2020 @04:01AM (#23004699)
I’m not so sure. SICP gives a deep understanding of programming principles like abstraction.

I agree that gluing APIs is essentially what modern programming has become, but it is helpful to have that extra understanding, especially in the long term. We don’t know how programming will look in 2050, but abstraction will remain abstraction, and I wouldn’t bet against Lisp being more popular then than it is now.

Re:SICP in Python by jarcane on Tuesday April 28, 2020 @05:51AM (#23005356)
Indeed. APIs do not just appear from the void, someone has to write them for anyone to have an API to glue together.

Somewhere at the bottom, fundamental code is always present.

Re:SICP in Python by craigsmansion on Tuesday April 28, 2020 @06:23AM (#23005520)
> Back in the 80s, most programming was done from first principles

That's one of the secret revelations in SICP. If you go in with some knowledge of assembly or C, you can quickly feel it's really high-level and not all that fundamental.

That is, until it addresses your precious "fundamental" bits and bytes, and you suddenly realise the model it is showing you is a model you can build computational platforms with, including your up-to-then understanding of registers and ALUs, and it illustrates that computing essentially has nothing to do with any specific hardware: all you need is pencil and paper and the command of a natural language, but with some parenthesis, you can optionally instruct a machine to do it for you as a bonus.

> it is not what beginners need because most of them will never end up programming like that.

which makes any "SICP in X" effort so useless: "let's make SICP understandable for people who do not want to understand it."

Re:SICP in Python by jakear on Tuesday April 28, 2020 @06:39AM (#23005623)
Actually Sussman teaches it to this day (or at least to a couple years ago). I found it one of the most enlightening classes I took.
Re:SICP in Python by dang on Tuesday April 28, 2020 @04:35AM (#23004956)
But they might want to understand.
Re:SICP in Python by brlewis on Tuesday April 28, 2020 @09:39AM (#23006819)
> since the middle of the 90s it switched to programming against an API

Yes, people always seek out libraries rather than using what's built into the language. Browser JavaScript would be a lot more efficient if people took a more SICP-like approach. Also, learning IIFEs would be easier in Scheme syntax.

Re:SICP in Python by cc9one on Tuesday April 28, 2020 @04:11AM (#23004770)
What is an alternative resource that would be applicable to programming against an API?
Re:SICP in Python by pcr0 on Tuesday April 28, 2020 @04:44AM (#23005005)
This would fall on the opposite end of the first principles vs practical knowledge continuum of learning.

https://automatetheboringstuff.com/