
Ask HN: Which Scheme book to read? - sophiebits
I'm a high-school student interested in programming and I'm trying to decide between The Little Schemer and SICP (Structure and Interpretation of Computer Programs). Haven't really found any comparison anywhere and both books seem to have many fans online. Does anyone here have experience with both that you can give me? (Or is there a different one I haven't heard of? Or a book about some other dialect of Lisp?)<p>Thanks!<p>Edit: I have a fairly good grasp of C and Ruby, and I know some Java (enough for a 5 on the AP CompSci AB test, at least), so it's not my first time learning to program.
======
jobeirne
SICP isn't so much about Scheme, but language design principles, the beauty of
abstraction, the dangers of mutable state, and the inability of a reactionary,
functional approach to compensate for the lack of a mutable state.

But I would still go with SICP.

~~~
Jach
In addition, the series at [http://academicearth.org/courses/the-structure-
and-interpret...](http://academicearth.org/courses/the-structure-and-
interpretation-of-computer-programs) is pretty good as well.

------
michael_dorfman
SICP by a mile, for one reason: the SICP videos:
[http://groups.csail.mit.edu/mac/classes/6.001/abelson-
sussma...](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-
lectures/)

That's the best 20-hour introduction you could ask for.

------
dragonquest
From my own personal experiences, try "How to Design Programs" (HTDP) by
Felleisen et al as an introduction to Scheme. Its a great educational book
which really prepares you for SICP.

Also if you want to give Common Lisp a try, I'd highly recommend "Common Lisp:
A Gentle Introduction to Symbolic Computation" by David S. Touretzky. Its an
old book but well worth its price in gold. It is the simplest way to really
get Common Lisp and its concepts.

------
prakash
+1 for HtDP, after which the schemer series, followed by SICP.

Also, read this: <http://norvig.com/21-days.html>

------
samdk
I have not read SICP, but I have read The Little Schemer. It's my favorite
programming book.

If does a _very_ good job of getting you comfortable with thinking
recursively. It not meant to impart immediate 'practical' knowledge, and it
really uses Scheme as a vehicle for teaching recursion, not the other way
around. You can do the exercises in any Lisp dialect easily enough, and even
in JavaScript (<http://javascript.crockford.com/little.html>).

My recommendation would be to use The Little Schemer as well as another, more
practically focused book on Scheme or Lisp and work through them concurrently.

Also, if you're just getting started and are going to be using Scheme, the
DrScheme mini-IDE makes it very easy to get started quickly. It's part of the
PLT-Scheme package: <http://www.plt-scheme.org/>.

------
garply
Just for an alternate opinion:

I find programming books relatively valueless. Just start reading code and
programming. Google when you don't understand a piece of code.

Approximately how to get started on an Ubuntu system:

    
    
      $ sudo apt-get install mzscheme
      $ mzscheme
      > (print "hello world")
    

Then Google for increasingly complex programs.

------
fadmmatt
SICP and HtDP are good for starting out.

I often use Scheme when I teach compilers, and I've got a few Scheme-related
blog posts designed for the curious student:

* Church encodings: [http://matt.might.net/articles/church-encodings-demo-in-sche...](http://matt.might.net/articles/church-encodings-demo-in-scheme/)

* Macro-generating macros: [http://matt.might.net/articles/implementation-of-scheme-vect...](http://matt.might.net/articles/implementation-of-scheme-vector-struct-in-syntax-rules/)

* Programming with continuations: [http://matt.might.net/articles/programming-with-continuation...](http://matt.might.net/articles/programming-with-continuations--exceptions-backtracking-search-threads-generators-coroutines/)

------
Mathnerd314
I suggest Practical Common Lisp. (considering that it's both online and in
book form)

------
Kaizyn
I would recommend you start with The Little Schemer and follow up with The
Seasoned Schemer (the sequel to the other book). These two will give you a
good feel for some aspects of Scheme programming, but they will not go into
the same depth about the fundamentals of computer science you'll get from
SICP. After reading them, then you should advance to either How To Design
Programs as suggested before SICP or if you're feeling really ambitious jump
right to SICP.

------
tebeka
My vote goes to SICP as well, however if you don't have much time
<http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html> is helpful.

------
elbenshira
If you have little programming experience, I'd start with The Little Schemer.
It's short and concise. Plus, I think you'll have more fun with The Little
Schemer.

Disclaimer: I've never read SICP.

