Quick Getting Started with Clojure
Here is a quick list of opinionated links on how to get started with Clojure I prepared for a friend recently. I think it adds some value on top of a standard Google search, especially for beginners, by excluding a few (but very good indeed) advanced resources you can discover later.
- The crash video introduction. If you have a Java background, have a look at the standard Rich Hickey intro part 1 and part 2 intro from blipTV. If you have a Ruby background you could enjoy also the Stuart Halloway’s introduction for rubyists. Having seen both and having both Java and Ruby experience, I suggest you to cope with the Java syntax if you can and watch Rich Hickey first. Stuart tends to compress concepts (both here and in his book, Programming Clojure by the pragmatic).
- If you don’t like watching videos (I like them a lot, but I can’t easily find the right time window to do it) you can start right away writing code with the Clojure Koans. Of all the possible assisted tutorials, the koans format has the best “zero to keyboard” acceleration. In all cases, try not mess around with the Java classpath at this point if you can. In case you feel disoriented about how to install and run the github koans on your computer, read this good koans preparation article, but skip Leiningen and just place the jar suggested from the Github page into the lib directory.
- If you want an offline option, I suggest Practical Clojure by Luke Vanderhart and Stuart Sierra over the older and more practical Programming Clojure by Stuart Halloway. The introductory material in Practical Clojure is very well crafted, including a gentle introduction to the functional programming paradigm shift and a mind-opening explanation of the meaning of state in object orientation. Stuart’s book is for sure another option but also a more advanced step in my opinion, being essential and practical.
- Fully equipped with your introductory material I suggest you to attend a programming dojo. A dojo is a form of collective pair programming with very simple rules to rotate people at the keyboard. The dojo forces you to put the new knowledge into practice and at the same time you’ll get in contact with more experienced Clojure programmers full of expertise to share and make you faster and better. London Clojurians for example are building a simple game with Clojure as a learning tool and meetup once a month. Hopefully you’ll find a dojo close to you, or maybe you can create your own!