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.
- 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)
- Clojure Syntax
- Primitive data types
- Keywords and symbols
- Collections: lists, vectors, maps, and sets
- Invoking functions
- Defining vars
- Binding names with let
- Defining functions
- Pre- and post-conditions
- Anonymous functions
- Function literals
- Keyword and variadic arguments
- Control Flow
- Conditionals: if, when, cond, and friends
- 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
- “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
- Calling Clojure from Java
- Polymorphism and Types
- reify and proxy
- 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,...Michael
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)....Jean
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....Anil
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...Marnie
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...Joshua