Any tips on learning Elixir?

I’ve been learning Elixir for about a month now, and I’ve reached the stage where I’m trying to do basic things utilizing GenServer, but I just get overwhelmed trying to design the GenServer system as well as making it compatible with the logic that Im writing. I usually start writing supervisor then genserver then logic and data layer.

How do you approach writing software in Elixir?

1 Like

Pencil and paper. Easier for me to flesh out ideas before typing.

At this stage you need to make stuff to learn your way around. I would read Elixir in Action and do the exercism track.

Create a simple app in Phoenix LiveView. Face the breadth all at once, but keep it shallow (so your head doesn’t explode). Rely on generators as much as you can. Have an LLM guide you through the process.

IMO, you need to go through some Elixir-application level (flat/incremental) code writing before starting to create (working) GenServers, that is unless you’re a backend type of a person.

Early gratification is essential for (everyone, actually) newcomers.

1 Like

Same as learning any other technology, really. You want to spend part of your time trying to accomplish a specific goal (usually a project you’re working on) and part of your time exploring and just learning more (reading docs, working your way through books).

Personally, I would approach your problem pretty differently. You might want to try starting with a big picture understanding of what you’re trying to do, and then working from the bottom up. You can either aim to accomplish one thing end-to-end, or try to get a few pieces of functionality together.

For your specific scenario, I would recommend Designing Elixir Systems with OTP, the authors do a great job of giving you a way to think about how to understand what responsibilities each layer of your system should have, how to build it from the ground up.

1 Like

You ay be interested in my post here:

..and be sure to check out the Elixir Learning Resources > Books and Learning Resources > Courses - many of those threads contain reviews which are worth a look :023: