Functional JavaScript Learning Path
Power Up Your JavaScript with Functional Programming

Program by composing pure functions, avoiding shared state, mutable data, and side-effects.

Total time: 22 hours, 34 minutes

Core Coursework

Take these in order
Prerequisite: JavaScript: From First Steps to Professional or intermediate experience with JavaScript
Editor's Note
Get a friendly introduction to functional programming with JavaScript! You’ll learn what Functional Programming (FP) is and how it differs from other programming styles like object-oriented and imperative.

Functional JavaScript First Steps

Anjana Vakil
Anjana Vakil
Software Engineer & Educator

Learn core functional programming course and code everything with pure functions, learning recursion, higher-order functions, closures, and function composition.

3 hours, 54 minutes CC

Functional JavaScript First Steps
Editor's Note
Forming a mental model around complex functional programming concepts will deepen your understanding and help you learn how to apply them to your code.

The Hard Parts of Functional JavaScript

Will Sentance
Will Sentance
Codesmith

Go under the hood of powerful techniques like: Higher Order Functions, Function Composition, Pure Functions, and Immutability of State.

4 hours, 54 minutes CC

The Hard Parts of Functional JavaScript
Editor's Note
Get hands-on practice applying the functional programming techniques you’ve learned throughout this learning path.

Functional-Light JavaScript, v3

Kyle Simpson
Kyle Simpson
You Don't Know JS

Improve your JavaScript by applying functional programming concepts like function purity, point-free, partial-application, currying, plus even more advanced concepts.

10 hours, 1 minute CC

Functional-Light JavaScript, v3
Editor's Note
Dive head first into the deep end of the functional programming pool. Brian provides expert-level functional programming techniques to a variety of code examples.

Hardcore Functional Programming in JavaScript, v2

Brian Lonsdorf
Brian Lonsdorf
Salesforce

Learn functional programming concepts such as pure functions, currying, composition, functors, monads, and see functional concepts in action!

3 hours, 44 minutes CC

Hardcore Functional Programming in JavaScript, v2
Editor's Note
You are now a functional programming expert. Use the optional courses below to learn additional patterns, apply these techniques to state management, and use the functional programming features of languages like Elm, Rust, and Go.

Elective Coursework

Optional, take in any order

Hardcore Functional Architecture Patterns in JavaScript

Brian Lonsdorf
Brian Lonsdorf
Salesforce

Learn functional programming architecture patterns to apply, such as Monoids, Monad Transformers, Free Monads, and Lenses. See functional programming in action!

4 hours, 10 minutes CC

Hardcore Functional Architecture Patterns in JavaScript

Redux Fundamentals (feat. React)

Steve Kinney
Steve Kinney
Temporal

Learn the Redux API from scratch, then learn to hook the Redux React application. You'll also learn how to extend Redux with various tools from its ecosystem.

4 hours, 41 minutes CC

Redux Fundamentals (feat. React)

Introduction to Elm, v2

Richard Feldman
Richard Feldman
Vendr, Inc.

Learn how to write applications with the Elm, the functional programming language, from the ground up. Read more!

5 hours, 6 minutes CC

Introduction to Elm, v2

Advanced Elm

Richard Feldman
Richard Feldman
Vendr, Inc.

Join JS and Elm expert Richard Feldman in the "Advanced Elm" course. Learn how to organize and scale your Elm applications with authentication, css-in-Elm, and more!

4 hours, 59 minutes CC

Advanced Elm