What You Should Know Now — and What's Next
What You Should Know Now
- Reading Clojure's syntax and working in a REPL
- Immutable values, vectors, lists, maps, and sets
- Functions, closures, destructuring, and higher-order functions
- Sequences, laziness, the sequence library, and transducers
- Threading macros and data-oriented design with plain maps
- Namespaces, error handling with
ex-info, and Java interop - Atoms, refs, agents, futures, promises, and delays
- Protocols, records, and multimethods
- Macros, core.async, and clojure.spec
- Projects with deps.edn and Leiningen, testing, and performance
- Web services with Ring, databases with next.jdbc, ClojureScript, and Babashka
What Should You Learn Next?
- Java — Java is Clojure's host; knowing the JDK and the JVM helps with interop, performance, and deployment.
- Common Lisp — Lisp to see where Clojure's ideas — macros, the REPL, code as data — came from.
- Haskell — Haskell for a strictly typed take on functional programming.
- Scala — Scala, the other big functional language on the JVM, with a static type system.
- JavaScript — JavaScript if you plan to write ClojureScript and use npm libraries.
Build Something
Pick a problem with real data — your finances, a hobby, an API you use — and build a tool around it at the REPL: load the data, explore it, write the functions, then wrap them in a small web service or a Babashka script. Share it, and read the source of libraries you use; Clojure code bases are small enough to learn from.