Course Overview

What this Elixir course covers, how to use it, prerequisites.

A self-contained, hands-on course covering the Elixir language, its standard library, functional programming on the BEAM, concurrency with processes and OTP, metaprogramming, and the ecosystem (Mix, Hex, Phoenix, Ecto, LiveView, Nerves, Nx). Every chapter has runnable examples and exercises.

Course Map

Part I — Foundations Introduction to Elixir Installation & Tooling IEx and Your First Program Modules & Named Functions

Control Flow: case, cond, if, unless, with Part II — Core Language & Standard Library Lists, Tuples, Keyword Lists & Maps The Enum Module Streams & Laziness Strings, Binaries, Charlists & Unicode Sigils & Regular Expressions The Pipe Operator & Idiomatic Data Flow alias, require, import, use & Module Attributes

Typespecs, Dialyzer & the Gradual Type System IO, Files, Paths & the System Dates, Times & Calendars

Mix Projects, Dependencies & Configuration Testing with ExUnit

Documentation, Formatting & Code Quality Part III — Concurrency, OTP & Advanced Elixir Links, Monitors & Fault Tolerance Supervisors & Supervision Trees

Registry, DynamicSupervisor & PartitionSupervisor Applications & the OTP Design ETS, DETS,:persistent_term & Mnesia

Metaprogramming: Quote, Unquote & Macros Building DSLs & use Erlang Interop, Ports & NIFs

Data Pipelines: GenStage, Flow & Broadway Logger, Telemetry & Observability Performance & BEAM Internals

Releases, Deployment & Hot Code Upgrades Part IV — Ecosystem & Real-World Elixir Ecto & Databases

Other Key Libraries (Oban, Absinthe, Req, Jason, Nerves, Nx, Livebook) Best Practices & Design Patterns

Appendices: Cheat Sheet, Operators, Resources, Study Plan