I found scheme was extremely intuitive. However, I learned scheme after having learned, in this order, C, C++, Java, python, and lua; so, perhaps you will question what sort of intuition I have here.
scheme issues that could go either way (help or hinder learning):
- lack of complicated syntax (help: easy to learn; hinder: too free?)
- somewhat difficult macro system (help: it’s not necessary for beginners or even intermediate users to use macros; hinder: you will look into them anyway and get frustrated)
- recursion (help: see e.g. A Scheme Story ; hinder: recursion still trips people up sometimes regardless of the language)
scheme issues that point to its favor:
- excellent resources available (Dr Scheme, How to Design Programs, The Structure and Interpretation of Computer Programming, Teach Yourself Scheme in Fixnum days, The Scheme Programming Language…)
- some technical things that a beginner might not understand like first-class functions
- lexical scoping is unusually intuitive, IMO
scheme issues that point against it:
- not a plumbing language, despite the excellent work of many distributions like chicken and PLT; that is, libraries are lacking compared to something like python
- not trivial to embed, compared to e.g. lua; even though it is an excellent extension language it was not designed to be used that way (but see elisp or guile)
How to Design Programs http://www.htdp.org/
SICP: Welcome to the SICP Web Site
TYSiFD: http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html (maybe better if you are already familiar with programming in some other language)
I think most people tend to use first and rest now (and certainly not on atoms ), but I am not super active in the community.