I’ve been trying to advocate Elixir at my company. So far I’ve conducted a presentation about Elixir, but it focused mostly on the awesomeness of the Erlang VM and the concurrency building blocks (processes, messages, links, monitoring). It was welcomed with some excitement, so I want to follow up with a hands-on coding workshop in Elixir. I intend this to give people a tour of Elixir (the audience knows Ruby or Python). Obviously doing this properly requires a lot of effort, so I was wondering if there are any free resources that I could use?
We had a “functional programming day” at work and I held a short group programming session, where I wrote this program and everyone simultaneously wrote it on their computers, while I explained on every line what we were doing: https://gitlab.com/Nicd/elixir-todo-list
First we implemented the basic TodoList and then added the JSON API afterwards. It’s not much, but I think it shows many of the important things: basic Elixir, pattern matching, processes, GenServers, supervision, and HTTP communication with Plug. Before starting I went over the Elixir syntax quickly. I got positive feedback but your mileage may vary.
Perhaps in addition to what Mikko has suggested, it may be worth asking if they would be happy to buy their developers a couple of ebooks each (Programming Elixir and Elixir in Action are a great place to start) and then maybe create some workshops around that - chapter by chapter? They could use the forum discount to get 35% off
That’s a nice idea, but I think I need something that doesn’t span multiple meetings. I’m also thinking about doing some code katas together. Or giving a very quick tour of the language and giving people different tasks to solve and assist them as needed. And on a second meeting try to build something useful.
Ultimately you are in a better position to judge what your audience would find relevant and what kind of focus, functional vs concurrent programming is needed.
Often workshops focus on highlighting on the shift in thinking between object-oriented, functional and concurrent approaches.
Two years ago there was a discussion about implementing Tic-Tac-Toe in Elixir.