

Ask HN: I'm going to learn Scheme; any suggestions? - solipsist

I don't know much about it yet, but I ordered a book and am motivated to get through it. Although I have to learn it for a class, my main priority is to learn the basic concepts of programmings, and Scheme seems to perfect for that.<p>So does anyone have any comments about Scheme as a language and about how easy it is to learn it?
======
malandrew
The obvious choice here is to start with The Little Schemer. After that you
can go on to SICP. Another alternative which is not nearly as challenging as
SICP is HtDPv2 (How to Design Programs v2). HtDPv2 was written to be used with
Racket.

There's also the Reasoned Schemer and Seasoned Schemer, but I haven't any of
read either of those so I can't tell you with any certainty if they live up to
the experience provided by the Little Schemer.

In general those are the 5 best books covering Scheme as far as I know of
especially for you as a learner. I'm sure there are other books for more
advanced Scheme, but I don't know them.

The Little Schemer is great fun and is programming equivalent of piano finger
exercises.

------
spooneybarger
Scheme is a great language to get going w/ functional programing and lisp type
languages. I would suggest using Racket. It is 'batteries included', design
for teaching so there is tons of documentation and has support for R5 and R6
versions of scheme.

Most programmers I know started w/ an imperative language. I didn't and feel
grateful for it. Learning programming in a different way tends to mean even if
you get a job doing imperative program, you usually think different from
others and that can lead to excellent conversations, designs etc.

------
bricestacey
I learned it from a class. We blazed through the SICP in 15 weeks. I'd advise
the same. Use MIT's OpenCourseWare as a guide:
[http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/)

------
JoachimSchipper
Scheme is not that hard - I had some trouble internalizing call/cc, but the
rest is rather straightforward or fiddly but not really difficult (macros).

That said, I sometimes get the idea that the majority of Scheme code is in
Scheme implementations - which put me off the language.

