I don't agree with the suggestion as I fear that beginning with SICP could just demotivates a beginner and that early positive feedbacks (related to the goal to achieve) are important.<p>While Scheme is conceptually simpler than Clojure, Clojure remains relatively simple in its conception. Here is what makes it a little more complex:<p>- one needs to know a bit of Java to really use it fully. The integration with Java is so nice that it's not rare to see direct calls to Java APIs without using wrappers, for instance when there is no Clojure library to do the job.<p>- one needs to understand the different ways of dealing with concurrency and learn to choose the appropriate one for a given problem.<p>- one needs to understand how protocols work, when they are needed and when multimethods are prefered. This also implies understanding the differences between deftype, defstruct and defrecord.<p>That said, it remains relatively simple because you only have to deal with functions, macros and namespaces and all is rather uniform.<p>Here is what I would suggest to begin with Clojure:<p>- if you have some Lisp background just pick a book like Programming Clojure (short, nice to read and direct to the point) or Practical Clojure (also short and up to date regarding protocols)<p>- if you have some Java or OO background but don't find confident enough with a Lisp syntax read the first chapters of Practical Common Lisp and then one of the other books mentioned above. <a href="http://www.gigamonkeys.com/book/" rel="nofollow">http://www.gigamonkeys.com/book/</a>
This book explains really clearly the why of the Lisp syntax and also macros (better than Programming Clojure on this point but this is mostly due, I guess, to the fact that Programming Clojure is more concise).