Clojure Programming
with Rich Hickey and Stuart Halloway
Dates & Pricing
-
March 15-17 in Reston, VA
(Sold Out) - May 12-14 in Reston, VA

| $1195 | Alumni and Groups of 3+ |
| $1495 | Early Bird (thru March 31) |
| $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.
Who Teaches the Course?
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 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.
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 Like?
Interactive Learning. You'll learn in a significantly different way in a Studio than by reading through the books. Attending a Studio complements what you may have read, but in a hands-on, collaborative environment where you'll:
- get your questions answered by the experts and your peers
- learn through hands-on programming exercises
- discuss up-to-date topics, tips, and tricks
- discover new techniques in live coding sessions
- reinforce the concepts you've learned in the books
We think Studio offers the best developer training around. But don't take our word for it. Just ask our alumni. Check out their reviews and applications they've built! The Studio experience continues after the Studio with our private alumni mailing list.
“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?
You and 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 Studio, we'll send out detailed instructions for installing everything you'll need. During the Studio, 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!
