Clojure for the New and Uninitiated

So you want to learn Clojure. Maybe you’ve (I’ve) started a job as at a startup and you (me) literally have no idea what functional programming is.

In 2016 I started working at a startup that uses machine learning to read documents and pull out the important bits for lawyers to review. I was hired as a UX developer — so, someone with both design and dev skills. Problem was my dev skills were solely in Javascript and a tiny amount of PHP. I jumped into a workplace where people were really nerdy (always a good thing!) about functional programming, and Clojure was the tool of choice.

What is Clojure?

Clojure is a functional LISP language, very unlike JS or PHP. To quote Wikipedia:

Clojure is a general-purpose programming language with an emphasis on functional programming.

Functional programming is a style of writing code that provides your program with special features (for example, it renders data immutable, and that makes it ideal for working with large amounts of information). Clojure is also a LISP language, made primarily for math notation, and popular in machine learning research.

However, if I had to describe Clojure tersely, I would say it is a language with many many brackets 😋 You will see why when you start on your journey.

Where do I learn Clojure?

Based on my own learning, here is my suggested curriculum for getting started.

Start here :

  • Clojure for the Brave and True — this is a free and hilarious ebook that introduces you to basic concepts in Clojure in real english.
  • Iloveponies — this is my absolute favourite ❤. This is a MOOC that is hasn’t been updated in awhile, but has many exercises to get you playing with the basics that you learn in Clojure for the Brave and True.

Continue with puzzles:

  • Clojure Koans — Clojure Koans continue in the tradition of Ruby Koans and slowly introduce you to Clojure concepts through riddles you mull over before answering.
  • 4Clojure — these puzzles start easy and get progressively harder.

Learn in person!

The Clojure community is small, and as a result can be pretty male-dominated. If you are female or female-identified, ClojureBridge is a solid place to get some in-person learning. Check the ClojureBridge schedule for workshops in your area. If there aren’t any, take a stab at the ClojureBridge curriculum online.

Learn ClojureScript

If you want to keep learning, give the ClojureScript Unravelled gitbook a try. ClojureScript is syntactically similar to Clojure, but compiles to Javascript, which gives it more utility for web development.

I am very humble and if you’d like to (kindly) correct any of this information or make suggestions for more resources, please do! 😊