Want to learn how to rapidly get up-to-speed with Clojure for solving real-world problems? Clojure is a pragmatic language that offers a simpler approach; this course offers the fastest route to proficiency with this young and exciting JVM language.
The course will teach you the fundamentals of Clojure, through exercises based on some of the real-world problems that Clojure excels at tackling. The course is a full immersion to the Clojure philosophy, it will be an intensive two days!
Learn how to:
- Build up elegant programs from the building blocks provided by Clojure's core function library
- Think about and approach problems from a functional programming mindset
- Utillize existing Java APIs from your Clojure programs
- Write programs that utilize multiple threads without the risk of deadlocks and race-conditions
Day 1 - Foundation
We will provide a foundation overview of all the important Clojure language concepts, this will include:
- Getting started with Clojure. Basic syntax and the read-eval-print-loop (REPL)
- Composing and using Clojure functions and namespaces
- Basics of Clojure/Java interop
- Using Clojure's common special forms such as if, let, cond, for with destructuring
- Core data-structures: lists, vectors, maps, sets
- Sequences, the sequence contract, lazy sequences
- Operations on sequences including map, reduce, filter
- Functional composition and higher-order functions
Day 2 - Immersion
Day 2 will consolidate and build on the foundations of Day 1 with more advanced material and more exercises worked through by individuals and as a group. We will explore some more of the Clojure language features such as:
- Using macros, such as commonly used threading macros
- Sequences revisited
- Clojure's concurrency toolbox: atoms, refs, vars, agents, futures, delays and promises
- Testing with clojure.test and Midje
If you are a developer who wants to come away with practical skills in functional programming and sufficient proficiency in the Clojure language to feel confident using it in a professional setting, then this course is for you!
No prior knowledge of Clojure or Java is assumed but attendees should be comfortable with at least one other language, not necessarily functional.
Bring your own hardware
To participate in this course, delegates are required to bring their own laptop.
A full installation guide for the course software will be provided with your course joining instructions.