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!

Why Elixir?

Discover why Elixir's popularity has skyrocketed and new companies adopt it daily.

Functional Programming

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

Feature Packed

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

Vibrant Ecosystem

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.

100+
Conferences

See Them Here

6 Podcasts
(& Counting)

See Them Here

25 Languages
With Lesson
Translations

See Them Here

600+ Companies
Using Elixir

See Them Here

13,000+ Packages
On Hex

See Them Here

Recent Posts

Articles authored by Elixir School contributors and members of the community.

:odbc and Efficient Querying With Streams

Learn how to use Erlang’s built in :odbc interface to query using streams effectively

announcement

Now With More Elixir!

How Elixir School migrated from Jekyll to a Phoenix powered site

ecto

TIL: Cleaner queries with Ecto map

Today I learned how to write cleaner Ecto select queries with the help of Ecto.Query.map.

announcement

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.

announcement

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.

general

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.

Want to learn more?

We have articles spanning several topics