Elixir Roadmap

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.

Scope: Study the labs in order. Phases 1–2 build language fluency, phase 3 adds metaprogramming and tooling, phase 4 is the OTP core, phase 5 covers the production ecosystem, phase 6 collects runnable demos and study projects, and phase 7 is the reference shelf.

Elixir Study Progress

0% Complete
# ELIXIR Topic Description
PHASE 1: FOUNDATIONS
01FoundationsWhat Elixir is, why it exists, and where the BEAM shines in production.
02Elixir vs Python vs RustMotivation first: an honest head-to-head and the same program in three languages.
03Install & ToolchainErlang/OTP, Elixir 1.20, IEx, Mix, Hex, Livebook, and editor setup.
04Syntax & ExpressionsModules, functions, the pipe operator, sigils intro, docs as code.
PHASE 2: LANGUAGE CORE
05Data & ImmutabilityAtoms, numbers, tuples, lists, maps, structs, and immutable values.
06Pattern MatchingThe match operator, destructuring, pin, guards, case, cond, with.
07Functions & RecursionNamed and anonymous functions, captures, closures, tail recursion.
08Collections & EnumerationEnum, Stream, comprehensions, and the cost of each structure.
09Structs, Protocols & BehavioursNamed shapes, data-driven dispatch, and module contracts.
10Errors & Failure IdiomsTagged tuples vs exceptions, raise/rescue, with, and let-it-crash.
11Strings, Binaries & SigilsUTF-8 strings, bitstring syntax, binary parsing, IO data.
PHASE 3: METAPROGRAMMING & TOOLING
12Macros & MetaprogrammingThe AST, quote/unquote, defmacro, use/import, and restraint.
13Mix, Dependencies & ReleasesProject anatomy, Hex deps, config layers, mix release, umbrella.
14Testing with ExUnitTests, doctests, setup, Mox, StreamData, and coverage.
15IEx, Formatting & AnalysisIEx deep dive, formatter, Credo, Dialyzer, Observer, debugging.
PHASE 4: CONCURRENCY & OTP
16The Process ModelSpawn, mailboxes, send/receive, links, monitors, registration.
17Tasks & AgentsOne-off and pooled async work, back-pressure, simple state holders.
18GenServerThe client/server behaviour behind most stateful Elixir processes.
19Supervision TreesSupervisors, restart strategies, DynamicSupervisor, child specs.
20OTP Applications & ReleasesApplication callbacks, app env, runtime config, mix release.
21Distributed ElixirNodes, clustering, global names, PubSub, net-splits and CAP.
PHASE 5: PRODUCTION & ECOSYSTEM
22Data & EctoSchemas, changesets, queries, migrations, transactions, Multi.
23Phoenix Web FrameworkEndpoint, router, plugs, contexts, HEEx, channels, deployment.
24Phoenix LiveViewServer-rendered rich UI: mount, events, components, streams.
25Designing Elixir SystemsContexts, process boundaries, umbrellas, failure domains.
26Performance & ObservabilityScheduling, GC, ETS, persistent_term, profiling, telemetry, NIFs.
27Numerical & Embedded ElixirNx tensors, EXLA, Explorer, Bumblebee, Membrane, Nerves.
PHASE 6: PRACTICE & DEMOS
28Lab ExamplesRunnable single-file Elixir demos, viewed in the code viewer.
29Study ProjectsLarger guided programs that combine several chapters at once.
30Open Source ProjectsElixir projects worth reading, and what to study in each codebase.
PHASE 7: REFERENCE
31References & ResourcesOfficial docs, free tutorials, community, and tooling links.

Free Elixir Resources

Verified free resources to keep learning Elixir after the track — the full categorized list lives on the References & Resources page.

ResourceWhat it isBest for
Elixir Getting Started guideThe official step-by-step language guide, updated for every releaseFirst contact with the language, straight from the Elixir team
Mix and OTP guideOfficial guided build of a distributed key-value store with Mix and OTPLearning processes, GenServers, and supervision by building one
Elixir SchoolFree, community-maintained lessons from basics to advanced OTP, in 25+ languagesA second explanation of any topic in the track
Joy of ElixirFree online book with a gentle, beginner-first paceReaders new to programming, or programmers who want a soft start
Exercism Elixir trackFree practice exercises with automated feedback and human mentoring, no install neededDrilling pattern matching, Enum, and OTP idioms
HexDocsDocumentation for every Hex package, generated by ExDocExact module and function reference while coding
Elixir ForumThe most active Elixir community space, with core-team participationAsking questions and reading real design discussions
Awesome ElixirCurated catalog of 13k-star collection of libraries, tools, and resourcesFinding a library when you know the problem, not the package name