Dates & Pricing

$1195 Alumni and Groups of 3+
$1495 Early Bird (thru Aug 13)
$1795 Regular

Would you like us to notify you about the next set of dates?

Learn to program Clojure with Rich Hickey, the creator of the language, and Stuart Halloway, author of the popular book Programming Clojure, in this three-day programming course.

Clojure is a dynamic programming language with the elegance of a good scripting language, and the concurrent power of the Java Virtual Machine. Clojure challenges the assumption that mutable object-oriented programming is a reasonable default for application development. There is another way!

  • Expand your programming toolbox by learning functional programming with a general-purpose language.
  • Eliminate incidental complexity in your programs using pure functions, multimethods, and macros.
  • Write applications that are expressed in a concurrency-safe, functional style and that run on the Java Virtual Machine with efficient access to Java.

You've heard about functional programming. This is your chance to really get into it and learn directly from the experts. Now you can write beautiful code that runs fast and scales well!

What Will I Learn?

How to program Clojure like the pros. This isn't a language reference course or bullet-list overview of Clojure. It's a hands-on programming course where you'll learn Clojure by actually writing Clojure code to solve many common problems. Topics include:

  • Functional programming: Functional programs use immutable values and pure functions to produce programs that are expressive, easy to read, easy to test, and easy to compose into larger systems. Learn to replace variables, branches and loops with more powerful constructs: values, higher-order functions, and sequence comprehensions.
  • Lisp syntax: Clojure code is data: once you know Clojure's data structures you know the syntax. The simplicity and regularity of this approach makes code easier to read, write, generate, and automate. Scared of parentheses? After you learn the joys of paredit you will have nothing to fear.
  • The sequence library: In Clojure, it is a virtue to have a small number of nouns (data structures) that can work a large and flexible set of verbs (pure functions). The centerpiece of this approach is the sequence library, a set of functions that work with all of Clojure's aggregate data types. Learn to use compose Clojure's lazy sequences to solve complex problems without having to introduce any new data types.
  • Concurrency: A sane approach to concurrency cannot be an afterthought, it has to permeate language design. Once it does, many common concurrency problems are surprisingly simple. Learn to use Clojure's software transactional memory, agent, and atoms to write simple programs that will work correctly with multiple threads and cores.
  • Java interop: Adopting Clojure does not mean abandoning the development mainstream. Clojure's Java interop is first-class: it combines easy syntax with proxyless invocation for high performance. Learn to create and call Java objects from Clojure, and to call Clojure code from Java.
  • Multimethods: Polymorphism is a specific solution to a general problem: associating functions with the objects they consume. Learn to use multimethods, which are a general solution to the same problem.
  • Macros: No language is complete, or perfect. But Lisp dialects like Clojure can extend themselves through macros. If you have ever been burdened with duplicate code, or "blessed" with unnecessary design patterns, you will appreciate the unique ability of macros to extend and improve a language to meet your specific domain needs.
  • The Clojure ecosystem: Learn how to integrate Clojure with Swing, web applications, and databases. Also, Clojure is quickly becoming a language of choice for working with the most innovative new Java libraries. See how to use Clojure with libraries such as Cascading+Hadoop, RabbitMQ+swarmiji, and incanter.

“I liked the top-notch presenters, engaging slides, and interesting labs!”

Seth Schroeder

Who Teaches the Course?

Rich Hickey

Rich Hickey, the author of Clojure, is an independent software designer, consultant, and application architect with over 20 years of experience in all facets of software development. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.

Stuart Halloway

Stuart Halloway is the CEO of Relevance, an agile software development shop based in Durham, N.C., USA. Stuart has twenty years experience in software development, and over a decade of experience as a teacher and writer. He is the author of the book Programming Clojure.

“Being able to hear directly from Rich was really valuable. I liked Stu's ability to explain concepts and Rich's depth of knowledge.”

Hitesh Jasani

Who’s It For?

Experienced Programmers. This course will be a good fit for you if...

  • You have 5+ years experience in a mainstream software development language.
  • You have experience with at least one of: (1) Java, (2) some dialect of Lisp, (3) concurrent systems, (4) functional programming.
  • You are a self-starter comfortable installing and building open-source software.

What's a Studio?

Comprehensive, Hands-On Learning. The Studio experience doesn't begin and end in the classroom. The moment you register, we'll help you start preparing for the course. In the Studio you'll enjoy a distraction-free, interactive learning environment. When you return to your project, you'll have access to supporting resources to help you succeed. (Why we call them Studios.)

1. Help You Prepare: Before you arrive, you'll:

  • Receive prep material to help you get the most out of our time together
  • Get detailed laptop set-up instructions

2. In the Studio: In our collaborative learning environment you'll:

  • Learn through guided instruction and hands-on programming exercises
  • Discover new techniques in live coding sessions
  • Get your questions answered by experts and your peers
  • Reinforce the concepts you've learned in books, and dig deeper
  • Discuss timely topics, tips, and tricks

3. On-Going Support: After you return to your project, you can:

  • Get your questions answered on our alumni-only mailing list
  • Find full-time, part-time, or contract developers for your project, or search for your dream job on our job board
  • Get discounts on books, screencasts, and future training to continue learning

4. Success: Deliver your app with more confidence!

  • Show off your app in our alumni gallery.
  • Connect with fellow alumni in our Yearbook.

We think a Pragmatic Studio offers the best developer training around. But don't take our word for it—just ask our alumni! Check out their reviews and the apps they've created.

“Certainly one of the best training experiences I've ever had...The materials are good, the guys are experts and the entire thing was fun—which is hard to say about any training program.”

—Hunter Hillegas

What Should I Bring?

Laptop

Your Laptop. It wouldn't be a hands-on course if you didn't walk away having written some code. You'll be most productive on the laptop you use regularly. (On average, 60% of attendees bring Mac OS X, 30% bring Windows, and 10% bring Linux.)

A few weeks before the course, we'll send out detailed instructions for installing everything you'll need. During the course, you'll get hands-on experience working through prepared exercises, and experimenting on your own, too.

Your Registration Includes

  • A continental breakfast, beverages and snacks, and a hot lunch each day
  • A binder with all the printed material
  • All the example source code to refer back to later
  • Internet connectivity and power during the Studio
  • An invitation to our alumni-only mailing list for help after the Studio
  • Discounts on books, screencasts, and future training
  • A stylish Pragmatic Studio t-shirt and more!

Register