Skip to content

Latest commit

 

History

History
205 lines (174 loc) · 12.4 KB

README.md

File metadata and controls

205 lines (174 loc) · 12.4 KB

learning-clojure

Resources and suggestions from the Boston Clojure Group for how to learn Clojure

Curriculum

Beginner

  • Environment Setup: Java, Leiningen, IDE (optional) or use Try Clojure
  • Koans to get a taste of Clojure (low barrier of entry, can try in small chunks, free)
  • Setup your favorite text editor for a Clojure dev workflow, particularly including the inline help functionality
  • Book or tutorial, one of:
    • (easy) Clojure for the brave and true (online tutorial)
    • (easy) Living Clojure
    • (mid) Clojure Programming
  • Do
    • Easy 4clojure problems or clojure katas
    • Come to the Boston Clojure Group (or local one)
    • Get a Clojure mentor (how?)

Advanced

Expert

Teacher's Notes

  • Consider not mentioning the L-word.
  • Clojure's contempt for the comma is inspirational.
  • Begin with the value syntax leaving symbols and lists for last.
  • Tell them Clojure values are immutable like Java String if they know Java.
  • Bring stickers.

Books

Beginner Books

  • Programming Clojure - Stuart Holloway
  • Clojure for the brave and true
    • Not yet finished, but good/easy read for people who don't have much of programming background.
  • Living Clojure
    • Living Clojure starts out with a well-written beginner introduction to Clojure, covering basic syntax and core type and functions in a clear and easy to understand form. After the gentle intro however, there's a fairly abrupt jump to advanced topics including concurrency types, macros, multimethods and protocols. The second half of the book is a list of learning resources plus a curriculum sequence of problems meant to gradually build Clojure proficiency.
  • Clojure from the ground up - good for people new to programming
  • ClojureScript: Up and Running
    • in case you're interested in cljs specifically. Bootstrap environment & get basics of clojure.

Expert Books

Special Domain

General Lisp thinking

Videos

Libraries

Tutorials

Problem sites

Clojure Documentation

Build / Dependency Tools

Editors and IDEs

Testing

ClojureScript

Clojure in Production

  • usual Jar deployment workflows
  • docker-clojure

Alternative platforms

Clojure-inspired / transpilers

  • wisp (JavaScript Lisp)
  • Hy (Python Lisp)

Clojure Presentations

Clojure Online Forums / Sites / Newsletters

Single Topic Posts

Meta-lists

Cheatsheets

Common Beginner Hurdles

  • Environment setup (Cider and Leiningen helped me)
  • So many parens!! (But not so many as other LISPs!)
  • Immutable everything
  • Writing loops
  • Contrib library got reorganized
  • there needs to be a resource to help solve command line bullshittery
  • Emacs C-x M-c M- 16-fingers bullshittery
  • Doubt about the usefulness of LISP (stereotype about it being a dead language used only for AI) I think this is totally dated - the grad students and other younger people I work with know nothing about this. Put another way, it's irrelvant.

Boston Clojure Group Resources