Disclosure: Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Best Courses Guides

8 Best Free Clojure Courses to Take in 2024

Here is a guide with the best free online courses to learn Clojure and master this general-purpose functional programming language to manipulate lots of data with ease!

If you are looking for a language that is easy to code and it’s mainly focused on manipulating data and working with functions, this guide with the best free online courses to learn Clojure is for you!

Clojure is a dynamic, compiled, programming language inspired by Lisp. Thanks to its emphasis on purity and immutability, it is very easy to write parallel and concurrent code and is hence used a lot in data processing applications where concurrency is most often utilized to make things run faster and more efficiently.

Here are my top picks. Click on one to skip to the course details:

Course Workload In Brief
1. Poetry of Programming (Akita International University) 135 hours Best free overall university-level course for programmers and non-programmers
2. An Animated Introduction to Clojure (Mark Mahoney) N/A Best free interactive animated course for programmers
3. Functional programming with Clojure (University of Helsinki) 112 hours Best free university-level course for programmers
4. Enterprise Clojure Training (Timothy Pratley) 20 hours Best free course for software developers
5. Clojure Crash Course (Kelvin Mai) 1 hour Best free short crash course on the fundamentals of Clojure
6. Get Started with Clojure (Calva.io) N/A Best free interactive crash course focused on hands-on REPL coding
7. Rich 4Clojure (Peter Strömberg) N/A Best free exercise provider for programmers of all levels
8. Clojure (Exercism) N/A Best free exercise provider with mentoring

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, Boeing, 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.

Clojure follows the philosophy of the Lisp family of languages known as code-as-data. This leads to another powerful strength of Clojure — metaprogramming. Developers can modify and extend the language itself to define new language constructs (with macros) and control the evaluation of code. And since Clojure is a compiled language, efficient, high-performance code can be generated at runtime to create highly flexible and dynamic applications.

As parallelized hardware becomes more accessible and the need for big data processing increases, the demand for developers who can work with these technologies will likely grow as well. In fact, according to the Stack Overflow Developer 2022 Survey, Clojure developers are the highest-paid developers among all programming languages right now. So, if you are interested in a career in data-intensive fields, Clojure is definitely a language worth learning.

Find your next course on Class Central.

Best Courses Guides Methodology

I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:

  1. Research: I started by leveraging Class Central’s database with 100K online courses and 200K+ reviews. Then, I made a preliminary selection of Clojure courses by rating, reviews, and bookmarks.
  2. 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.
  3. Select: Well-made courses were picked if they presented valuable and engaging content and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, affordability, release date, ratings and enrollments.

Course Ranking Statistics

Here are some aggregate stats about the ranking:

  • All of the courses in this ranking are free.
  • Two of the courses are university courses, whereas the rest are independent.
  • All of the courses in this ranking are beginner-friendly (no knowledge of Closure or Functional Programming needed).
  • Most of the courses in this ranking contain exercises for you to practice with.

Without further ado, let’s go through the top picks.

1. Poetry of Programming (Akita International University)

My #1 pick for the best free Clojure course is Poetry of Programming created by Prof. Attila Egri-Nag.

This university-level course is taught to Japanese students at Akita International University in Japan and displaced Ukrainian students at UCU Open University.

The course is an elementary puzzle-based introduction to functional programming in Clojure. Designed for non-programmers like Liberal Arts students (although experienced programmers can benefit greatly too!), the aim of the course is for students to experience the joy of computer programming while at the same time developing programming skills advanced enough to enter the multi-threaded software development role.

Do note that this course is challenging, and programmers may find themselves struggling more than non-programmers, so don’t be afraid to ask for help.

No prior experience with programming is required to take this course.

What You’ll Learn

You’ll begin the course with a historical overview of Clojure and its predecessor, Lisp. Then, see how you can interact with the computer through the command line with the REPL, before learning how to write mathematical and programmatic functions.

Lists are the most fundamental data collection. You’ll learn how and when to use them along with other collections like vectors, hash-maps, and hash-sets. Additionally, you’ll learn how to bind values to symbols with def and let.

Moving on, you’ll study how to create sequences of numbers lazily. This means that you can store natural numbers up to infinity in memory, because expressions are only evaluated when needed. Laziness is a fundamental characteristic of functional programming, and you’ll see the same concept apply when processing collections with map, filter, remove.

Did you know that your programs can make decisions? You’ll learn conditionals and logic operators to help you achieve this. You’ll also learn what recursion is, how to destructure data with pattern-matching, and discover what side-effects are and how they affect the way you write code. Finally, you’ll end the course by exploring how Clojure can be used to make collaborative programmable music and interactive drawings and animations

How You’ll Learn

This course is 15 weeks long, with each week taking 9 hours of study (as the course is worth 3 credits). You’ll learn by reading the course textbook and watching the lecture videos.

You are also provided with lots of exercises, problems, and mini-projects for you to practice with:

Provider GitHub
Instructor Attila Egri-Nag
Level Beginner
Workload 135 hours
Certificate None

Fun Facts

  • Attila Egri-Nag is a Hungarian Associate Professor of Mathematics at Akita International University. He received his PhD in Computer Science and Mathematics from the University of Hertfordshire and has since been researching on Algebraic Automata Theory.
  • The course has been presented at two conferences, one at Clojure/conj and another at ClojuTRE. So if you want to have a taste of what the course is like before committing, check out these videos first.

If you’re interested in this course, you can find more information about the course and how to enroll here.

2. An Animated Introduction to Clojure (Mark Mahoney)

My second pick for the best free course to learn Clojure is An Animated Introduction to Clojure by Mark Mahoney.

In this brief introduction to the Clojure programming language, you’ll focus on reading and understanding coding examples to explain how to program in the language. These coding examples are animated, so you’ll watch how an empty Clojure file grows into a useful program. The course is also taught from an object-oriented programmer’s perspective, so programmers coming from OOP languages don’t need to worry!

Some previous programming experience is required.

What You’ll Learn

You’ll begin the course by taking a look at the basic structure and syntax of a typical Clojure program. Then, you’ll explore how to write expressions, before taking a look at data structures in Clojure (and why they can be both immutable and efficient). Afterward, you’ll learn the unfamiliar way of writing functions in Clojure before investigating how to do I/O by reading from and writing to a file.

Clojure is named as so because functions can return another function as a return value, which is called closures in functional programming. Along with functional programming concepts like recursion and laziness, you’ll see how you can utilize these amazing concepts in real-world programs rather than some esoteric use case.

Macros is another powerful feature that more programming languages should have. They allow programmers to add features to the language that the language inventor never thought of adding. And finally, the last chapter of the course is all about concurrency and how Clojure makes it easy.

How You’ll Learn

This course consists of 7 chapters. You’ll learn by reading through the course pages and following along with the animated code examples the course provides.

Provider GitHub
Instructor Mark Mahoney
Level Beginner
Workload N/A
Certificate None

Fun Facts

If you’re interested in this course, you can find more information about the course and how to enroll here.

3. Functional programming with Clojure (University of Helsinki)

My third pick for the best Clojure course is Functional programming with Clojure from the University of Helsinki.

This university-level course is an introduction to functional programming using the Clojure programming language. It covers everything you need to know about Clojure as well as provides many exercises and projects for you to practice on. By the end of the course, you’ll be able to code meaningful programs in Clojure following the functional paradigm.

You should have basic programming skills. No prior experience with functional programming is required.

What You’ll Learn

After setting up your development environment, you’ll begin by learning how to use the interactive REPL, where you can write code and see it get executed immediately. Here, you’ll practice writing the syntax and concepts you need to write basic Clojure statements and expressions. For example, you’ll learn how to write conditionals and define functions.

In Clojure, structured data is immutable. You’ll learn what this means and how it affects the way you think about data structures like vectors, maps, and sets, including when using abstract sequences like maps and filters. Additionally, you’ll also be enlightened with tips on writing the most idiomatic Clojure code. After that, you’ll be given a project on evaluating poker hands.

Moving on, you’ll explore the function in functional programming deeper. You’ll learn how functions have values and hence can also become the input of another function. You’ll also learn how a function can call itself recursively in its own body, and see how recursion can help with sequences, numbers, and trees. Also, you’ll realize that looping is a form of recursion and that recursion can be used to get a single result from a collection of items. Lastly, you’ll analyze a blog engine written in Clojure before ending the course with a Sudoku solver project.

How You’ll Learn

This course is worth 4 credits, or 112 hours total. You’ll learn by reading the lecture articles and following along with them by doing the exercises. You’ll also be given two big projects for you to work on and apply your Clojure skills.

The course relies heavily on the use of third party cloud services. To complete the course, you will need a GitHub account.

Institution University of Helsinki
Provider MOOC.fi
Instructors Juhana Laurinharju and Jani Rahkola
Level Beginner
Workload 112 hours
Certificate None

Fun Facts

  • The University of Helsinki has published many other free high-quality MOOCs like Elements of AI and Java Programming on their website, MOOC.fi.
  • Juhana Laurinharju is a research assistant at the department of Computer Science at the University of Helsinki. He gave a conference talk on the power of lenses at ClojuTRE 2019.
  • Jani Rahkola is a masters student at the University of Helsinki. He’s a programming language enthusiast and has taught this Clojure course at the University of Helsinki.

If you’re interested in this course, you can find more information about the course and how to enroll here.

4. Enterprise Clojure Training (Timothy Pratley)

Enterprise Clojure Training, as the course name implies, is a training course for developers and senior Developers working on enterprise software who want to eventually adopt Clojure into their source code.

By the end of the free course, you’ll be able to:

  • Write Clojure code,
  • Structure Clojure projects,
  • Interop with Java,
  • Interface with a database,
  • And use Clojure’s parallel programming and concurrency facilities.

Some previous programming experience is necessary to get the most out of this course.

What You’ll Learn

This course is divided into 12 bite sized sections: the Clojure ecosystem; Clojure syntax; functions; unit testing; control flow; functional programming; Java interop; concurrency; polymorphism; interacting with a database; specifications; and macros.

The course begins with a tour of the Clojure ecosystem where you’ll get to know the tools that can help you get on the road to proficiency. After that, the basic common programming concepts will be highlighted to you, including data types, collections, bindings, and namespaces.

Next, you’ll become acquainted with how functions work and how to use them in the context of functional programming. In addition, you’ll also know how to use control flow statements and how to test your code (important during production!). Another thing you’ll figure out is how to interoperate Clojure code with Java code.

One of the best things about Clojure is that it is easy to do parallel programming and concurrency. You’ll learn how to make parallel web requests and interact with a database to show this off. The last few things the course discusses before its conclusion is polymorphism, specifications, and macros.

How You’ll Learn

This workshop is 2 days long, with each day taking 10 hours to complete. It is divided into 12 bite sized sections, with each section having exercises to help you put the teachings into practice. In addition, there are 4 challenges spaced throughout the course where you’ll stretch your skills to its fullest potential by trying out the tasks at hand.

Provider GitHub
Instructor Timothy Pratley
Level Beginner
Workload 20 hours
Certificate None

Fun Facts

  • Timothy Pratley is the author of the book “Professional Clojure”, and a contributor to the Clojure core language. He has 18 years of professional software development experience and has spent the last 4 years exclusively using Clojure and ClojureScript developing enterprise systems for Fortune 500 companies.
  • He enjoys making YouTube videos about Clojure on his channel.

If you’re interested in this course, you can find more information about the course and how to enroll here.

5. Clojure Crash Course (Kelvin Mai)

Clojure Crash Course is a free introductory course teaching the basics of Clojure, functional programming, and LISP principles. By the end of this course, you should be comfortable enough to start writing your own Clojure programs.

The course assumes that you have prior programming experience.

What You’ll Learn

The course begins with an introduction to the REPL and Clojure’s basic syntax. The REPL is something every Clojure programmer should get used to as part of REPL driven development. Then, you’ll learn how to assign values with def and how to access the types of values.

Next, you’ll learn about a few data structures, like lists, vectors, sets, and hash maps. Data structures in Clojure have some quirks compared to other non-functional programming languages like immutability, so you’ll get to know how to use them as well as the functions associated with them. Speaking of functions, you’ll also investigate how functions work in Clojure, including higher-order functions where functions can accept functions as an input.

Finally, you’ll wrap up the course by talking about namespaces as well as atoms that act as a method of managing shared, synchronous, independent state.

How You’ll Learn

This course is 1 hour long. You’ll learn by watching the lecture video and following along with the instructor as he codes.

Channel Kelvin Mai
Provider YouTube
Instructor Kelvin Mai
Level Beginner
Workload 1 hour
Certificate None

Fun Facts

  • Kelvin Mai is a full stack software engineer who makes free tutorials and courses about web development and topics that I’m interested in.
  • He also has another short video on destructuring in Clojure.

If you’re interested in this course, you can find more information about the course and how to enroll here.

6. Get Started with Clojure (Calva.io)

Get Started with Clojure 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.

You should have some programming knowledge prior to starting this guide.

What You’ll Learn

There are three files which will serve as your interactive guides:

  1. hello_repl.clj – The basics of how to evaluate code in Calva (i.e. using the REPL)
  2. hello_paredit.clj – A super brief intro to Calva structural editing (Paredit)
  3. 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.

How You’ll Learn

This course consists of 3 files, which you’ll work through individually. You’ll learn by interactively coding in the REPL with the exercises.

Institution Calva.io
Provider GitHub
Instructor Peter Strömberg
Level Beginner
Workload N/A
Certificate None

Fun Facts

  • Peter Strömberg is the creator of Calva, co-creator of Joyride, and developer contractor. He has 40 years of developer experience and is currently working at Agical AB as a full-time Software Developer.

If you’re interested in this course, you can find more information about the course and how to enroll here.

7. Rich 4Clojure (Peter Strömberg)

Rich 4Clojure is a port of 4ever-clojure, a website with over 150 Clojure exercises, where you can learn and practice Clojure directly from the comfort of a Clojure REPL enhanced editor for free.

You’ll take your first baby steps in Clojure by solving these exercises of increasing difficulty levels and learning about how expressions, functions, and other concepts work in Clojure.

What You’ll Learn

There are four difficulties of exercises: elementary, easy, medium, and hard.

Some of the most basic exercises include using basic data structures (vectors, sets, maps), writing functions, and processing data structures with maps and filters.

Easy exercises will involve 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.

Next, exercises of medium difficulty will have you familiarize yourself with function composition, balancing brackets, and implement lazy searching.

And finally, some of the hardest exercises are analyzing a Tic-Tac-Toe board, implementing the game of life, and finding the Levenshtein distance between two sequences.

How You’ll Learn

You’ll learn by solving programming problems using Clojure and an editor of your choice.  You can start with the easiest problems and work your way up gradually or choose any problem you wish.

Institution None
Provider GitHub
Instructor Peter Strömberg
Level Beginner
Workload N/A
Certificate None

Fun Facts

  • The repo has 150 stars on GitHub.
  • 4Clojure was made by Mitesh Shah and Michiel Borkent. You can find their repo here.
  • This repo acts as a companion to Get Started with Clojure, the ranking just before this course. The author suggests that you do Get Started with Clojure first and do the Calva part of the exercises. Then, you can use the welcome_to_clojure.clj guide in combination with Rich 4Clojure.

If you’re interested in this course, you can find more information about the course and how to enroll here.

8. Clojure (Exercism)

Exercism is a free online coding platform providing programming exercises and challenges of all kinds of difficulty, from beginner level to advanced. If you want to practice your Clojure coding skills, this is the place.

But what makes this course special from other exercise-based sites is that it provides free mentoring on code. If you are stuck with a particularly challenging exercise or you want to see whether your code could be improved, you can request mentoring and an experienced Clojure programmer will give you personalized feedback on it. Pretty cool!

Also, the Clojure programming language happens to have a dedicated learning track with syllabus, so there is a set path of what exercises to take that’ll teach you concepts slowly but surely.

What You’ll Learn

There are two sections to this course: learning mode and practice mode.

In learning mode, you are required to solve learning exercises to unlock other exercises in the syllabus tree. This ensures that you won’t suddenly get shocked by a problem way above your league. You’ll learn concepts like conditionals, lists, strings, numbers, and sequential destructuring.

Meanwhile, practice mode contains exercises of three difficulties once you feel comfortable enough to tackle them head on.

The easy exercises will have you reverse a string, translate from English to Pig Latin, and compute Pascal’s Triangle.

The medium difficulty exercises include calculating the date of meetups, matching brackets, and picking the best hand(s) from a list of poker hands.

And the hardest difficulty of exercises will have you count the scored points on a Go board and reparent a graph on a selected node.

How You’ll Learn

This course is self-paced, so you can take all the time you need to complete the 80+ hands-on programming exercises. Each exercise comes with automatic feedback of your code as well as personal mentoring to help you understand your code’s strengths and flaws.

Provider Exercism
Level All levels
Workload N/A
Enrollments 11K
Certificate None

Fun Facts

  • Exercism provides exercises on 50+ programming languages like Python, Kotlin, F#, and even WebAssembly.
  • Their mission is to help everyone get really good at programming, regardless of their background, share the love of programming, and help people upskill as part of their upward social mobility.
  • Around 120 people have contributed towards the Clojure syllabus and exercises, with over 110 mentors available at the time of writing.

If you’re interested in this course, you can find more information about the course and how to enroll here.

Elham Nazif Profile Image

Elham Nazif

Part-time content writer, full-time computer science student.

Comments 0

Leave a reply

Your email address will not be published. All comments go through moderation, so your comment won't display immediately.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Browse our catalog

Discover thousands of free online courses from top universities around the world like MIT, Stanford, and Harvard.

Browse all subjects