views:

144

answers:

4

I'll be starting a new job soon where Scheme is heavily used. I currently do not know Scheme, but my employer assures me that is not a problem.

Regardless I'd like to hit the ground running and have a working knowledge of the language before my start date. So I'm looking for good resources from which to learn Scheme.

I have had minimal exposure to functional languages. Really only a small chunk of a course devoted to Haskell. But I have a strong background in procedural and OO and procedural languages.

Before it gets requested by a commenter, I am competent with the following languages: C, C++, C#, Java, Perl, Python, and Ruby.

+3  A: 

Watch (or read) the SICP lectures:

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

http://mitpress.mit.edu/sicp/

stmax
SICP is great for learning *programming*, not necessarily learning *Scheme*. They teach pretty much every programming concept ever invented, but really in a way independent of any concrete programming language. Scheme is more used as a notational convention than a programming language. They really only use a very small subset of a very old version of Scheme. I'm not sure whether that is the best approach to learning Scheme. I still recommend them, but not for learning Scheme programming specifically, rather for learning programming in *any* language (and in fact in *all* languages).
Jörg W Mittag
Note, however, that the style of programming that SICP teaches and the style of code that it uses *is* very influential in the Scheme community, so it *will* certainly teach you about idiomatic Scheme programming. After all, the book was written and the course designed (and taught for decades) by one of the inventors and designers of Scheme.
Jörg W Mittag
+4  A: 

One online resource is Dorai Sitaram's "Teach Yourself Scheme in Fixnum Days". Unlike The Structure and Interpretation of Computer Programs, it's pretty focused on teaching the Scheme language instead of using the Scheme language as a vehicle for teaching you a lot of other things.

Pillsy
"Using Scheme as a teaching vehicle" is a brilliant description of SICP. Why didn't I think of that? :-) Oh, and +1 for the Fixnum suggestion.
Jörg W Mittag
A: 

SICP is superb.

"How to Design Programs" is also rather good:

http://www.htdp.org/

The authors are behind much of the PLT Scheme distribution, which is an excellent beginner language (or, rather, has teaching languages which can incrementally expose Scheme syntax - not that there's much of it). They also contributed TeachScheme:

http://en.wikipedia.org/wiki/TeachScheme!

The plt-scheme mailing list (at Brown, I believe) is also an excellent resource.

David Brooks
A: 

I have learned more from The Scheme Programming Language than from SICP. The Little Schemer has also been very good.

ecounysis