• Skip to main content
  • Skip to footer

PurelyFunctional.tv

  • Learn Clojure
  • About
  • đź›’ Cart
  • Log in
  • Join Now

The Everything Learning Path

Eric Normand · Updated May 24, 2019

If you’re looking to watch absolutely all of the courses on this site, I’ve put together a suggested order. Start at the beginning and just watch everything straight through. Be sure to click those checkmarks to track your progress.

Introduction to Clojure v2

Beginner Language 3 free lessons
0 / 60
0 / 60

A fun and gentle introduction to the Clojure language, functional programming, and data-drive programming, through the eyes of baking robot X5.

3 Functional Tools

Beginner Functional Programming 3 free lessons
0 / 3
0 / 3

Learn these three tools -- map, filter, and reduce-- and you'll be well on your way to developing a functional mindset.

JVM Fundamentals for Clojure

Beginner JVM Platform
0 / 27
0 / 27

This course teaches you the hands-on, nitty gritty details of the JVM and Clojure/Java interop that you would pick up after many years of programming Java. It combines videos with reference sheets to give you easy access to the accumulated skills of years of experience. With this course, you won't have to worry about stack traces, JVM options, or the standard library again.

Repl-Driven Development in Clojure

Intermediate Language 1 free lesson
0 / 26
0 / 26

This course teaches the mindset, practices, and tools of Repl-Driven Development as practiced in Clojure.

Clojure Collections

Beginner Language
0 / 34
0 / 34

Clojure is based on collections, but how are they used? What are some patterns for making the most of them? This course introduces you to the workhorses of the Clojure programming language, the immutable collections.

Clojure Scope

Beginner Language
0 / 4
0 / 4

When you are looking at a variable, how do you know what it refers to? The rules that determine what variable names refer to are collectively called the scoping rules. Learning the three kinds of scope and when to use each will help you make your code more maintainable.

Recursion 101

Beginner Functional Programming 1 free lesson
0 / 10
0 / 10

What is recursion? How do you write recursive functions? Does it work with laziness? How is it different from a for loop? All of these questions are answered, and more, using simple, clear examples. You'll never have fear of recursion again.

Namespaces

Beginner Language
0 / 2
0 / 2

Namespace declarations can be complicated. They manage all of the dependencies of one namespace on another. There are a lot of options. In this course, we go over how to make best use of them.

Leiningen

Intermediate Tools
0 / 7
0 / 7

Leiningen is the de facto standard project tool in Clojure. This course gives an overview of lein commands, projects, templates, and dependencies.

Web Development in Clojure

Intermediate Web Backend
0 / 2
0 / 2

Web development in Clojure is just like everything else: you build up complex behavior from simple parts. This course builds a TODO list app from scratch, explaining the important concepts, and deploying it to a cloud service.

Intro to clojure.test

Beginner Libraries 1 free lesson
0 / 6
0 / 6

Are you wondering how to test your code? Would you like to use the most popular testing framework for Clojure? Do you want to know the correct conventions so that your tests work well in IDEs and continuous integration services?

This course teaches all of that in a fun, interactive style.

Concurrency

Beginner Concurrency
0 / 15
0 / 15

You've heard that Clojure is great for concurrency. But what tools does Clojure give you? And how should you use those tools?

These lessons are meant to each answer a specific question and help you build the skills you need to address a wide variety of concurrency problems.

Clojure Syntax

Beginner Language
0 / 2
0 / 2

Learn the tricky corners of Clojure syntax, like for comprehensions and function definitions.

Clojure Protocols

Intermediate Language 1 free lesson
0 / 5
0 / 5

Protocols are a very cool and very important feature in Clojure. They are a great way to build polymorphism into your software, including extending existing Java classes without modifying them.

Clojure Combinators

Intermediate Functional Programming
0 / 8
0 / 8

Combinators are an important part of functional programming. They are functions -- usually small -- that combine their arguments into new functions. They're great fun and have a lot to teach about functional programming and the lambda calculus. They are an important part of any Clojure programmer's toolkit.

Lazy Sequences

Beginner Language 2 free lessons
0 / 6
0 / 6

Clojure sequences are lazy by default. That gives you big benefits like separation of concerns, but it also brings with it some gotchas. This course is mostly about exploring those gotchas--problems that can bite you if you're not ready for them--and techniques to work with each one. Being prepared is the best antidote to a bad bite. After dealing with the downsides, we explore the big benefits.

Clojure in One Hour

Intermediate Projects
0 / 5
0 / 5

You want to learn Clojure but it seems so daunting. Who has the time to read and read and then start yet another half-finished project? Clojure in One Hour is a series of short projects that you can do in one hour. No theory, just hands-on projects to get something done.

Reduce Mini-Course

Intermediate Functional Programming
0 / 7
0 / 7

Reduce is the most powerful functional tool available. It lets you build general-purpose recursive solutions without doing the recursion yourself. In this course, we implement reduce and other functions like map and filter using it. This course also goes over some practical things you can do with reduce.

Destructuring

Intermediate Language
0 / 8
0 / 8

Ever wonder how to read those destructuring forms? Do you want to know how to make your code clearer and shorter? Where can destructuring be used? And how do you construct each one? This course starts from the basics and works through all of the destructuring forms, ending with some examples and advice for using them.

Data Formats

Beginner Data
0 / 3
0 / 3

With so many data formats out there, it's good to see some example code for reading and writing different formats. I'm talking JSON, CSV, EDN, and more. This course explores how to read and write data formats using Clojure.

Domain Specific Languages in Clojure

Intermediate Functional Programming
0 / 14
0 / 14

In this course, we explore a very powerful technique. We will develop our own interpreters and compilers for small domains.

HTTP Client: clj-http

Intermediate Libraries
0 / 4
0 / 4

Chances are you will need to access an API on the web without a custom API client. You'll have to make the web requests yourself. You want something reliable, fast, and with all the features. In Clojure, that is clj-http.

Manipulating time with clj-time

Intermediate Libraries
0 / 7
0 / 7

Manipulating time is a difficult thing. Time was made for people. The rules are complicated and depend on where you are on Earth. Time units have varying lengths (how long is "one month"?; how long is a day when you change daylight savings?), daylight savings depends on the country you're in, and formatting dates depends on the language. It's complicated. Luckily, Joda Time does an excellent job. Joda Time is a date-time library that represents everything immutably. It's what people use when they want robust date-time calculations. clj-time wraps up the types from Joda Time and makes it easy to use from Clojure.

Data Modeling in Clojure

Intermediate Functional Programming 1 free lesson
0 / 9
0 / 9

In Clojure, the common advice is "just use a map". There's some truth to that, but it's obviously more complicated. Clojure gives you lots of ways to model a problem. In this course, I give you a peek behind the curtain. I work step-by-step through different iterations of a domain model, discussing what I'm thinking, why I'm trying something else. We model the game of solitaire, a card game we're all familiar with.

Understanding Re-frame

Intermediate Web Frontend 4 free lessons
0 / 37
0 / 37

A comprehensive guide to the ClojureScript Single Page Application framework built on top of React and Reagent.

Building Re-frame Components

Intermediate Web Frontend 2 free lessons
0 / 19
0 / 19

Sometimes we want to see how individual components are built. We want to know how to reproduce common components easily using Re-frame. In this course, we take that approach. We build individual, interactive components, going through the design decisions we have to make.

Clojure core.async

Intermediate Concurrency
0 / 11
0 / 11

Learn the fundamentals of core.async, a concurrency library for Clojure and ClojureScript that gives you tremendous power.

core.async Patterns

Advanced Concurrency
0 / 10
0 / 10

Clojure core.async provides basic building blocks for communication and coordination. This course explores ten patterns you can easily implement using those building blocks.

Beginning with Clojure Macros

Intermediate Language 2 free lessons
0 / 11
0 / 11

What mysteries do Clojure macros hold? This course jumps right into macros with gusto. It starts with the key to understanding macros, takes you through the implementation of 6 progressively more complex macros, and finishes with the three reasons you need macros.

Emacs

Intermediate Tools
0 / 2
0 / 2

Emacs has a steep learning curve. It can feel like it's from another planet. But there's a reason why it has stood the test of time. It's a powerful tool that will be with you for the rest of your career. And the Clojure integration is second to none.

Answers to Questions

Beginner
0 / 1
0 / 1

I get a lot of questions from people trying to learn Clojure. Sometimes, the best way to answer them is with a video. This course is for all of those questions that don't really fit anywhere else.

Optimization

Advanced Tools
0 / 1
0 / 1

This course only contains one lesson at the moment. That lessons walks through profiling code and using a Clojure compiler flag to tell us where we are doing expensive Java reflection calls.

Introducing Clojure to the Enterprise

Advanced Work 6 free lessons
0 / 6
0 / 6

If you already work at a large company, you may want to find ways to introduce Clojure to your work. This guide presents 5 steps for bringing Clojure into your job.

Category Theory from the Universe Up

Advanced Functional Programming 7 free lessons
0 / 7
0 / 7

Ever been completely baffled by Wikipedia articles on Monads and Functors? Are you curious about what everybody is raving about, but can't find any good ways to learn it? It turns out that many of the ideas of category theory come almost directly from the real world. Wouldn't you like to understand how those concepts relate to the real world?

Footer CTA

Get the newsletter for free

The PurelyFunctional.tv Newsletter is a weekly email to inspire functional programmers.

Enter your email address to receive emails about Clojure and Functional Programming. These include the weekly newsletter and other great offers. You can unsubscribe any time.

Copyright © 2019 LispCast and Eric Normand