- re: editor/IDE, use VSCode + Calva (unless you are already comfortable with emacs or vim)
Even if you already know how to program, Clojure may poses a few unique challenges (highlighted below), depending on where you’re coming from.
- learning the syntax and developing a mental model of the Clojure interpreter
- basic things: defining, using functions; making bindings
- new things: using macros (ex. →), writing macros
- functional programming, in the small
- ex. “how to sum a list without a mutable variable”, etc.
- using FP functions (map, reduce, etc.), anonymous functions, higher-order fns (ex. middleware), closures
- becoming aware of all the functions in clojure’s standard library
- …and libraries in the Clojure community
- learning to manipulate code comfortably in your editor
- ie. becoming comfortable with paredit or parinfer
- learning to adopt the “REPL-driven workflow”
- evaluating code partials in your editor
- (vs. making a change, re-running an entire script)
- functional programming, in the large
- ie. how to architect a full application with minimal state
…with the goal of eventually doing all these things “idiomatically”, ie, “the way most experienced Clojure devs .