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.
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.
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.