3 ms·
Personally I'd highly suggest investing in time in both, but start with basic Elixir and understanding the concurrency model and functional programming if you'r
by frellus 4y ago
Personally I'd highly suggest investing in time in both, but start with basic Elixir and understanding the concurrency model and functional programming if you're coming from an imperative or OOP world.
If you like learning by watching videos, I cannot recommend this course highly enough, it's what accelerated me from zero to a lot of the key concepts:
https://codestool.coding-gnome.com/courses/elixir-for-programmers-2 https://codestool.coding-gnome.com/courses/elixir-for-progra...
The instructor speaks in a way that's easy to consume, for me. It assumes you already know how to program, and the way he talks about the various topics gives a lot of depth to the various concepts that's missing in a lot of material I've seen -- he explains the "why" of things, not just the "what" and "how".
The course will have you implement a hangman game from a basic client/server model, eventually to a Phoenix non-Liveview page, then to LiveView, so you get a great understanding of how to architect an application the right way and how to make good design decisions.
The whole thing costs just $35, which I think is perfectly reasonable and doesn't break the bank for anyone. The Pragmatic courses are good, but Phoenix is too out of date in them now and it'll cause a lot of pain if you're trying to follow along exactly. Phoenix has evolved quite a bit from 1.5 to 1.6 and now 1.7, and those changes can be a bit confusing to a first time person.
Other place to start would be just the basic docs on the Elixir and then Phoenix site. They're really good. Elixir School is also good (and free).
- rahimnathwani 4y agoThanks. I’m on the pattern matching section of that course now, and and am loving the style so far. I like that the explanation isn’t solely dependent on the videos, too.
- frellus 4y agoAwesome, glad you liked it! Yes, I get bored when it's just one format and I like the mix of video, which isn't overwhelming, and then supplemental reading and exercises. I also love that the author makes mistakes along the way (as he points out in the beginning) because that caused me to pay even more attention to what he was doing.
- frellus 4y agoAlso, if I may, recommend two videos to watch which is what got me into Elixir in the first place. 1. "The Soul of Elixir and Erlang" - https://youtu.be/JvBT4XBdoUE https://youtu.be/JvBT4XBdoUE ; this fast-paced talk by Sasa Juric will highlight exactly what is special about Elixir/Erlang in terms of fault-tolerance and scalability 2. "Using the Beam to Fight COVID-19" - https://youtu.be/cVQUPvmmaxQ https://youtu.be/cVQUPvmmaxQ ; this highlights a real-world use of Elixir and the speciality of how the BEAM works using an actor model which I found fascinating. Should get your excited about the possibilities of this language. 3. "The Do's and Don'ts of Error Handling" - https://youtu.be/TTM_b7EJg5E https://youtu.be/TTM_b7EJg5E ; this talk by Joe Armstrong, inventor of Erlang, again highlights the shift in thinking about error handling and failure recovery. Not Elixir specific, but since Elixir has it's roots in Erlang it's well worth listening to this talk, which is conceptual and not code-centric. None of the videos above are Phoenix or LiveView but they should help build some concepts in your brain about why you want to go down this learning path of Elixir and Phoenix, why it's different. I listened to the first two, and I couldn't stop thinking about them, personally. A last thought I would give you as you're going through any training material or topics, I cannot recommend strongly enough. Consider this pattern: download LiveBook (https://livebook.dev https://livebook.dev) and create a notebook for each lesson or major topic you're learning. Gives you a great way to learn, take notes, experiment and keep the history rather than just using iex at the command line all the time. I've found this greatly accelerated my active learning, as it's easy to get into the passive learning loophole of just regurgitating the code in tutorials and not stick the concepts into your brain. Best of luck!
- rahimnathwani 4y agoThanks. Added all of these to my list :)