Learning Elixir on Alchemist Camp
Alchemist Camp has a growing library of resources to help you learn the Elixir language and this page is your brief guide on how to use it.
Where are you on your learning path?
- I'm considering Elixir (go here)
- I'm an Elixir beginner and want to learn (go here)
- I want to learn Phoenix or Ecto, or... (go here)
- I already have experience with Elixir and Phoenix (go here)
- How does this site work? Which parts are free? (go here)
Fantastic! Elixir is in a unique place in the web development ecosystem. It's both extremely performant as a web server and extremely high-level and productive. Furthermore it inherits some unique concurrency and fault-tolerance super-powers from Erlang.
Elixir's greatest drawback is that it's a relatively young language and while it's well past version 1.0, it doesn't have the incredible library ecosystem of a language like Ruby or PHP. It's best fit is for entrepreneurs and experienced developers looking for a competitive edge, people looking to learn a rock solid concurrency model and early adopters.Recommended episodes:
- Welcome to Alchemist Camp
- Has Rails 5 fixed its web sockets issues?
- How does Node compare with Phoenix?
Alchemist Camp is especially tailored to beginners. Lesson 1 starts from an assumption that you have done some programming and know what variables and functions are, but that you know no Elixir whatsoever. The first few projects don't use any dependencies and then we gradually start working with Mix, Ecto, HTTPoison, Phoenix and more.Recommended episodes:
- Lesson 1: The Guessing Game
- Lesson 2: Word Count
- Lesson 3: Minimal Todo P1
- Lesson 4: Minimal Todo P2
- Lesson 5: Mini-Markdown
- Lesson 6: Alchemy Markdown
- Lesson 7: CLI Applications with Escript
- Lesson 8: Game board
- Lesson 9: State Machine through Pattern Matching
- Lesson 10: Finishing Tictac and making a CLI (optional)
- Lesson 11: Finishing Tictac and making a CLI (optional)
- Lesson 11: A worker to log stats (start of StatWatch project)
- Lesson 12: Constructing bitmap files with Elixir
- Lesson 13: Adding Ecto and a Postgres database to StatWatch
At the time of this writing there are two full-featured Phoenix projects that have been screencasted in their entirety. Check out the Episodes page and look for episodes tagged StatWatch or CMS
As you may have noticed Alchemist Camp puts more entries into a listing page than even Reddit does. This rejection of card-based design in favor of information density is intentional. If there's a specific topic you're interested in, skim over the page and see if any of the titles or tags look relevant!
If you're already experienced, then you'll probably find the most value in the more niche topics, performance tuning and the series that builds a bare-bones framework up from Cowboy.Recommended episodes:
- Making a site with just the Cowboy server
- Building a router and handling static assets
- Creating a DSL for our router
- Setting up Brotli on Nginx or Phoenix
- Elixir Protocols: a gentle introduction
- Using remote console to access IEx in production
- Caching DB requests with ETS
The majority of screencasts on Alchemist Camp are free.
Premium members also have access to episodes marked "pro" as well as source code for other episodes. ($18/month with beta discount)
Certain areas of the site, such as topic listings are available to anyone logged in with a free account.
Undocumented portions of the site exist and it's always under construction!