A 30-day guided exercise series for learning the Elixir programming language through hands-on coding challenges.
30 Days of Elixir is a free, open-source learning resource consisting of 30 hands-on coding exercises designed to teach the Elixir programming language. It guides developers from basic syntax to advanced concepts like OTP and macros through practical projects, helping them build proficiency in functional, concurrent programming.
Developers new to Elixir or functional programming who prefer learning by doing, as well as experienced programmers seeking structured, project-based practice to master Elixir's unique features.
It offers a curated, incremental path through Elixir's ecosystem with real-world examples, encouraging active experimentation over passive tutorials, and is created by a learner for learners.
A walk through the Elixir language in 30 exercises.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
One exercise per day for 30 days, progressing from basics like 'hello world' to advanced topics like macros, ensuring steady, manageable learning as shown in the file list from 01 to 30.
The README explicitly advises users to modify, break, and rewrite code, reinforcing understanding through active practice rather than passive reading.
Covers key Elixir concepts including unit testing, data structures, processes, OTP (GenServer, Supervisor), web development, and macros, as evidenced by exercises like Sudoku solver and multi-player Spades game.
Includes practical applications such as a wiki server and custom web DSL, bridging learning to actual use cases and demonstrating Elixir's strengths in concurrency and distributed systems.
Exercises are static files without built-in validation or answer keys; learners must self-assess, which can lead to frustration on complex problems like the macro exercises where the author admits confusion.
As an open-source project last updated by the author during their own learning, it may not align with latest Elixir versions or best practices, risking obsolescence for new learners.
Advanced topics like macros are introduced with minimal explanation (e.g., 'quote/unquote confounds'), which might overwhelm beginners without additional resources or community support.