Hands-down the best introductory Clojure video tutorial
If you've watched the Rich Hickey videos about the philosophical underpinnings of Clojure and would like to get practical with the language, I recommend watching the "Intro to Clojure" series of videos created by Code School. I find this to be a brilliant introduction to Clojure and Lisp — as dense and comprehensive as one can get in 10 videos of about 8 minute average duration.
The presentation is lucid and moves at a pleasant pace. What I especially like about this series is the great balance between the conceptual and the practical. Lisp concepts are illustrated using small, transparent code examples. This explains the core principles straight-on in a concrete manner without wandering off into abstractions and indirection.
Lisp is really more of a model of expression evaluation than a "typical" programming language and the videos make that extremely clear.
Topics covered, among others:
- What does being a "functional language" truly mean. Gold nuggets here!
- Clojure Persistent Collections and their implications for memory
- How object equality and identity are handled in Clojure
- List evaluation; symbols to vars and lists to function calls
- The two parts of Lisp code execution - the Reader and the Evaluator
- Organization of code: vars, symbols, function calls, and namespaces
- Calling Java from Clojure and Java objects in Clojure
- How language constructs (special forms) are evaluated compared to other expressions
- Literal evaluation with quoting
- Some great points about indentation of Clojure code compared to other dialects of Lisp
- Lexical scope and how it relates to referencing code in a different namespace
- Tail recursion
- Macros and code as data
- Lazy sequences
- Object-orientation in the light of Clojure-style functional programming
- Multimethods and variatic functions (functions with optional parameters)
- A short discussion of concurrent programming.
I feel I am more ready to take on Clojure after watching these videos. Check them out.