Course Overview

Take a look at how this course will help us learn metaprogramming in Elixir.

Learning outcomes

Metaprogramming is an advanced topic, but we’ll break it down and have some fun writing code along the way. This course is broken into natural sections to quickly cover the basics and get you writing code as soon as possible.

In this course, we will learn to:

  • Understand the basics of Elixir’s metaprogramming system with macros and the abstract syntax tree
  • Extend Elixir with our own first-class features
  • Write a test framework with macros
  • Use advanced code generation to create a MIME-type matching and internationalization library
  • Generate functions from external datasets and remote APIs
  • Properly test our metaprogramming-based code
  • Create an HTML domain-specific language
  • Use metaprogramming responsibly while avoiding pitfalls

Target audience

If you’re just getting started with Elixir and don’t have any experience working with it, this course probably isn’t for you just yet

The audience for this course is programmers who know the basics of Elixir and want to advance their skills.

We’ll also open up Elixir’s internals to understand how it was built from a small set of fundamental pieces and how extensible it really is.

Prerequisites

You’ll need an understanding of the basic concepts of Elixir programming to understand metaprogramming in Elixir.