Here’s a list of the resources that have helped me and things I am currently doing to learn Clojure. I’ll update this periodically when I find something interesting or useful.
The best place for beginners to start is to use Light Table and start the insta-repl. It is so nice! If you are into using IDEs, then Cursive is a great tool. Here’s a setup for vim. Alot of people (including myself) use Emacs but it is by no means required for Clojure. If your fingers are muscle memoried to vim, try spacemacs. Whatever editor you use, the most important thing is figure out how to slurp and barf in your editor :) Paredit is your friend.
When getting started with any new language I look to see if they have any koans, after learning about RubyKoans and having so much fun doing them in Ruby I discovered it is a great way to tackle any new language. In fact, I have indexed all the Koans I can find for all the languages. When I decided to learn Clojure, I looked at my list and found the ClojureKoans. If you get stuck, there is a video walk through that I’ve used (plus its a great way to see lighttable in action).
Clojure for the Brave and True - a great resource, read it online for free or buy the ebook version. I started with reading it online, and I liked it and supported the author by buying a copy. It has a great Emacs introduction too and I use that as my base setup for Emacs.
Living Clojure - A great start into learning Clojure. After you get an introduction to the language, you can follow small assignments for practicing Clojure.
Clojure Cookbook - In true O’Reilly Cookbook form, a collection of small bits of code targeted to tasks. Great when you know what you want to do but don’t know how to do it in Clojure.
Clojure Programming by Chas Emerick, Brian Carper, and Christophe Grand - It is a great book and unlike any I have read because it sometimes gives examples in Python/Ruby to explain the Clojure.
Clojure Applied - This is great when you learn the basics, and then you want to know how to write your application in Clojure. After it came out, I wrote a detailed review. It’s just awesome to see the application of Clojure.
- Defn - has come to be one of my favorites, good sense of humor too.
- Cognicast - Very regular and great topics, lots of good content in past episodes too!
- Functional Geekery - Not always about Clojure but always functional.
There are many videos available on youtube - ClojureTV but these are a few that have really stood out for me:
- Why Clojure? - Clojure/West - A talk by @derekslager on why he chose Clojure for his company
- Why Clojure? - Devoxx - Another talk on why clojure by @vijaykiran, I love hearing from people on this topic
- Intro to Clojure - Stu Halloway NDC Conference - watched it about 20 times, this is when I finally understood the phrase “code is data”. Recommend this for all new devs to watch at least twice! or 20!
- String Calc Kata - a great intro to using tdd in Clojure.
- Where’s my Data? - Dave Chemlinsky - great insight into datomic, one of the videos that made me see the light.
- Clojure Cheatsheet - Very handy to keep open when you are coding, everything is hyperlinked for more info.
- PurelyFunctional - Great downloadable tutorials in Clojure and now has a subscription model with more content on a regular basis.
- Datomic Training Online by Cognitect - Watched a couple times to understand the concepts and now relational databases and SQL are ruined for me.
Practice Practice Practice!
Koans are are a great start, but here are some other ways to practice. Learning is always better with a friend, find someone to learn with you.
- 4Clojure - Small problems you can solve and then see other’s solutions. There is an android app for clojure on the go!
- Codewars - Simple problems you can solve in the editor, once you solve it you can see other’s solutions.
- Exercism - Similar to Codewars, has a series of problems you solve and wait for feedback from other users. Has alot of languages if you are a polyglot :) After you complete a problem you are invited to comment on other’s solution.