A free and open source online Elixir and Phoenix bootcamp


I’ve been tossing an idea for a free and open-source platform to learn Elixir and Phoenix. Something like freecodecamp. I’ve been through codeschool and a couple of other material, but none of them turns out to be open-source. And none of them provide a full insight into all the features and benefits nor step-by-step learning for the complete beginner. Some people have a problem with reading the docs and getting started, so I was thinking of a project-based approach. We could have the people build projects, you know after completing the lessons.

Please let me know what you think of this. A few pointers n getting started might also help.


Can you provide more details about what you mean please? There’s very little info at freecodecamp without signing up an account.

We already have some great free resources too - and so you might find it would be easier to help out with those projects than having to create a whole new resource from scratch. Take a look:

You could for instance, suggest/work on a codeschool type interface for elixirschool :slight_smile:


Freecodecamp uses the MERN stack to turn a complete beginner to programming into a full stack developer. A series of challenges in an interactive code editor with projects along the way, FCC starts off with the basics of front-end development and slowly progressing to libraries and frameworks like jQuery, React and Redux. There’s a front-end cert- free of cost, followed by data manipulation and visualization. In the end comes back-end development - Node and Express. The wrap-up is a set of interview prep material and extra projects to build a vast portfolio.

I wanted to build something on the same lines using Vue as a front-end course and E/P for backend cert. Another similar project is theOdinProject - uses rails.The difference is TOP provides only links to the resources and not the content itself.

In comparison, FCC has a million learners while TOP has 50K, reason being people want to be spoon-fed.

Elixirs’ the new thing- now is the time we build something like this- more people will benifit from it now.


@AstonJ I checked out Elixir School. It just looks like a guide. I want to build a thing that has challenges and really gets the concept rooted in in the learner’s mind and make them industry-ready.


At the moment, I haven’t seen a freeCodeCamp like website for learning Elixir. Maybe someone will make one in the future.


This thread is to get everyone interested in developing such a platform. I’m looking for feedback on what people think of it.


@anandpotukuchi You have a good idea!

One way I have imagined people learning Elixir, Phoenix, and the OTP is to have a version of Phoenix that allows devs to see:

  1. All routes, modules, functions/actions, etc from the default mix phx.new as well as any that they create or modify thereafter - within the app eg phoenix app they are running.

  2. A visual ‘nodal’ representation of code - similar to a visual sql editor - where a dev can see how modules are linked and even functions, and even layout architectures this way.

  3. Exercises based on 1 (and perhaps 2) - eg how to transform data from module to another. The simplest approach would be for this to be multiple choice - with answers provided and results depending on successful choice, and the more complex, allowing devs to write code within the browser to see how it changes the codebase or app.

Perhaps they’re fanciful ideas, but I often feel it’s great to have the IEx on the command line, but this appears to feel to isolated to someone starting in Phoenix or with a mix app that’s focused on a web app, and I can see this approach working for accessing IEx via the browser too.

Some of the tools/packages exist to cobble the above ideas together, for example, there’s a debug bar somewhere and I’ve also seen reference in these forums to a package that allows a dev to see all controllers etc in an existing app.

I guess, if I had to sum up the idea, it would be a meta/learning version of phoenix/mix that allows exercises to be added to it, completed in a visual way, that teach basic functional and elixir concepts to, as you write, developing basic apps.


@BarelyFunctional Yeah, sounds cool. Yeah, we could integrate them into one idea. Thanks for your feedback. Will keep in mind when designing the curricukum.


Thanks @AstonJ for linking to Joy of a Elixir :slight_smile:

Hi @anandpotukuchi. Joy of Elixir, while not yet finished, sounds a lot like your idea. The plan is to take people through Elixir from scratch (no programming experience) and end with them completing a test-driven-design project compiled with Mix.

If you at all had a chance to read through the book and to provide feedback on it that would be most welcome :slight_smile: it seems like you already have a lot of good ideas.


I like the idea - I’ve meant to start writing about Elixir/Phoenix & Vue together as I feel they make an excellent package but in the meanwhile I’m focused on first finishing the game I’m developing with them and once that is done creating a series of articles going through creating a similar thing.

I could contribute code related to that. I think a game is excellent because it touches many of the relevant points, in this case:

  • assets organization & compilation, specially now that Phoenix ships with Webpack support out of the box it’s a great way to show how easy it is to set it up for Vue (or others)
  • Templating, Views, Controllers - Sessions (Phoenix Tokens), Registrations (Ecto)
  • Some of Erlangs powerful abstractions, GenServers & ETS along with Elixir’s Ecto (to serve games, allow easy fetching of game information/matching of players/queues & to persist them in case of failure)
  • Channels as ways of connecting users to these resources and transporting information from the back-end to the front-end in a seamless manner
  • Elixir’s basic modules (enum, list, etc) to manipulate data structures and pattern matching in order to create a small game engine
  • Vue as a modern front-end tool to generate and organise code, specially using Vuex as a central “brain”
  • Release and Deployment

There’s plenty of other important things that I have no experience in like distribution, and others like tests where my experience is minimal - but this would already be some interesting content.


@nsuchy That’s what I meant. Why don’t we as a community build something for beginners?


@radar Thanks for sharing that - I’ve been there. what I believe ( and experienced) is that people learn more from interactive code challenges than a book. That’s why people find codecademy simpler than reading some book or the official docs. I personally prefer the docs but the latter is much more effective than reading or watching videos.


Learning code by challenges works very well for lots of Developers that do not like to read books or documentation, thus I agree that would be nice to have some interactive way of learning Elixir to make this language more popular and easy to adopt :slight_smile:

For DevOps I love this https://www.katacoda.com that really makes easy to grasp what we want to learn while having fun by doing it.

Why Vue and not Elm for the front-end?