
Explore setting up the closure environment with a repository or zip download, install Java and closure, and build hello world while learning functions, data types, conditionals, loops, and concurrent programming.
Understand Udemy's review system in a competitive marketplace and how 5-star reviews boost course visibility. Learn how feedback to the instructor can prompt improvements and genuine, positive reviews.
Clojure runs on the JVM and JavaScript, integrating with existing Java or JavaScript code. It uses Lisp-style, list-based expressions and remains compact and fast for web pages and data work.
Explore essential tools for Clojure development, including text editors, vi or emacs, Leiningen as the build tool, Ripple REPL for quick testing, and IntelliJ IDEA as the default IDE.
Access the course code by downloading the zip file attached to this lecture or by accessing the GitHub repository.
Install Java on a Mac via java.com/download with default settings. Then install the JDK 11 from Oracle using the DMG package, a free account, and accept the license.
Install Leiningen on a Mac using brew to set up the closure ecosystem, then create a new project and run it to see Hello World.
Install the IntelliJ idea IDE from JetBrains, add the cursive plugin for clojure, and configure a Java SDK plus a run configuration to run the main function.
Install the Java development environment by downloading Java from java.com, then install the JDK (version 8–11), sign in if required, and verify a functioning Java environment for running Clojure scripts.
Install Leiningen on Windows to set up the closure environment, configure path, download the build tool, and run your first project with line new app and line run.
Install the IntelliJ IDEA community edition, install the Cursive plugin for Clojure, configure the Java SDK, and create a Leiningen run configuration to run a hello world example.
Discover how Clojure compiles to the JVM, uses lists and namespaces, and defines functions with defn to run in the REPL, returning values like nil.
Learn how to define and call functions in closure, including anonymous functions and the def keyword, and map an increment function over a set to transform values.
Explore Clojure data types, including integers, floats, scientific notation, hex, nil, booleans, strings, keywords, and atoms, plus Java-based types, with practical examples.
Learn how to declare immutable variables in Clojure using def, understand that variables cannot be reassigned, and explore naming rules, case sensitivity, and simple printing examples.
Explore the four kinds of operators in closure—arithmetic, relational, logical, and bitwise—and learn operator precedence and how each acts on operands, including addition, subtraction, increment, max, min, and remainder.
Discover composite data types in Clojure, including sets, maps, vectors and lists; learn their immutability, efficiency, and how code is built from lists and function definitions.
Define a function that converts a pet's age to human years for dogs, cats, and goldfish using a map and get lookups with ratios 7, 5, 10.
Explore solving a pet store challenge in Clojure by building a pet to human age calculator using a ratio map for dog, cat, and goldfish, with functions and output.
Explore how conditional statements in Clojure evaluate conditions to choose true or false branches, using if, if do, nested if, case, and cond with multiple statements.
Explore loops in Clojure with loop and recur for counting, do times for fixed repetitions, while do with atoms and swap for state, and do seq for sequence-based iteration.
Explore Clojure atoms as thread-safe, changeable values, and learn how to create an atom, access it with at, and update using swap!, reset!, and compare and set.
Explore sequences in Clojure by using core library functions such as cons, concat, distinct, reverse, first, rest, last, and sort on vectors and lists.
Explore struct maps in Clojure by defining a pet struct with type and name and creating immutable maps like Fido the dog, then update with associate and add pet age.
Explore destructuring in Clojure by using let to extract values from vectors and maps, including rest and nil defaults for missing keys.
Learn how to manage errors in Clojure using try, catch, and finally blocks, handle class cast exceptions, retrieve messages, and ensure cleanup operations.
Engage in a coding challenge to build a budget-based car pricing function for BMW, Ferrari, and Fiat, applying a 20% coupon to print valid or invalid results.
In Clojure, define a car dealership namespace with functions for getting car prices and validating coupon codes, apply a 20% discount, and list affordable cars within a 50,000 budget.
Explore how namespaces define scope and separate code into files, enabling access via require. Learn to call capitalize from another namespace with refer, or import all functions from that namespace.
Explore macros in Clojure as functions that transform code into code, and see how macro expand reveals how when is expanded into an if, illustrating macros as language shortcuts.
Attach a watcher to an atom or reference to react when its value changes, using add-watch with a function and key, old state, and new state, then remove-watch when needed.
Learn how agents provide asynchronous updates to data in Clojure, offering contrasts with atoms and a send-and-update workflow. Explore using await for, error handling, and parallel processing concepts.
Explore coordinated updates in clojure using references, do sync, ref set, and alter to guarantee all-or-nothing transactions across threads.
Implement a one-argument buy function to transfer funds between buyer and merchant accounts, track purchased items, and allow multiple purchases with initial balances of 100 and 0.
Define buyer and merchant accounts, a map of prices, and items vector. Implement a buy function that checks funds and uses do sync transaction to update accounts and append items.
Finish the course and thank learners, while encouraging ongoing practice of Clojure to build on the foundations laid and apply the knowledge to real-world skills.
Why learn Clojure
Clojure is a general purpose, Java inspired, functional programming language.
In 2019, the popular site StackOverflow rated Clojure as the highest paying programming language in the world, and second highest in the United States.
Many big players like LinkedIn, Cisco, CitiGroup etc use Clojure as one of their main languages.
This course teaches you:
to install the Clojure environment on a PC or Mac
the language basics like
functions
data types
variables
etc
the fundamentals of
loops
sequences
exception handling
etc
advanced topics such as
namespaces
agents
reference values
etc
practical applications of all studied concepts
plenty of coding challenges
We will apply everything we learned through coding small applications to solidify what we are studying.
This course opens up many opportunities to work in a niche market, where your skills will be highly values by employers. There is a huge shortage of Clojure skills, and you can claim the top spot.
Clojure is also a fun language to learn. Being a LISP language, it makes it much easier to write code, with Clojure code being on average much smaller than Java or JavaScript. It's a great skill to have if you're looking to expand your programming tool belt.
Sign up today and let's start learning Clojure together.
30 day money back guarantee - provided by Udemy