Introduction to Clojure

The Introduction to Clojure training course will help Java developers, as well as those with other backgrounds, to get up to speed with Clojure.

Clojure is a general purpose programming language which boasts immutable data structures, novel concurrency primitives, and strong facilities for interacting with the rest of the Java ecosystem. Since it is a Lisp, it is also completely dynamic, offers a wealth of functional programming facilities, and has a powerful macro system.

The Introduction to Clojure training course will teach you how to: install Clojure and related tools; interact with Clojure via the read-eval-print-loop (REPL); create functions, data-structures, macros, and types; use functional programming constructs like map and reduce; and design, implement, and test Clojure programs.

Course Summary

Learn how to build applications using Clojure.
Developers interested in Clojure.
Skill Level: 
Learning Style: 

Hands-on training is customized, instructor-led training with an in-depth presentation of a technology and its concepts, featuring such topics as Java, OOAD, and Open Source.

Hands On help
3 Days
Productivity Objectives: 
  • Learn the fundamentals of Clojure programming
  • Discover the productivity that comes from functional programming
  • Build a non-trivial Clojure application

What You'll Learn

In the Introduction to Clojure training course, you’ll learn:

  • The Clojure Ecosystem
    • Installing Clojure
    • Clojure’s built-in read-eval-print-loop (REPL)
    • Leiningen
    • nREPL
  • Clojure Syntax
    • Primitive data types
    • Keywords and symbols
    • Collections: lists, vectors, maps, and sets
    • Invoking functions
    • Defining vars
    • Binding names with let
    • Namespaces
  • Functions
    • Defining functions
    • Pre- and post-conditions
    • Anonymous functions
    • Function literals
    • Keyword and variadic arguments
  • Control Flow
    • Conditionals: if, when, cond, and friends
    • Recursion
    • Loops
    • Exception handling
  • The seq Abstraction
    • first and rest
    • Building seqs via cons
    • Laziness via lazy-seq
  • Functional Programming
    • “Pure” functions and side effects
    • apply, partial, and comp
    • Functions on seqs: map, reduce, and friends
    • Threading operators
  • Macros
    • “Code as data”
    • Expanding macros
    • Defining macros
    • Syntax quoting
  • Parallel Programming and Concurrency
    • Vars and dynamic scope
    • Delays, Futures, and Promises
    • Atoms, Refs, and Agents
  • Java Interop
    • Clojure syntax for Java constructs
    • reify, proxy, and gen-class
    • Exceptions
    • Calling Clojure from Java
  • Polymorphism and Types
    • reify and proxy
    • Multimethods
    • Protocols
    • Creating types with defrecord and deftype
  • Testing with clojure.test
    • Defining tests with deftest
    • Assertions with is and are
    • Test fixtures
    • Using with-redefs for mocking behavior

Meet Your Instructor


Simon has over 15 years of experience defining, developing, and delivering software development training programs.

As a senior instructor and courseware developer for Sun Microsystems, Simon developed and delivered Java training courses for Sun Educational Services’ internal and external customers. While at Sun, he was a guest presenter at JavaOne, Java University, and other software trade shows. Simon’s most significant accolade was his work as the development lead in the design, development,...

Meet Simon »
Michael headshot

Michael is a practicing software developer, course developer, and trainer with DevelopIntelligence. For the majority of his career, Michael has designed and implemented large-scale, enterprise-grade, Java-based applications at major telecommunications and Internet companies, such as Level3 Communications, US West/Qwest/Century Link, Orbitz, and others.

Michael has a passion for learning new technologies, patterns, and paradigms (or, he has a tendency to get bored or disappointed with current ones)....

Meet Michael »
Jean Photo

Jean brings years of development experience into her teaching, making the learning experience practical for her students. Originally a Smalltalk developer, Jean has an expansive knowledge of object-oriented (OO) development, analysis, and design. Jean has worked in every stage of the software development process for a variety of businesses – from small non-profits, to government agencies, to global enterprises.

Jean was also one of the top instructors at Sun Microsystems in North America and Europe....

Meet Jean »
Anil Photo

Anil is a seasoned software engineer with over 16 years of Java development experience.

Anil started his career as a Unix programmer, slinging C-code, writing shell scripts, and teaching others how to use Unix back when Unix was still a toddler. Anil’s expertise in Unix, C, and C++ allowed him to become a member of Technical Staff at ATT / Bell labs. During his tenure at Bell Labs, Anil led the creation of software tools that simulated network traffic, in particular, cellular...

Meet Anil »
Marnie picture

Marnie brings 15 years of experience delivering programming related training. During that time she has taught for top-technology companies including: Sun (and later Oracle) certified Java classes, RedHat Certified JBoss administration courses, Spring Source Certified Spring and Hibernate courses. Her classes have run the gamut from introduction to programming classes to Java EE web services and much of the Java EE stack in between.

She has a passion for teaching, which is evident in her presentations and...

Meet Marnie »
Joshua photo

Joshua has been in the Internet industry almost since its inception, working as an enterprise systems administrator for 5 years, as a systems/network architect for two years, and as a developer for 15 years. His programming experience is generally centered on Internet applications; nowadays mostly focused on JavaScript, both server-side and front-end. Joshua is a believer in disruptive technologies and methodologies, and has practiced Agile/TDD methods for the past several years. Outside of work, he develops games,...

Meet Joshua »

Contact us to learn more

Not all training courses are created equal. Let the customization process begin! We'll work with you to design a custom Introduction to Clojure training course that meets your specific needs.

DevelopIntelligence has been in the technical/software development learning and training industry for nearly 20 years. We’ve provided learning solutions to more than 48,000 engineers, across 220 organizations worldwide.

About Develop Intelligence
Di Clients


Need help finding the right learning solution?   Call us: 877-629-5631