About the Course

Get a brief introduction to what we’ll learn in this course.

What is Elixir?

Elixir is a concurrent functional programming language built on top of the Erlang programming language. It’s designed to maintain and scale applications. It compiles to bytecode and executes on Erlang BEAM virtual machine.

Why is adopting Elixir challenging?

Elixir is relatively new, yet growing rapidly, and the first production applications are emerging. Still, early adopters may find some important details missing. As with any emerging language, common questions arise:

  • At what point do the promising rewards of the Elixir platform outweigh the risks?
  • How do we recruit and train teammates who might never have used a functional language before to build consistent code?
  • How do we wrestle with the trade-offs with distributed systems?
  • What tools do the pros use to test, deploy, and measure applications?
  • What critical but less popular tools are available to solve issues like integrating external code or measuring performance trade-offs in production?

This course is written to answer these questions.

Note: Elixir adoption can be hard because the collective problems mentioned above. It’s a functional, concurrent, and distributed language. Any one of those concepts is difficult to understand, and many of us will be learning all of them at once, but have courage because we also know that many teams are making the successful transition.

Course phases

Adopting Elixir isn’t about some narrow aspect of the Elixir language but an experiential course containing the kinds of details that are typically difficult to find for an emerging language. Said another way, this course focuses more on the exploration of the expansive field of resources for new Elixir developers rather than covering known topics. This course covers the whole adoption lifecycle in three parts:

As we progress through the course, the chapters will go deeper into technical details. This is intentional because this course has been designed to fill the many holes some teams and customers encounter daily. The course intends to provide enough details to lay the right theoretical foundations and point us toward the right solution, and then move on.

Target audience

This course is for different types of readers, and no single reader will find everything covered here relevant to them. Team leads and technical managers will want to know how to recruit and train, but pure programmers will probably find such details distracting. Beginners from traditional languages like Java or Ruby will crave more information on making the transition to a more functional, concurrent language.

Note: This course is perfect for those in the technical Elixir community who find themselves adopting Elixir or who plan to in the near future.

There’s a growing segment of Elixir programmers who need to walk with successful Elixir practitioners. That list includes day-to-day developers looking for help making the transition from other languages. Experienced programmers may be deploying their solution from the experimental staging servers into production for the first time, learning to scale their solution, or beginning to dabble in distribution for better fault tolerance. We can’t promise you’ll like everything in this course, but it’s guaranteed that you’ll find something you’ll like, and at the very least, something that’s new.