Functional to Asynchronous Programming
Join us for an Awesome Workshop on:

Functional to Asynchronous Programming

November 5, 2015 - 9:30am to 5:30pm Central US Time

RSVP to Attend Online

Live and in Full HD

Join in Person

From Downtown Minneapolis, MN

You're Registered to Attend Online!

November 5, 2015 - 9:30am to 5:30pm Central US Time

This Workshop's Online Chatroom is Currently Open!

November 5, 2015 - 9:30am to 5:30pm Central US Time

You can watch video of this workshop!

You can watch video of this workshop!

Functional to Asynchronous Programming

Some Key Takeaways!

By coding along with us in the Workshop, you'll:

  • Discover practical functional programming in JS (not academic mumbo jumbo)
  • Discover closure, pure (side-effect free) functions, immutable (unchangeable) data, and list-processing tools like map, reduce, and filter
  • Discover asynchronous programming from the ground up looking at callbacks and solving "callback hell"
  • Discover generators, a way to write seemingly synchronous code
  • Discover Reactive Programming (RP) with observables and an old-but-reemerging pattern Communicating Sequential Processes (CSP)

Your (Awesome) Instructor

Kyle Simpson

Kyle Simpson

Kyle Simpson is an evangelist of the open web, passionate about all things JavaScript. He writes books, teaches JavaScript, speaks, and contributes to the world of OSS. Developers have watched over 300,000 hours of Kyle's courses here on Frontend Masters!

Spend Two Full Days Immersed With a Leading JavaScript Master

Workshop Details

Kyle Simpson has a way of taking complex JavaScript topics and breaking them into their essential components so that you can understand them in a very deep way. He'll start by giving you a primer in basics of functional programming, including closure, pure functions, etc. and move to how we can use these concepts to write better programs. Then we'll look at why callbacks fall short of what we need for managing async flow control in our complex modern applications. We'll identify the two major problems that make up "callback hell" (no, nothing to do with nesting/indentation!). Then, to clean up this mess, we'll look at two different ES6 mechanisms which each solve a different aspect of callback hell: generators and promises. We'll see that generators are about solving sync-looking async, while promises are about restoring trust to our continuations. And then we'll see how to compose promises with generators for solid async. After gaining a firm grasp over these reinvented async methodologies, then we'll look some at higher-order async patterns, and learn ways of identifying when and where to apply them: Event-based async, Reactive Sequences (aka Observables), CSP (channel-based concurrency), etc. To wrangle all these different async abstractions, we'll practice the exercises with the "asynquence" library.

Daily Schedule

Functional programming is a powerful pattern for organizing code, but it's traditionally steeped in lots of academic terminology and rigor. This can be very intimidating and keeps a lot of developers away. I practice what I call "Functional-Light Programming", which is to try to find simple take-aways from overall FP patterns and apply them to my normal programming. This approach de-emphasizes terminology and formality and instead focuses on patterns we can learn to instinctually recognize and the tools we can use to address them. Specifically, we'll look at the basics of closure, pure (side-effect free) functions, immutable (unchangeable) data, and list-processing tools like map, reduce, and filter.

Interact with the Instructor - Online & In-Person

Get Your Questions Answered • Code Along with the Class • Classroom Format

Is This Workshop for Me?


If you've heard terms like Functional (map/reduce/filter), Immutable, Generators, Reactive Functional, Observables but aren't 100% sure how to use them or how they apply to youthis workshop is for you!

Any Prerequisites?

Event Details


One Full Day Workshop Session

Replay Videos (available immediately)


November 5, 2015 - 9:30am to 5:30pm Central US Time


Option 1: Attend online on our full HD live stream

Option 2: Attend in-person at HQ in Minneapolis, MN