15 Best Clojure Courses for 2024: Lisp for the JVM
Write your entire tech stack in only one language with Clojure/script. Embrace functional programming, immutability, and lispy syntax.
Looking for a course on Clojure or ClojureScript? You’ve clicked on the right article.
Clojure is a dynamic, functional-first programming language inspired by Lisp that runs on the Java Virtual Machine (JVM). In this Best Courses Guide (BCG), I’ve selected the best courses to learn Clojure or ClojureScript, even if you’ve never programmed before. Most of the courses are completely free, and since most Clojurians report that books are the most useful learning resource, I’ve also included them in this guide.
And if you already have considerable experience programming, don’t worry — there are courses specifically designed for you too. I’ve not only included courses that teach the base programming language, but also those that show you how to use popular Clojure libraries like Reagent and Reframe for creating Single Page Applications (SPAs), or Compojure and Datomic for the back-end.
Click on the shortcuts for more details:
Here are my top picks. Click on one to skip to the course details:
What is Clojure?
“If you want everything to be familiar, you’ll never learn anything new” — Rich Hickey
Clojure is a dynamic, general-purpose functional programming language created by Rich Hickey. Designed as a modern Lisp, Clojure runs on the Java Virtual Machine (JVM) and interoperates seamlessly with Java. It is a compiled language that emphasizes simplicity, concurrency, and immutability.
One of the key strengths of Clojure is its strong support for concurrent programming, which allows developers to write code that can take advantage of multiple cores and processors. That is why companies like Walmart, Apple, Netflix, Cisco, and others that need to process large amounts of data quickly and accurately turn to Clojure to solve their problems. In addition, Clojure’s focus on immutability and purity makes it easier to write correct, reliable code that is less prone to errors and bugs.
Adhering to the Lisp family’s philosophy of code-as-data, Clojure boasts another formidable strength: metaprogramming. Developers can modify and extend the language itself, defining new language constructs (through macros) and controlling code evaluation. As a compiled language, Clojure generates efficient, high-performance code at runtime, resulting in highly flexible and dynamic applications.
With the increasing accessibility of parallelized hardware and the growing demand for big data processing, the need for developers proficient in these technologies is expected to rise. Notably, the Stack Overflow Developer 2023 Survey reveals that Clojure developers currently have the fifth highest salaries among developers. If you are interested in a career in data-intensive fields, Clojure is definitely a language worth learning.
Courses Overview
- Most of the courses in this guide are free, except for two.
- Two of the courses are university courses, whereas the rest are independent.
- All of the courses are beginner-friendly (no knowledge of Closure or Functional Programming needed).
- Most contain exercises for you to practice with.
- All are relevant to the latest version of Clojure at time of writing (1.11)
Best Free Book for Programmers (Daniel Higginbotham)
If you ask Clojurians about the best way to start learning Clojure, you’ll likely hear the book Clojure for the Brave and True mentioned the most, with approximately one-third of Clojurians having read it according to the State of Clojure 2023 Survey, for a couple of excellent reasons:
- It’s free: The book can be read online at no cost, though you can buy a copy of the book to support the author
- It’s witty: Daniel opts for a fun, humorous style instead of dreary academic writing. This is also reflected in the exercises, where you’ll do things like assaulting hobbits and tracking glittery vampires
- It’s comprehensive: You’ll learn the tooling, the language, the distribution how-tos, and the mindset. From beginner topics like syntax to more advanced concepts like macros, concurrent programming, and JVM interoperability, this book has everything you’ll need to survive as a Clojure developer.
As the book goes through the Clojure basics at a brisk pace, it’s recommended that you have some programming experience under your belt before you read this book.
Now, you should be aware that the book is almost a decade old. Some of the tooling may be obsolete, but nonetheless everything else from the book remains relevant to this day (especially how to think like a Clojurian). Any questions you may have, you can ask in any of the Clojurian communities mentioned at the end of this guide.
Publisher | No Starch |
Provider | Independent |
Author | Daniel Higginbotham |
Prerequisites | Basic programming experience |
Workload | N/A |
Rating (Amazon & Goodreads) | 4.6/5.0 (193) & 4.3/5.0 (545) |
Cost | Free |
Exercises | Code examples and projects |
Certificate | None |
Best Free Introduction for Non-Programmers (Akita International University)
Don’t know how to code? Start here!
Created by Prof. Attila Egri-Nag, Poetry of Programming aims to help non-programmers experience the joy of computer programming. It’s not a course on software engineering, but rather developing creative problem-solving skills through functional programming — hence the poetry in the course name. Also, it’s entirely free!
You don’t need programming knowledge or strong math skills to take this course. It’s also suitable for experienced programmers who might find it hard to unlearn many of their habits when working with Clojure.
More importantly, you’ll have some serious fun in this course. Together with course textbook and lecture videos, you’ll also solve programming problems such as:
- Reading exercises for a traditional paper-based exams
- Coding exercises for turning ideas into source code
- Practice problems that involve relatively little work
- 15 mini-projects, some of them include Caesar shift cipher, maze solver, and finding roots by halving.
This course is 15 weeks long, with each week taking 9 hours of study (as the course is worth 3 credits). Some of the things you’ll take away from this course include:
- A historical overview of LISP and Clojure
- How to use the REPL
- List, the most fundamental data collection
- Other associate data structures, including vectors, hashmaps, and hashsets
- Using range for lazily creating sequences of numbers, like take, drop, take-while, drop-while
- Functional collection processing operations, such as apply, fold, map, filter, and remove
- Conditional and logical operators
- Recursion and destructuring
- Clojure in collaborative programmable music, interactive drawings, and animations.
Prof. Attila Egri-Nag is a Hungarian Associate Professor of Mathematics at Akita International University. He teaches this course to Japanese students at the aforementioned university and to displaced Ukrainian students at UCU Open University. He has also presented this course at two conferences, one at Clojure/conj and another at ClojuTRE, check them out if you want a taste.
Provider | GitHub |
Instructor | Attila Egri-Nag |
Prerequisites | None |
Workload | 135 hours |
Cost | Free |
Exercises | Programming exercises and projects |
Certificate | None |
Best Free Animated Introduction for Programmers (Mark Mahoney)
Mark Mahoney’s An Animated Introduction to Clojure will teach you Clojure visually through code demonstrations right in the browser. These are animated, so you’ll watch Mark fill up a blank canvas with lines of code to create useful and practical programs.
Programmers with an OOP background will benefit the most from this free course, as it’ll show them how to code the functional and LISP way through hands-on examples.
Consisting of seven chapters, you’ll:
- Get familiar with Clojure syntax and basic operations (arithmetic, data structures, Java interoperability)
- Learn about functions in Clojure, including how to define and use them, and how to work with maps as objects
- Understand closures and their applications
- Dive into recursion, including tail recursion, and learn how to apply it to various problems like Fizz Buzz, square roots, and string-to-integer conversion
- Explore lazy sequences and their benefits in generating prime numbers and calculating poker probabilities
- Learn about macros and how they can be used to extend the language
- Understand Clojure’s concurrency primitives, including threads, refs, atoms, and agents, and how to apply them in real-world scenarios like a threaded poker game and thread logging.
Mark Mahoney is a Professor of Computer Science at Carthage College. He is the creator of Storyteller, a tool that helps software developers walk others through their work in guided code playbacks. He has animated books on Python, C++, SQL, and Elixir.
Mark has also uploaded a YouTube playlist covering the course with added commentary.
Provider | GitHub |
Instructor | Mark Mahoney |
Prerequisites | OOP background |
Workload | N/A |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Free Overview of Clojure for Programmers (Pavel Klavík)
Still on the fence on whether to learn Clojure/ClojureScript or not? This free YouTube presentation by Pavel Klavík is sure to convince you!
As a former Google Engineer and current co-founder of OrgPad, an online whiteboard for collaborative brainstorming, Pavel certainly has the credentials to demonstrate Clojure’s utility to skeptical programmers. With the vast majority of OrgPad’s codebase written in Clojure and ClojureScript, he speaks from experience.
Some programming background is recommended, as the presentation includes a significant amount of live coding. In this concise 2.5-hour session, you’ll:
- Understand the advantages of Clojure, such as its regular syntax, immutability, ease of parsing and code transformations, and powerful macro system
- Become familiar with key Clojure data structures like vectors, hash maps, and hash sets, along with their usage
- Grasp Clojure’s approach to conditionals and branching, using the “truthy” and “falsy” concepts
- Learn how Clojure uses atoms and other state management primitives to handle changes over time
- Discover the benefits of higher-order transformations in Clojure, such as map and reduce
- Appreciate the “data-oriented programming” approach, which enables concise and powerful data manipulation
- Experience the power of REPL’s interactivity and instant feedback by rapidly iterating a small but functional Tic-Tac-Toe game in both Clojure and ClojureScript.
Channel | OrgPad |
Provider | YouTube |
Instructor | Pavel Klavík |
Prerequisites | Programming experience |
Workload | 2–3 hours |
Views | 2K |
Likes | 88 |
Cost | Free |
Exercises | Live coding |
Certificate | None |
Best Free Crash Course for Programmers (Kelvin Mai)
If you’re a programmer in need of a quick crash course on Clojure, here’s one.
Clojure Crash Course is a free introductory course that’s less than an hour long. You’ll learn the basics of Clojure, functional programming, and LISP principles. By the end, you should be comfortable enough to start writing your own Clojure programs.
Through Kelvin Mai’s code demonstrations with explanations, you’ll cover:
- The REPL and REPL-driven development
- Configuring a Clojure-aware editor (in VSCode or Neovim)
- Bindings and basic types
- Data structures: lists, vectors, sets, and hash maps.
- Functions and higher-order functions
- Dependency management with deps.edn
- Namespaces
- Atoms
Kelvin also has another short video on destructuring in Clojure.
Channel | Kelvin Mai |
Provider | YouTube |
Instructor | Kelvin Mai |
Prerequisites | Basic programming experience |
Workload | 1 hour |
Cost | Free |
Exercises | Code demo |
Certificate | None |
Best Paid Comprehensive Course for Programmers (Eric Normand)
If you don’t mind shelling out cash for a well-structured, hands-on course by an expert Clojure developer, look no further than Eric Normand’s paid course: Beginning Clojure.
With over 20 years of experience as a professional programmer, first with Common Lisp and then Clojure, he’s the go-to guy for functional programming and LISP.
It’s comprehensive, with 240 lessons (plus 2 bonus videos) making up a massive 42 hours of content. And unlike Helsinki’s MOOC, this course is completely up-to-date.
The course aims to get anyone who already knows how to program become productive with Clojure, including changing your programming habits for the better. It’s split into 8 modules, covering tooling to Clojure to the JVM. Each module is filled with fun exercises and functional programming best practices. The modules are listed below:
- Introduction to Clojure, by guiding a robot how to bake a cake with Clojure functions
- REPL-Driven Development, where you’ll learn how to modify a system that’s already live
- Language Basics to help you nail the most important ideas in Clojure to help you think like a Clojurist
- Leiningen, the most popular Clojure project management tool. You’ll learn how to create and manage projects like a pro
- Functional Programming and its boons. You’ll master higher-order functions, recursion, and other FP goodness
- Intro to clojure.test. You’ll write high-quality tests while minimizing boilerplate
- Applied Clojure, wherein you’ll work with multiple data formats and do web scraping
- JVM Fundamentals to help you push your skills ahead from the crowd. You’ll learn how to seamlessly interoperate between Java and Clojure, while taking note of JVM gotchas.
Provider | Independent |
Instructor | Eric Normand |
Prerequisites | Programming experience |
Workload | 120 hours |
Cost | Paid |
Exercises | Code demos and hands-on projects |
Certificate | Paid |
Best Free Interactive Tutorial for Programmers (Calva)
Do you use VSCode? Do you want to get to coding in Clojure right away?
Learn Cloiure using Interactive Programming is a short free interactive guide on Closure fundamentals and REPL driven development — no installation required. It’ll give the curious-minded a delightful taste of the language, as it did for me.
To get started, you should install the Calva extension on your VSCode. You’ll learn by interactively coding in the REPL with the exercises. Here are the files that’ll serve as your guide:
- hello_repl.clj – The basics of how to evaluate code in Calva (i.e. using the REPL)
- hello_paredit.clj – A super brief intro to Calva structural editing (Paredit)
- welcome_to_clojure.clj – The very basics of the Clojure language.
- Topics include: Expressions, Keywords, Strings, Namespaces, Collections, Functions, Macros, Conditionals, and a lot more.
Peter Strömberg is the creator and co-creator of two major Clojure tooling: Calva and Joyride. He has 40 years of developer experience and is currently working at Agical AB as a full-time Software Developer, which also pays him for his open-source work.
Institution | Calva |
Provider | GitHub |
Instructor | Peter Strömberg |
Prerequisites | Beginner |
Workload | N/A |
Cost | Free |
Exercises | Interactive coding exercises |
Certificate | None |
Best Free Exercise Platform for All (Exercism)
If you want a structured exercise platform, there’s Exercism.
Exercism is a free online coding platform providing programming exercises and challenges of all kinds of difficulty, from beginner level to advanced. Each exercise comes with automatic feedback of your code as well as personal mentoring to help you understand your code’s strengths and flaws.
What makes this course special from other exercise-based sites is that it provides free mentoring on code. I’ve tried it out myself, and I can confirm it works. In two days, I got an experienced Clojure programmer to give me actionable feedback on one of the exercises. Pretty cool!
There are two ways you can do the exercises:
- Learning Track: Exercises structured by topic and difficulty, from easy to hard
- Practice Track: Unstructured, can take exercises in any order.
Some of the exercises available are:
- Easy: reversing a string, translating from English to Pig Latin, computing Pascal’s Triangle
- Medium: calculating the date of meetups, matching brackets, picking the best hand(s) from a list of poker hands
- Hard: counting scored points on a Go board, reparenting a graph on a selected node.
Exercism also offers exercises for 50+ programming languages, including Python, Kotlin, F#, and even WebAssembly.
Provider | Exercism |
Prerequisites | None |
Contributors | 131 |
Workload | N/A |
Mentors | 259 |
Enrollments | 16K |
Cost | Free |
Exercises | Autograded coding exercises |
Certificate | None |
Also Great Free Exercises for Programmers (Peter Strömberg)
Here’s a place to practice your Clojure programming skills.
Rich 4Clojure contains over 150 Clojure exercises from the now defunct site 4ever-clojure. They aim to help you take your first first baby steps by solving these exercises of increasing difficulty levels.
You can either clone the GitHub repo on your local machine or run a coding editor in the browser using the Gitpod link in the readme.
Some of the exercises you’ll solved, categorized by difficulty level, are:
- Elementary: using basic data structures (vectors, sets, maps), writing functions, and processing data structures with maps and filters
- Easy: finding the nth element of a list, detecting if a string is a palindrome, writing a function for factorials, and finding the greatest common divisor of a number
- Medium: function composition, balancing brackets, and implementing lazy search
- Hard: analyzing a Tic-Tac-Toe board, implementing the game of life, and finding the Levenshtein distance between two sequences.
This repo acts as a companion to Get Started with Clojure, which is the tutorial just before this course. The author, Peter, suggests that you complete Get Started with Clojure first, specifically the Calva section of the exercises. Then, you can run the welcome_to_clojure.clj file in combination with Rich 4Clojure.
Institution | None |
Provider | GitHub |
Instructor | Peter Strömberg |
Prerequisites | Beginner |
Workload | N/A |
Cost | Free |
Exercises | Interactive coding exercises |
Certificate | None |
Best Free Beginners Book for ClojureScript (Andrew Meredith)
Want to build Single Page Applications for the web with ClojureScript? This free online book is for you!
Andrew Meredith has been writing Clojure code professionally since 2012, and in Learn ClojureScript he’ll teach you how to build impressive web apps in pure ClojureScript, whether you’ve got prior programming experience or not. By the end of this book, you’ll have a firm grasp of ClojureScript and the Reagent framework, and have the confidence to explore more frameworks.
The book is split into six sections. Each section includes code examples and review questions. There are also four capstone projects to help you apply what you’ve learned:
- Why ClojureScript Matters: Advantages of ClojureScript over JavaScript, and how to read Clojure code
- Tools of the Trade: Essential ClojureScript tools and practices, including the compiler, build tooling, Figwheel for live-reloading, and the REPL
- Project: A weather forecast widget
- Basic ClojureScript: ClojureScript language fundamentals, including variables in a functional context, control flow, functions, JavaScript interop, and I/O
- Project: A temperature converter
- Working with Data: Immutable collections, the sequence abstraction, the powerful reduce function, and domain modeling
- Project: A personal contact manager
- Idiomatic ClojureScript: Pure functional programming, managing state, namespaces and project structure, error handling, and concurrency with core.async
- Project: A text-based adventure game
- ClojureScript Applications: The Reagent library, enabling the creation of pure, extensible, and functional ClojureScript applications that interact with the DOM.
Provider | Independent |
Author | Andrew Meredith |
Prerequisites | None |
Workload | N/A |
Cost | Free |
Exercises | Capstone projects |
Certificate | None |
Best Free Learning Platform for Clojure/ClojureScript (Lambda Island)
Lambda Island is an online learning platform that provides video courses and tutorials focused on the Clojure programming language and its ecosystem, most of it ClojureScript-related. Since 2022, all of the learning materials have been made available free of charge (you’ll need to sign in first).
These tutorials will teach you how to use some of the most popular frameworks and libraries, as well as other development tips, by building projects. Some of series provided are:
- React and Reagent:
- You’ll build a small web app using React directly, move on to using Reagent, a popular wrapper library, and finally give your Reagent apps a more coherent structure based on re-frame
- Datomic:
- Datomic is an immutable database from Cognitect, the makers of Clojure. This series teaches you about the architecture and data model of Datomic, as well as providing a practical tutorial to get up to speed quickly
- Ring and Compojure:
- The Ring library forms the core of Clojure web development. You’ll gain a solid foundation of the core abstractions involved. You’ll also be introduced to the Compojure routing library, providing an easy way to start building real apps
- ClojureScript Interop & Tooling:
- You’ll tame the ClojureScript compiler, bridging the gap between your functional ClojureScript code and the wild world of JavaScript.
Note that some of the videos are almost a decade old. If you want more up-to-date ClojureScript-related videos, check out the next course below.
Institution | Lambda Island |
Provider | Independent |
Instructor | Arne Brasseur |
Prerequisites | Basic Clojure experience |
Workload | 10–11 hours |
Cost | Free |
Exercises | Code demos and hands-on projects |
Certificate | None |
Best Paid Learning Platform for Clojure/ClojureScript (ClojureStream)
If you want to learn the greatest and latest frameworks for Clojure and ClojureScript, ClojureStream’s your guide.
This paid subscription-based learning platform provides video courses for various popular Clojure/ClojureScript libraries and frameworks. Taught by experienced developers from the Clojure community, it’s intended for intermediate Clojure developers who want to get hands-on experience and best practices by building projects.
Here’s all the courses they have on their site:
- Reagent: A minimalistic ClojureScript interface to React.js
- Re-Frame: A functional framework for building reactive web apps with ClojureScript and Reagent
- Reitit: A fast data-driven router for Clojure/Script
- Datomic: A transactional database with flexible data model, time-travel, and scalable reads
- Kit: A set of tools and libraries for building web apps in Clojure
- Pedestal: A set of libraries for building web services and applications in Clojure.
They also have a podcast you can listen to for free, where they interview Clojurescript devs from the community. There are also live online workshops, the next one being held on 12th April UTC time where you’ll build a graph database in Clojure.
Institution | ClojureStream |
Provider | Independent |
Prerequisites | Clojure experience |
Workload | N/A |
Cost | Paid |
Exercises | Code demos and hands-on projects |
Certificate | None |
Best Free Workshop-like Crash Course for Programmers (IN/Clojure)
Love workshops? Here’s an interactive, introductory, and free tutorial that feels like one.
Clojure by Example is for programmers new to Clojure. You’ll get just enough of Clojure programming to be able to start doing useful (and perhaps dangerous!) stuff with it. If you’re curious about the language but not enough to warrant an extensive investigation, this is the place to start.
You’ll learn through hands-on coding by cloning the repo and running the code files in your preferred editor. Some of the topics you’ll cover are:
- How to wield brackets and S-expressions
- Clojure programming basics, including bindings, conditionals, and functions
- What “Code is Data” means and why it’s awesome
- Designing clean APIs
- Immutability and its consequences
- How to start and architect your own project
- Further resources to explore after completing the course
Institution | IN/Clojure |
Provider | GitHub |
Author | Aditya Athalye |
Prerequisites | Basic programming experience |
Workload | N/A |
GitHub Stars | 145 |
Cost | Free |
Exercises | Interactive exercises |
Certificate | None |
Best Free Bite-sized Course for Programmers (Karthikeyan.A.K)
If you’re looking for a course geared towards Linux users, you’ve scrolled to the right course.
Karthikeyan’s Learn Clojure free YouTube course and online book will get you started with Clojure, from the language basics to the tooling, with numerous code examples. Suitable for those who’ve programmed before, he’ll show you steps to set up your development environment and find community resources that don’t rely on proprietary software.
You’ll cover:
- Setting up the Clojure development environment and understanding the basics of the language
- Mastering essential data structures, functions, and control flow mechanisms
- Leveraging Clojure Spec for data validation and understanding code structure
- Working with sequences, higher-order functions, destructuring, and threading macros
- Organizing code with records, protocols, namespaces, and testing
- Building and managing projects using Leiningen, including external libraries and tooling.
While the book is complete, the YouTube series is still ongoing at the time of writing.
Provider | YouTube |
Channel | Clojure Diary |
Instructor | Karthikeyan.A.K |
Prerequisites | Basic programming experience |
Workload | N/A |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Free University-Level Course for Programmers (University of Helsinki)
The longest free course in this guide goes to Helsinki’s MOOC, Functional programming with Clojure.
While the course is almost a decade old (using Clojure 1.5), it teaches the fundamentals of Clojure (including how to think like a Clojure programmer), so every programming concept you’ll learn here will still apply to current-day Clojure. However, the tooling for Clojure has changed a lot, so I only recommend this course for confident programmers who want a strong grasp of the Clojure basics.
With many course readings, code examples, exercises, and projects given, you’ll be able to code meaningful programs in Clojure by the end of the course.
The University of Helsinki has published many other free high-quality MOOCs like Elements of AI and Java Programming. Check out our catalog to explore their offerings.
Institution | University of Helsinki |
Provider | MOOC.fi |
Instructors | Juhana Laurinharju and Jani Rahkola |
Prerequisites | Basic programming experience |
Workload | 112 hours |
Cost | Free |
Exercises | Code examples and projects |
Certificate | None |
What’s Next
Join a Clojure community if you need help:
- Clojurians Slack: The largest Clojurian community to my knowledge. All the cool Clojurian devs and maintainers of important libraries are here
- Discljord Clojure Discord: Largest Clojurian server on Discord, highly active
- r/Clojure subreddit: Great place to ask one-off questions
Why You Should Trust Us
Class Central, a Tripadvisor for online education, has helped 60 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 200,000 online courses and 200,000+ reviews written by our users. And we’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Best Courses Guide (BCG) Methodology
I built this ranking following the now tried-and-tested methodology used in previous BCGs (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database and the internet. Then, I made a preliminary selection of over 50 courses by rating, reviews, and bookmarks.
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
- Select: Well-made courses were picked if they presented valuable and engaging content, fit a set of criteria and be ranked according to comprehensive curriculum, affordability, release date, ratings and enrollments.