The meteoric rise of Clojure seems strange without context. It’s one of the best functional programming languages you can learn and it was only released in 2007.
For such a young language it has gained steam quickly. The community is large and constantly growing, not to mention learning resources aren’t slowing down anytime soon.
In this post I’ll share a handful of my favorite Clojure books ranging from introductory material up to more advanced topics. This is not an exhaustive list of all Clojure books, but it is a list of the best ones you can get on a variety of topics and writing styles.
If I had to make one suggestion for beginners I would absolutely recommend Clojure for the Brave and True. The writing style is fun and super easy to follow regardless of your background. It’s also dense enough to get you on the ground running with Clojure programming.
This is actually one of the newer Clojure books and it’s regarded as a very high quality source of info. You learn from a professional developer Daniel Higginbotham who has a way of writing that just draws you into the language.
Clojure for the Brave and True is marketed as a product that will help you become a better programmer. It starts you off writing code and pushing you right into a real Clojure application. This may sound intimidating but the writing style actually makes it quite do-able even for beginners.
You do not need any prior experience with Clojure or functional programming to pick up this book. It seems to move fast but if you go back over the lessons you’ll pick up the little intricacies quickly.
All the examples are fun and very exciting. This is the ultimate beginner’s guide to Clojure and once you’re done it’ll leave you thirsting for more.
I cannot rave enough about the quality of this book. The authors do an incredible job explaining functional programming and concurrent programming, first starting with theory and quickly moving into practical examples.
Manning publishes Clojure in Action which makes it an ideal choice because you get a free digital copy of the book with every purchase. I’ve always found Manning’s quality to be superb compared to all the other major programming publishing companies.
Macros, protocols, and test-driven development are all touched upon in this 336 page tome to Clojure.
You can pick this up as a novice but it may be surprisingly difficult. It certainly helps to have a little bit of programming experience to help you relate to these topics. But I do think it’s possible to learn Clojure from this book without prior experience if you give yourself enough time to work through the content.
A handful of talented authors contributed to Clojure Programming and it’s one of the best books you can start with. The writing style is easy to follow and many of the examples compare Clojure to other programming/scripting languages.
Each chapter goes into excruciating detail about Clojure with little sections that break away to answer your common questions. Footnotes are used along with callouts to explain snippets of code that seem otherwise confusing or verbose.
The very early chapters introduce you to functional programming which is a tough subject by itself.
As you move forward the Clojure language should get easier and make a lot more sense. You’ll learn common tools and workflows to help you adapt to the process making it easier and much more fun.
Everything is organized in a straight linear fashion where you read one chapter after another. But you can jump around and still keep up with the material if that suits your fancy.
Definitely a great book, highly recommend this to beginners and especially to programmers who already have experience in scripting/coding in other procedural languages.
For a terse yet detailed intro to functional programming check out Living Clojure. The author Carin Meier does not waste any time getting to the details and pushing you along the Clojure learning track.
In the first section you’ll learn about the basics of Clojure including syntax and design patterns. The second half covers detailed examples, tutorials, and guidelines for building real-world Clojure applications.
This is meant for beginners but it’s not as friendly as other books mentioned in this post. I think developers will really enjoy Living Clojure if they already have dev experience and want to pick up a functional programming language.
Since the writing style is terse you may only be able to work through a few pages before needing to look up some phrases. But at 240 pages the content is dense and the price range is fine for a beginner’s guide to Clojure programming.
The best thing about this book is its writing style. All the information here can be found in other books. However it may not be explained as clearly or as succinctly as you might think.
Programming Clojure makes learning this language fun and enticing. The writing style isn’t too dense or too complicated, although technical language is a big part of the book.
You can pick this up with experience in Lisp or Java but you don’t need any prior experience. Truthfully you can pick this up as a complete beginner and work your way through with patience.
But I also feel part of this book is rather “fluffy” with overly-detailed writing styles and code samples. It’s not a bad book at all. However more experienced programmers may feel this is a very lightweight introduction.
Here’s another book by Manning Publishing currently in its 2nd edition. However this picks up where the previous book Clojure in Action left off, taking a now-competent beginner/intermediate developer and giving them more complicated tasks.
The Joy of Clojure starts with some philosophy behind the language and functional programming. But it quickly moves into macros and the more technical concepts behind Clojure programming. The author even touches upon ClojureScript which is a pleasant(yet unrelated) surprise.
Everything in this book is dense and comprehensive. It’s made for programmers who already have some background in functional programming or some prior experience with Clojure.
What you get is a lot more detail on the main topics like concurrency and parallelism in Clojure app development. The text is very heavy and full of tech jargon so it will scare off beginners. But if you’re prepared for a more advanced book then Joy of Clojure is an excellent choice.
I’ll admit that Clojure for web development is not the most popular topic. But as the language gains momentum this is something worth discussing and studying if you have the time.
Web Development with Clojure by Dmitri Sotnikov is a 250 page book first released in the summer of 2016. It’s definitely an up-to-date guide on the power of Clojure and how it can be used for lightning fast webpages or SPAs.
The author Dmitri talks about Clojure in a web workflow including many popular libraries, frameworks, and 3rd party tools like Compojure. And while you aren’t expected to understand what any of these tools do, you should understand how Clojure works and at least some basics of the programming language.
I do not think a typical web developer could just pick up this book and go to town. You do need some functional programming experience because Clojure on the web is very complicated.
However I think Dmitri does an excellent job of breaking down the topic and he’s definitely a respectable author.
I haven’t spent much time building asynchronous applications other than with Ember.js. The majority of JS libraries offer this functionality and I was surprised to see it as part of Clojure too.
Considering there aren’t many books on this topic I would recommend Clojure Reactive Programming to anyone willing to give this a shot. It’s a very complicated topic and this book is not for a beginner.
In fact, this book may even be tough for an intermediate-level developer who hasn’t gotten into concurrent programming in depth.
But the author walks you through many common techniques for building reactive frameworks and components on Clojure. These include real examples like a game built on ClojureScript and components built on the RxJS library.
Get comfortable with Clojure before picking up this book. Once you’re ready to push deeper into concurrent programming I would highly recommend grabbing a copy.
Too many programming books focus on theory and not enough force you into action. This is the beauty of Clojure Applied because it works in your favor to force you to take real actionable steps.
I do think this book works better for someone who already understands the basics of functional programming(even in a different language). But it is possible for a complete beginner to grab a copy and learn Clojure through these practical tutorial examples.
Many of the tutorials go into great detail but the authors take their time explaining common pitfalls and confusing areas. These tutorials may not help everyone but they’re aimed towards novice developers who likely have boatloads of questions.
This book covers the essentials and gets you up to speed with real world Clojure development. I was surprised to find very little on debugging and unit testing, but if you can make your way through this book it’s always possible to find other advanced materials.
There’s nothing on the shelf quite like Professional Clojure. This book delves into a wide range of topics for Clojure development including workflows and best tools for enhancing your projects.
Everything this book talks about is practical and detailed. I think the author jumps around a lot. But this may be good for someone who’s looking to dip their finger into a little bit of everything.
You’ll learn about enterprise-level apps, custom web services with ClojureScript, and best practices for an REPL dev workflow. There is a certain level of expected knowledge so you shouldn’t open this book cold.
But if you already feel comfortable with Clojure then I think Professional Clojure will take you to that next level.
While I applaud the author for his work on this incredible recipe book, I’m surprised there are only 288 pages total. This is one of the few Clojure code snippet books so while it is a tad short it’s still the best resource out there.
Clojure Recipes offers key solutions and best practices to some very common(and not-so-common) problems found in Clojure development. You’ll learn all about 3rd party resources like Datomic and Pedestal, two powerful yet emerging libraries.
I mostly work on the web so I was thrilled to see recipes including Pedestal in this book.
The author’s writing style is clean and it helps you understand the major pain points for each code snippet. However the author doesn’t explain each snippet from scratch. You are expected to have knowledge of Clojure before cracking this open.
However it is my vote for the #1 best Clojure cookbook and it’ll prove invaluable for intermediate-to-advanced programmers who want a Clojure project desk reference.
There is no quick solution to mastering Clojure from nothing. Just like all programming languages you need to put in the work and time, ideally coming out the other side a much better developer.
If you’re brand new to functional programming I’d recommend starting with Clojure for the Brave and True because it’s affordable and easy to read. Developers who already have some functional programming experience might instead go with Clojure in Action because it’s a little more detailed.
There’s no shortage of Clojure books and I don’t see this language losing popularity anytime soon. There are more than enough resources in this list to get you started on the right track to building powerful Clojure apps from scratch. You just gotta find whatever works best for you and give it a go!