Welcome to Elixir School!
Elixir School is the premier destination for people looking to learn and master the Elixir programming language. Whether you’re a seasoned veteran or this is your first time, you’ll find what you need in lessons and auxiliary resources.
Through the hard work of volunteers Elixir School has been translated to many languages. Some of these translations include: Việt ngữ, 简体中文, 繁體中文, Español, Slovenčina, 日本語, Polski, Português, Русский, Bahasa Indonesia, Bahasa Melayu, Українською, 한국어, Italiano, Deutsch, বাংলা, Türkçe, ภาษาไทย, and Ελληνικά.
We welcome and encourage you to join us in continuing to make Elixir School great by getting involved at elixirschool/elixirschool!
Discover why Elixir's popularity has skyrocketed and new companies adopt it daily.
By focusing on breaking problems down into simple side-effect free functions we can ensure fewer bugs, better test coverage, while incrementally building our solutions through the composition of well tested functions.Learn More
Built on the back of a giant, the Erlang runtime system, Elixir takes things even further with easy extensibility, compatibility with Erlang and other BEAM languages, and an ever expanding collection of libraries and packages to improve developer happiness.Learn More
With dozens of conferences, hundreds of meetups, Slack, IRC, Discord, and multiple active hashtags.Learn More
By The Numbers
Still not convinced? Here are some numbers that demonstrate Elixir's growth and reach.
Articles authored by Elixir School contributors and members of the community.
TIL: Cleaner queries with Ecto `map`
Today I learned how to write cleaner `Ecto` select queries with the help of `Ecto.Query.map`.
Validating Accessibility and HTML with Rocket Validator
Learn how we're checking and monitoring the new Elixir School site to detect and fix accessibility and HTML issues using Rocket Validator.
Learning Elixir with others - The Elixir Book Club
Enjoy reading your favorite Elixir books with a group of other Alchemists, introducing the Elixir Book Club.
Clean Control Flow in Elixir with Pattern Matching and Immutability
Learn how to use pattern matching instead of guard clauses to implement really clean control flow in Elixir.
Real-Time SVG Charts with Contex and LiveView
Learn how to use the Contex package to render server-side SVG charts that you can update in real-time with LiveView.
Instrumenting Phoenix with Telemetry Part IV: Erlang VM Measurements with `telemetry_poller`
In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part III we'll incorporate Erlang's `telemetry_poller` library into our Phoenix app so that we can observe and report on Erlang VM Telemetry events.
Want to learn more?
We have articles spanning several topics