Learn Functional Programming With Elm | Elm-lang Crash Course Session 1

Details
Why is Functional Programming becoming popular all of a sudden? You'll find out in this crash course on Elm-Lang (http://elm-lang.org/).
Over the course of 4 weeks, you'll learn Elm (and Functional Programming concepts) by building something useful.
Cost: Free
What's Elm?
Elm is a pure functional programming language designed for writing front end web apps, or apps that run in your browser. Elm compiles to JavaScript and is an excellent alternative to JavaScript.
Why use Elm?
Elm is the result of asking the question: "What would be a good language for writing frontend web apps?"
Elm has been thoughtfully crafted over the last few years by its creator Evan Czaplicki (https://twitter.com/czaplic)… Adding just enough features to make it powerful, but still simple to use… Achieving a nice balance between idealism and pragmatism.
Elm offers zero run-time exceptions: Between the design of the language and the compiler, you just won't see them… No more countless hours looking at deep stack traces, trying to figure out what caused a run-time exception.
Debugging is easier: Side effects such as DOM changes in the browser or talking to a server are tightly controlled… This limits where bugs are even possible in Elm.. Plus the Debugging tools are outstanding (and not what you might expect)
Refactoring in Elm is a breeze, especially compared to JavaScript which is kind of scary. When you refactor in Elm, the compiler helps you find any problems your refactor may have caused, so you'll be able to refactor with ease and confidence.
Everything you write in Elm is inherently testable, because you're writing pure functions.
I believe you can be more productive in Elm.. Why is this?
Because the concepts in Elm are Simple.. Being a functional programming language, you're mostly working with two things: Immutable data and functions. You won't have to think about complex, stateful objects and tons of design patterns like you would in most imperative languages..
Because of Elms simple concepts, you don't overwhelm your working memory, which can make you more productive.
Elm has a package manager that enforces semantic versioning, it's strict and it's the only option. So for example, if a third party library author modifies their package with breaking changes, the Elm package manager won't let the author publish the new package without properly setting the updated semantic version number.
These are just a few of the many reasons Elm is great.
"Ok, but there's zero chance I'll get to use Elm at work.. so why bother?"
Even if you never use Elm at work, it's still totally worth learning.. Why? Well, personally it exposed a bunch of bad habits that I've had in JavaScript and other languages that I didn't even realize I had. The many benefits of functional programming will help you, even if you're not using a functional programming language.. You'll learn valuable skills that you can take back to your imperative languages.
The Plan:
There are going to be 4 weekly session starting on Tuesday February 21st. Each session will be 1-2 hours long.
We're going to learn by creating.. This isn't going to be a traditional meetup talk, nor a classroom setting, so be prepared to code.. Mob Programming, Pair programming, Individually etc.
I'll do a little bit of teaching along the way, then we'll rapidly put what you learn into use.
Prerequisites:
If you are familiar with Html and another programming language you should do just fine. Don't feel like you need to be an experienced programmer to attend, there's a good chance the seasoned programmers might have a harder time than the beginners..
Why is that? Elm and functional programming is very different than the skills and experience of most programmers, so the experienced programmers will have a lot of challenges (thinking in new ways) that new programmers won't have to deal with.
Preparations for the first session:
What app will we be making?
I'd like us to decide what we'll build during the first session, so bring an idea of an app to build… This is optional, so if you don't have an idea don't worry I'm sure others will.
NOTE: the scope of the app must be small.. We'll only have up to 8 hours over 4 weeks to work on it, so try and limit it to one page that does just a few things. For example, think about the scope of a typical todo app… Shoot for something with a similar amount of complexity.
There is a limit on the number of participants, so it's first come first serve.

Learn Functional Programming With Elm | Elm-lang Crash Course Session 1