Learn what makes Elixir attractive, as well as what you can expect from this course.

Learn about Elixir’s data types, their implementation, and performance characteristics.

Learn about Elixir’s many operators. Most importantly, the match and pipeline operators.

Learn how to organize your Elixir code into modules, named functions, and custom types.

Learn how to control the flow of your Elixir program with macros, pattern matching, and guards.

Learn how Elixir replaces loops with recursion, and how to use tail call optimization.

Learn more about the Capture Operator, the Enum module, and the lazy version, Stream.

Learn about Elixir’s final loop-like feature: comprehensions, powered by the for macro.

Learn about Sigils, Elixir’s shorthand expressions. Including how to write your own.

Learn about Mix, the project builder and manager for Elixir, including custom mix tasks.

Learn about Elixir’s package repository, Hex, and how to install and upload packages.

Learn how to use ExUnit, Elixir’s built-in testing framework, and one of its best features: doctests.

Learn about processes, Elixir’s core concurrency feature. Processes are an essential Elixir concept, so don’t miss it!

This episode begins our look at OTP, starting out with GenServer, its component for managing long-running processes.

Learn about error handling in OTP, and supervision trees, the OTP framework’s powerful way of keeping a system stable.

Learn what OTP applications are, and how to build one with an in-depth, detailed demo!

You don’t need a GenServer for everything. Try Task for asynchronous jobs, and Agent for simple storage.

Learn about how Elixir makes it trivially easy to distribute your app between machines.

Learn about Elixir’s data polymorphism feature: Protocols. Also, learn a bit about how Elixir handles extension.

Learn about Elixir’s answer to interfaces from object-oriented languages: Behaviours.

Learn what little you need to know about Elixir exceptions. You won’t be using them often!

Learn about OTP’s publish/subscribe paradigm, and GenEvent, Elixir’s wrapper for it.

Learn how to get some of the benefits of static typing with Erlang’s static analysis tool, dialyzer.