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 Ecto and work with DBs (See this YT playlist)
- I want to see a real-world project (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
- What's a good tech stack to learn next?
- 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: 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 and a half full-featured Phoenix projects that have been screencasted in their entirety. Check out the Episodes page and look for episodes tagged StatWatch to see how I built my stats tracking service, or Reactor to see me building the site for my podcast. The half is that the first two version of Alchemist Camp itself were screencasted in their entirety, as well as many of the updates since. Most of those episodes are tagged CMS or in the series linked in the section below that starts with a Cowboy server.
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. ($21/month, 16.7% discount for annual plans).
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!