JVM Fundamentals for Clojure by Eric Normand