Course Overview

What this Clojure Programming course covers, how to use it, prerequisites.

A structured, hands-on course on Clojure, the modern, functional Lisp for the JVM (and JavaScript via ClojureScript). It runs from your first REPL expression to immutable persistent data structures, sequences and laziness, functions and destructuring, namespaces, state management (atoms, refs/STM, agents), concurrency (futures, promises, core.async), polymorphism (protocols, records, multimethods), Java interop, macros, transducers, clojure.spec and Malli, testing (clojure.test, test.check), performance tuning, web development (Ring, Reitit), databases (next.jdbc, HoneySQL, Datomic/XTDB), system architecture (Integrant, Component), ClojureScript, Babashka scripting, data science, and production deployment.

Targets Clojure 1.11/1.12 with the official Clojure CLI (deps.edn) and tools.build (plus notes on Leiningen). Check your version with clj -M -e "(clojure-version)".

Course Overview

Beginners, Java/JVM developers, functional programming learners, backend and data engineers

Basic programming knowledge helps; JVM familiarity is a bonus for interop ~80–100 hours (self-paced), 11–12 weeks

JDK 17/21+, Clojure CLI, an editor: VS Code + Calva, IntelliJ + Cursive, Emacs + CIDER, Vim/Neovim + Conjure

REPL, 4clojure-style problems (4ever-clojure), Exercism Clojure track, Advent of Code, Clojure Koans

Foundations → Functional Programming → Program Structure → State & Concurrency → Polymorphism & Interop → Macros & Spec → Quality → Applications
(1–8)         (9–16)                   (17–21)             (22–27)               (28–31)                  (32–34)          (35–38)   (39–46)