Santheepkumar

Santheepkumar

I need good guide to learn Elixir

Hi all,

I am a Fullstack JS developer for last 2 years. I need a good guide to learn elixer. Any suggestions please

Most Liked

zakimedina

zakimedina

I have gone down many rabbit holes in the pursuit of becoming an efficient Elixir Developer. Unlike Ruby on Rails, you cant just start with Phoenix with zero Elixir language especially coming from an OOP side. For me, at least I needed a good grounding in Elixir foundations to truly grok Phoenix.

Note: Some folks will say skip OTP. I will say don’t. True you could develop proficiency in Phoenix without OTP, but OTP is the secret sauce (and pattern matching).

If I go back and do it all over again I would suggest this learning path:

  1. Start with the official Elixir documentation (its free and its excellent).

  2. I used Grox.io yearly passport program. I like their content because it’s regularly refreshed. There are a lot of other Elixir resources but I feel they are slightly outdated for my liking. Additionally, Grox.io has a very helpful curated learning path for Elixir and OTP, and finally LiveView (since you are JavaScript expert, you might skip LiveView for now). Start with Elixir and then OTP.

  3. Optional - Leverage the free content from Elixir School to reinforce previously learnt Elixir and OTP concepts from time to time.

  4. Now let’s learn Phoenix. Again, I would suggest start with the official free Phoenix documentation.

  5. If you like to build an end-to-end Phoenix app then check out this Full stack Pragmatic Studio course where you use Phoenix and React over GraphQL to build a marketplace app.

This will give you a good grounding in Elixir and its web Framework Phoenix. You can then branch off into other areas like IoT (Nerves), Database (Ecto), and Frontend (LiveView) as needed.

The final step is of course to build your own toy apps, side projects and practice what you have learnt. If you can introduce Elixir at work even better.

Also almost all Elixir, Phoenix and OTP books are awesome. Here are my personal favorites (I am sure this list will grow as I read through my pile of unread books!)

Elixir & OTP:

Phoenix & Ecto:

I have come to realize Elixir is a gateway drug to Functional programming languages. For my own journey, I am now learning Erlang and Rust.

dimitarvp

dimitarvp

Let’s start with the right syntax: it’s Elixir (“i”, not “e”).

Did you go through the official guides first? They give an excellent base to build on top of.

kokolegorille

kokolegorille

Just to add to previous answers…

You should know there are different steps in your learning.

  • Functional Programming
  • Phoenix
  • Ecto
  • OTP
  • Nerves

etc… Each could be subject to a whole book (or many books)

If You already know FP from JS, it’s easier.
If You want to do web, Phoenix would be like Express
Ecto would be like mongoose
OTP is … not matched in JS, but is the core of concurrent programming
Nerves too is not matched in JS, but is the core of doing embedded devices with the BEAM

Where Next?

Popular in Chat/Questions Top

Besto
I’ve been trying to start learning Elixir for a couple of weeks while I develop a tiny project I have on node.js, but every time I try to...
New
Nopp
Hello there, i have a lot to read and to learn, but are there some books, that are focussing on how i “should” plan the architecture of ...
New
makeitrein
More Ecto questions! More madness! The context: there’s a list of books that I want to filter with a dropdown… The dropdown: looks some...
New
LegitStack
I’m not a hugely experienced programmer, just a few years. So I’m looking for resources to learn about a topic but I can’t seem to find m...
New
aswinmohanme
I recently finished the Udemy course on Elixir and Phoenix and I am thinking about using it for the next project. But I am stuck as how t...
New
venomnert
Background I have been a backend elixir developer for about 3 years now. I have been mainly working on simple CRUD applications. Context...
New
TwistingTwists
I want to learn DSL. Don’t know how to write one. What;s the best introductory resource? I see some macro being used here. Is DSL only ...
New
AstonJ
It finally feels like I’ve got some time to catch up on my reading - though I am sure lots of people will be wondering the same: what are...
New
Yoga
Or at least, in the works? All I can find are bits and pieces but not a single project from start to finish. Including things like i18n,...
New
armanm
I know zero downtime deployment can mean different things depending on your application and what your users can tolerate so expectations ...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 48475 226
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43806 214
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New

We're in Beta

About us Mission Statement