Most active commenters
  • anthk(3)

←back to thread

284 points borski | 11 comments | | HN request time: 0.551s | source | bottom
1. anthk ◴[] No.44685229[source]
Scheme it's far easier to grasp. With SICP you basically rewrite a Scheme within a Scheme. And you teach Calculus to the interpreter to solve further problems.

Online SICP: http://sarabander.github.io/sicp/

replies(3): >>44685461 #>>44685687 #>>44685971 #
2. glimshe ◴[] No.44685461[source]
To do that with Scheme/SICP, you actually have to understand the CS principles behind it. Not as much with Python, which is likely why it became a more popular choice.
replies(2): >>44685536 #>>44685717 #
3. postepowanieadm ◴[] No.44685536[source]
Shouldn't that be the point?
replies(2): >>44685792 #>>44688230 #
4. morkalork ◴[] No.44685687[source]
I fondly remember doing a course in my CS degree that was basically working through SICP as a class, taught my an ancient but very fun and enthusiastic tenured professor. When he retired I think the curriculum was updated to JavaScript (??) or as the new professor called it "scheme in drag". I'm glad to have taken the original course..
replies(1): >>44687409 #
5. anthk ◴[] No.44685717[source]
The point of Scheme SICP is that it will teach you these CS principles.
6. zdragnar ◴[] No.44685792{3}[source]
I remember when universities wouldn't teach languages higher level than C/++ because "the languages changed too quickly and the 4 year degree would be obsolete by the time the students graduate". Instead, they focused purely on the low level engineering aspects of the software meeting the hardware, with only advanced classes focusing on things like AI research (pre-LLM days) or modelling fluid dynamics on specialized hardware.

Of course, this is also why most companies worth working at didn't care if you had a CS college degree or not to build a wordpress website or a SOAP/REST API. Aside from some very basic lessons learned from experience (generally understanding computational complexity and maths) most software jobs didn't need any knowledge of assembly at all, or how to write an interpreter or a garbage collector.

replies(1): >>44685984 #
7. terminalbraid ◴[] No.44685971[source]
The official SICP site is here, including the text.

https://mitp-content-server.mit.edu/books/content/sectbyfn/b...

pdf

https://web.mit.edu/6.001/6.037/sicp.pdf

replies(1): >>44688550 #
8. JackFr ◴[] No.44685984{4}[source]
I spent years knowing nothing but C and I’d say it handicapped me in many ways. (I recall insisting that it would be impossible to do anything without assignment.)

After getting my eyes opened a little bit, I read SICP and it was mind blowing. I read a little Haskell, wrote a little Clojure and a lot of Scala. And even though the day job now is Java and Python, I’m much better off for having bothered to learn it.

9. jerrycruncher ◴[] No.44687409[source]
Honestly, the new professor wasn't too far off. I've often referred to "The Little Schemer" as "the best javascript book that isn't about javascript."
10. glimshe ◴[] No.44688230{3}[source]
That's what I'm trying to say. SICP teaches you to think differently and "grok" the CS concepts. This isn't always the case with other approaches, which can be much more reliant on blind copy-and-paste and library functionality.
11. anthk ◴[] No.44688550[source]
Yep, and there's a Texinfo version too. With Chicken, 'sudo chicken-install srfi-203 ; sudo chicken-install srfi-216; Emacs, Geiser and this ~/.csirc, you can run SICP exercises on really constrained environments.

~/.csirc

   (import scheme)
   (import (srfi 203))
   (import (srfi 216))
Texinfo version:

https://zv.github.io/sicp-in-texinfo

Run Emacs. Press

   Ctrl-u Ctrl-h i 
and choose the sicp.info.gz file.

Then, run:

Alt-x

package-refresh-contents

Alt-x

package-install

geiser-chicken

wait.

Run Alt-x geiser, and if it ask you which Scheme interpreter to run, choose 'chicken'.

Later,

press Ctrl-x f

to choose a file, create a new one called "hello.scm".

Write in that file:

(display "Hello world").

Run Ctrl-c Ctrl-c

and then the Scheme code in that file will be evaluated. To choose the running Chicken interpreter, press

Ctrl-x b

and choose the Geiser buffer.

Run Ctrl-h t for the Emacs tutorial, it will be handy.

If you want the same tutorial in Spanish, Japanese, French...

press

Ctrl-u Ctrl-h t

and just input your language, press [TAB] to autocomplete.

Happy Hacking.