Learning Functional JavaScript
2.8 (13 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
164 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Functional JavaScript to your Wishlist.

Add to Wishlist

Learning Functional JavaScript

A deep dive into functional programming with practical examples from both server and client-side JavaScript code
2.8 (13 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
164 students enrolled
Created by Packt Publishing
Last updated 8/2015
Price: $75
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Explore higher-order functions, what they are and how to work with them
  • Solve issues related to asynchronous methods effectively by using promises
  • Use a library such as immutableJS to implement immutability
  • Implement immutability with Facebook’s React for super fast user interfaces
  • Combine a “functional core” to build a web application where most of the code is functional
  • Make efficient use of recursion with big data sets to make code easier to visualize
View Curriculum
  • Knowledge about basic JavaScript concepts such as JavaScript objects and functions is a prerequisite.

Along with being tried and trusted, functional programming is one of the biggest current trends in programming. Its focus on side-effect free code, unadorned data manipulation and simple structures promote a coding style that reduces bugs, and lifts the level of abstraction to a point where we can achieve more with less code. All topics discussed in the course can be used to various degrees in any code-base – even if your daily work is with a huge object-oriented project, the techniques discussed will certainly be useful.

Learning Functional JavaScript will show you how to build powerful abstractions by combining many small and simple functions, and how to strip your data modeling to the necessities. We start by investigating the power of higher-order functions by diving right into the implementation of the sample application. We then elaborate by partially applying and composing functions before we end up with lazy evaluation to boost our abstraction power and performance.

Right from the start we'll dive into the implementation of a text-based adventure game. We will also see how function composition is used to solve specific problems in this domain by combining highly generic functions. We learn function programming techniques that help improve asynchronous code used to load the game from disk.

Later we'll become acquainted with a few other examples as well, as we learn about designing applications around an immutable data structure. And we end our journey with a discussion of recursion and how it relates to lazy data structures, and show examples of using previously discussed techniques on infinite data sets.

At the end of the course, you'll be proficient with the basic functional programming techniques and will be able to optimize your JavaScript code by applying them. Learning Functional JavaScript teaches you all the basic functional programming techniques and shows you how to apply them to JavaScript, and how they can be used to solve highly practical problems.

About The Author

Christian Johansen is a passionate programmer working with Oslo-based consultancy Kodemaker. He's a man with an eclectic background, having worked with everything from Unix systems tuning and ops to various server-side applications and JavaScript heavy frontend development. Christian is the author of Test-Driven JavaScript Development, and he maintains several open-source projects, including the JavaScript test-framework BusterJS and the popular mocking framework SinonJS. Functional programming is a long-standing interest, most recently practiced with Clojure and JavaScript.

Who is the target audience?
  • Learning Functional JavaScript is for any JavaScript programmer (both backend and frontend) who has a firm grasp of the language but is looking to broaden their skillset. No prior experience with functional programming concepts is necessary.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 22 Lectures Collapse All 22 Lectures 02:20:25
Introduction to Functional Programming
3 Lectures 11:34

Understand the scope of the course and get a feeling of what will be covered and when.

The Course Overview

Understand the basic premise of functional programming and how it is helpful.

What Is Functional Programming?

Ease into functional programming with some important core concepts.

Your First Functional Programming Concepts
Higher Order Functions
3 Lectures 15:51

Define the concept of "first-class" functions.

Preview 02:41

Preparing the AST for building the view.

Passing Functions as Arguments

Applying a changeset to a user.

Returning Functions
Functional Asynchrony
3 Lectures 22:20

Creating new users.

Preview 05:14

Applying iterator methods on async operations.

Continuation Passing Style

Parsing room files with promises.

Function Composition
3 Lectures 22:49

Loading and parsing all rooms at boot. c

Preview 07:04

Loading and parsing rooms with currying instead of partial application.


Finding a specific room.

4 Lectures 28:43

Explain the difference between mutable and immutable types.

Preview 06:45

Developing a Minesweeper data model.

Working with Immutability

Adding undo to Minesweeper.

Immutability in the UI

Investigating how immutability can boost performance.

Mechanics and Performance
3 Lectures 19:26

Introducing recursion.

Preview 07:24

Implementing the adventure game parser.

A Recursive AST Parser

Eliminating recursion without losing the mental model.

3 Lectures 19:42

Lazily evaluating a map and a filter.

Preview 08:46

Generalizing lazy sequences.

Lazy Sequences

Working with infinite sequences.

Infinite Sequences
About the Instructor
Packt Publishing
3.9 Average rating
4,437 Reviews
35,124 Students
348 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.