Hero roadmap: the whole course on one page
| All 50 lessons | |
| How to practice | |
| Two capstones, revisited | |
| Where to go next |
All 50 lessons
Fifty lessons, five stages. Start at lesson one and move forward in order - every page ends with a link to the next one. Lessons 01 to 40 live on the course index page linked below, and the final stretch follows right after.
Start: 01-10
- Lesson 01: What is Elixir and where it runs
- Lesson 02: Install Elixir
- Lesson 03: iex: the interactive shell
- Lesson 04: Your first script
- Lesson 05: Variables
- Lesson 06: Numbers
- Lesson 07: Strings
- Lesson 08: Atoms
- Lesson 09: Truthiness: only false and nil
- Lesson 10: Conditions
Language: 11-20
- Lesson 11: Recursion replaces loops
- Lesson 12: Lists
- Lesson 13: Tuples
- Lesson 14: Maps
- Lesson 15: Keyword lists
- Lesson 16: Functions
- Lesson 17: Defaults and clauses
- Lesson 18: Pattern matching
- Lesson 19: case
- Lesson 20: with chains
Processes and OTP: 21-30
- Lesson 21: Modules in Elixir
- Lesson 22: import, alias, require, use in Elixir
- Lesson 23: Structs in Elixir
- Lesson 24: Protocols in Elixir
- Lesson 25: Behaviours in Elixir
- Lesson 26: The pipe operator in Elixir
- Lesson 27: Enum in Elixir
- Lesson 28: Stream in Elixir
- Lesson 29: Comprehensions in Elixir
- Lesson 30: Advanced strings in Elixir
Tools and web: 31-40
- Lesson 31: Sigils
- Lesson 32: Binaries and charlists
- Lesson 33: Exceptions
- Lesson 34: ok and error tuples
- Lesson 35: Files and IO
- Lesson 36: Processes
- Lesson 37: GenServer
- Lesson 38: Supervisors
- Lesson 39: Tasks and Agents
- Lesson 40: OTP applications
See the full titles for lessons 01 to 40 on the Elixir course index.
Projects and roadmap: 41-50
- Lesson 41: Mix projects
- Lesson 42: Dependencies
- Lesson 43: Testing with ExUnit
- Lesson 44: Doctests
- Lesson 45: Debugging
- Lesson 46: Configs
- Lesson 47: Releases
- Lesson 48: Capstone: todo CLI
- Lesson 49: Capstone: HTTP server
- Lesson 50: Hero roadmap: the whole course on one page
How to practice
Read one lesson, type every snippet by hand, break it once on purpose, then fix it. Small daily reps beat weekend marathons - twenty focused minutes move further than two distracted hours.
Keep the loop tight: run the tests, read the first failure fully, change one thing, run again. When stuck for more than twenty minutes, halve the code and inspect the middle value with a label.
Two capstones, revisited
The course ends with two projects that reuse the whole stretch from lesson 41 onward: a command line tool and a small HTTP server around the same todo idea.
- CLI: parse argv, store todos in a text file, cover the store with ExUnit.
- Server: sketch an stdlib HTTP service, serve JSON routes, test with the stdlib client.
- Config: keep ports and paths in config files with runtime overrides.
- Release: build once, run the binary, confirm both capstones from a clean checkout.
Where to go next
After both capstones, rebuild them from memory without reopening the lessons. Then extend the server with a second route and the CLI with a second command, keeping tests green at every step. The course ends; the practice does not.
Next: Elixir course
Article author: Arthur Isaev