Elixir is a functional language that runs on the Erlang VM (BEAM) and is built for concurrent, fault-tolerant, distributed systems. Immutable data, lightweight processes with isolated heaps, and the OTP supervision model let a single codebase scale from one laptop to a global cluster. This track starts with why you would choose Elixir over Python or Rust, then deep-dives from first expressions to production OTP, Ecto, Phoenix, and performance work.
| # | ELIXIR | Topic | Description |
|---|---|---|---|
| PHASE 1: FOUNDATIONS | |||
| 01 | Foundations | What Elixir is, why it exists, and where the BEAM shines in production. | |
| 02 | Elixir vs Python vs Rust | Motivation first: an honest head-to-head and the same program in three languages. | |
| 03 | Install & Toolchain | Erlang/OTP, Elixir 1.20, IEx, Mix, Hex, Livebook, and editor setup. | |
| 04 | Syntax & Expressions | Modules, functions, the pipe operator, sigils intro, docs as code. | |
| PHASE 2: LANGUAGE CORE | |||
| 05 | Data & Immutability | Atoms, numbers, tuples, lists, maps, structs, and immutable values. | |
| 06 | Pattern Matching | The match operator, destructuring, pin, guards, case, cond, with. | |
| 07 | Functions & Recursion | Named and anonymous functions, captures, closures, tail recursion. | |
| 08 | Collections & Enumeration | Enum, Stream, comprehensions, and the cost of each structure. | |
| 09 | Structs, Protocols & Behaviours | Named shapes, data-driven dispatch, and module contracts. | |
| 10 | Errors & Failure Idioms | Tagged tuples vs exceptions, raise/rescue, with, and let-it-crash. | |
| 11 | Strings, Binaries & Sigils | UTF-8 strings, bitstring syntax, binary parsing, IO data. | |
| PHASE 3: METAPROGRAMMING & TOOLING | |||
| 12 | Macros & Metaprogramming | The AST, quote/unquote, defmacro, use/import, and restraint. | |
| 13 | Mix, Dependencies & Releases | Project anatomy, Hex deps, config layers, mix release, umbrella. | |
| 14 | Testing with ExUnit | Tests, doctests, setup, Mox, StreamData, and coverage. | |
| 15 | IEx, Formatting & Analysis | IEx deep dive, formatter, Credo, Dialyzer, Observer, debugging. | |
| PHASE 4: CONCURRENCY & OTP | |||
| 16 | The Process Model | Spawn, mailboxes, send/receive, links, monitors, registration. | |
| 17 | Tasks & Agents | One-off and pooled async work, back-pressure, simple state holders. | |
| 18 | GenServer | The client/server behaviour behind most stateful Elixir processes. | |
| 19 | Supervision Trees | Supervisors, restart strategies, DynamicSupervisor, child specs. | |
| 20 | OTP Applications & Releases | Application callbacks, app env, runtime config, mix release. | |
| 21 | Distributed Elixir | Nodes, clustering, global names, PubSub, net-splits and CAP. | |
| PHASE 5: PRODUCTION & ECOSYSTEM | |||
| 22 | Data & Ecto | Schemas, changesets, queries, migrations, transactions, Multi. | |
| 23 | Phoenix Web Framework | Endpoint, router, plugs, contexts, HEEx, channels, deployment. | |
| 24 | Phoenix LiveView | Server-rendered rich UI: mount, events, components, streams. | |
| 25 | Designing Elixir Systems | Contexts, process boundaries, umbrellas, failure domains. | |
| 26 | Performance & Observability | Scheduling, GC, ETS, persistent_term, profiling, telemetry, NIFs. | |
| 27 | Numerical & Embedded Elixir | Nx tensors, EXLA, Explorer, Bumblebee, Membrane, Nerves. | |
| PHASE 6: PRACTICE & DEMOS | |||
| 28 | Lab Examples | Runnable single-file Elixir demos, viewed in the code viewer. | |
| 29 | Study Projects | Larger guided programs that combine several chapters at once. | |
| 30 | Open Source Projects | Elixir projects worth reading, and what to study in each codebase. | |
| PHASE 7: REFERENCE | |||
| 31 | References & Resources | Official docs, free tutorials, community, and tooling links. | |
Verified free resources to keep learning Elixir after the track — the full categorized list lives on the References & Resources page.
| Resource | What it is | Best for |
|---|---|---|
| Elixir Getting Started guide | The official step-by-step language guide, updated for every release | First contact with the language, straight from the Elixir team |
| Mix and OTP guide | Official guided build of a distributed key-value store with Mix and OTP | Learning processes, GenServers, and supervision by building one |
| Elixir School | Free, community-maintained lessons from basics to advanced OTP, in 25+ languages | A second explanation of any topic in the track |
| Joy of Elixir | Free online book with a gentle, beginner-first pace | Readers new to programming, or programmers who want a soft start |
| Exercism Elixir track | Free practice exercises with automated feedback and human mentoring, no install needed | Drilling pattern matching, Enum, and OTP idioms |
| HexDocs | Documentation for every Hex package, generated by ExDoc | Exact module and function reference while coding |
| Elixir Forum | The most active Elixir community space, with core-team participation | Asking questions and reading real design discussions |
| Awesome Elixir | Curated catalog of 13k-star collection of libraries, tools, and resources | Finding a library when you know the problem, not the package name |