I’m a novice programmer interested in web dev, basic sites with an index page, show pages, item filtering, search, auth, and a db. (zero plans for a career in development).
I know basic HTML, CSS, JS, and SQL with a slightly deeper understanding of Elixir and Phoenix. I’m drawn to the simplicity of Clojure as an escape from frameworks, arbitrary syntax and OOP.
Clojure wise, I’ve done a short udemy course and a few other small tutorials. For my main learning resource I’ve settled on
The Clojure Workshop I found it to be the most practical and up to date Clojure book, that doesn’t teach frameworks.
The Problem
At 700+ pages, with everything from hello world to macros it feels comprehensive to a fault. My naive intuition is that there’s a subset of Clojure concepts that if learned, would give me out-sized returns compared to the rest.
I’m including a list of the books contents and I’d be grateful for any feedback on which chapters/concepts could be strategically ignored from the POV of an aspiring Clojure CRUD maker?
-
Hello REPL! (def, let, booleans, repl basics)
-
Data Types and Immutability (maps, sets, vectors, lists)
-
Functions in Depth (destructing, higher-order functions, multi-methods)
-
Mapping and Filtering (map, filter, lazy evaluation)
-
Many to One: Reducing (zipmap, group by, reduce)
-
Recursion and Looping (loop, doseq, recur, take, repeatedly, iterate)
-
Recursion II: Lazy Sequences (lazy-seq, thunks)
-
Namespaces Libraries and Leiningen
-
Host Platform Interoperability with Java and JavaScript (exceptions, errors)
-
Testing
-
Macros
-
Concurrency (pmap, futures, atoms, refs, agents)
-
Database Interaction and the Application Layer (JDBC, SQL, Connection pools)
-
HTTP with Ring
-
The Frontend: A ClojureScript UI (reagent, HTTP endpoints)
Full list of chapters and lessons is available here:
*cross posted in slack and reddit
80/20 for the uninitiated :