Eric Normand Courses/B08 JVM Fundamentals for Clojure

Understand the JVM so you can love Clojure

27 lessons teaching you the basics of the Java Virtual Machine, how to interface with Java, and how to run your application in production.
The number of undefined terms in documentation can be infuriating. What is a CLASSPATH? What's PermGen? Do you get lost in the massive standard library? Have you ever given up on an exception because you were crushed under the weight of the stack traces? Do you hate using Java directly instead of a nice Clojure wrapper? The number of things to learn just to start using Clojure is enormous.

The truth is, the JVM is a big, complicated system that has evolved over time. Clojure sits on top of it like a rider on a horse. When a Java programmer gets into Clojure, it's all gravy. They already know the ins and outs of Java and the JVM, so to have a sweet language like Clojure to control it, they squeal with joy. But if you don't have that JVM experience, the squeals are not joyful. It is definitely confusing.

Wouldn't it be nice to skip 10 years of Java experience and see what the experts see?

Sure, you're not going to become an expert overnight. That's not what I'm talking about. However, some of the concepts are more important than others. In fact, the stuff that a Clojure programmer needs to use most days is quite small. If you learn just those, you'll be playing on easy mode. Further, you can learn the tricks experienced Java people use to find out what they don't know. It's often as easy as googling the error message.

  • $48

B08 JVM Fundamentals for Clojure

  • Closed

This course teaches you the hands-on, nitty gritty details of the JVM and Clojure/Java interop that you would pick up after many years of programming Java. It combines videos with reference sheets to give you easy access to the accumulated skills of years of experience. With this course, you won't have to worry about stack traces, JVM options, or the standard library again.

Topics covered:
  • Calling methods and accessing fields.
  • Class and method introspection.
  • Reading Javadocs.
  • Handling and raising errors and exceptions.
  • Manipulating Java arrays.
  • Dealing with dates and times.
  • Understanding the classpath.
  • The anatomy of a JAR
  • Controlling JVM memory usage.
  • Running java and Clojure programs from the command line.
  • Doing I/O on the JVM
  • Helpful macros for manipulating stateful objects

  • $48

B08 JVM Fundamentals for Clojure

  • Closed

What people are saying

I just wanted to say thank you for making a lesson out of my suggestion. I watched it today and think it is really excellent. JVM Fundamentals is really a jewel of learning material. Congratulations and thanks for your great work.

Jorge Duenas

I can't overstate the importance of your courses on JVM, namespacing, and lein. I know they're much drier and not as "sexy" as the FP courses but as the tech lead and architect for our systems (we're a Python/JavaScript shop but I've been salivating over clojure/cljs for awhile) my lack of understanding of those topics has been the major hurdle for me adopting the language for major products, since if anything goes wrong it's my head on the chopping block. It's something I could learn on my own but time is super precious. These courses have given me the confidence to greenlight the adoption of Clojure. From a senior engineer perspective they're way more important than the "how to program" courses (although I enjoy those too).

James Tolton

  • $48

B08 JVM Fundamentals for Clojure

  • Closed

Contents

Java Virtual Machine Basics

Understanding the abbreviations of the Java world—JVM JRE JDK
Preview
Choosing a JDK—licensing, support, and upgrade schedule
Javadocs
Java Dependencies
Leiningen and Dependencies
Boot and Dependencies
Running Java with options

Interoperation between Java and Clojure

Fields and Methods
Classes and Reflection
Import form
Exceptions and Errors
Java Arrays
Java IO
Files
Dealing with temporary files
Java Threads
Creating a Clojure Library for use in Java
Creating Java classes with gen-class
Creating Java interfaces with gen-interface
Mixed projects (Clojure with some Java)

Deployment

JAR Anatomy
Creating JARs with Leiningen
Creating JARs with Boot
Logging on the JVM
Clojure compiler options
Monitoring Tools
Cloud Monitoring

  • $48

B08 JVM Fundamentals for Clojure

  • Closed