Are these courses updated and suitable for Elixir/Phoenix beginners?


#1

Hi all,

I am currently on this course

Half a way thru, and struggled a bit… sometimes I don’t even know what I am coding especially Elixir side… confused to be honest (react side is still okay)

I wonder any of these courses updated and suitable for beginner? I do prefer video courses though and step by step follow along type.

https://www.learnelixir.tv/ – anyone subscribed to this? is it updated to elixir 1.4 and can work? beginner friendly?

https://www.learnphoenix.tv/ – how about this? is it updated to phoenix 1.3? As I understand phoenix 1.3 practiced changeset over model.

I also found this course
https://learnphoenix.io – is this good for beginners too?

I have purchased this course before this
https://www.udemy.com/the-complete-elixir-and-phoenix-bootcamp-and-tutorial — but I think this is based on 1.2, not sure still relevant though.

Just realised there’s a new course
https://pragmaticstudio.com/courses/elixir – beginner friendly?

or is there any recommendations?

Thanks.


#2

I don’t follow the Elixir video training since my preferred learning style is books and online tutorials. However, I will say that you may want to focus on your Elixir foundation before diving into Phoenix, especially if this is your first functional language.

I learned Elixir before Phoenix was developed, so I had a good foundation in Elixir by the time I started looking at Phoenix. Coming from Rails, Phoenix was pretty easy to learn after having developed a couple Elixir (non-web) apps.

When I learned Rails, I started with Rails, and picked up Ruby as I want. This worked pretty well for me, since I understood OO. Higher level functional constructs we the most difficult part of Ruby for me back then.

Personally, I feel trying to learn Phoenix, Elixir, and functional programming at the same time will be more difficult than learning Rails and Ruby at the same time if you have some OO experience.

Dave Thomas’s book Programming Elixir 1.3 is an excellent resource after working through the Elixir Guides.


#3

Do you have any other programming experience?

If so why not read Programming Elixir 1.3 up to the end of chapter 14 (the language bits) then switch to Elixir in Action which will help reinforce what you’ve learnt but also give you a great insight into concurrency and OTP, and then back to the rest of PE when you’ve finished EIA. After that, go on to Programming Phoenix and any other books that interest you.

This is currently my own plan of action - the great thing about mixing things up is you get a different perspective from different authors and I am finding PE and EIA complement each other very well :023: (they cover a lot of the same ground which helps reinforce what you’re learning - saves you having to make notes).

Generally Pragprog is known to keep their books as up-to-date as possible. Programming Elixir has gone from that, to PE 1.2 to the current version of PE 1.3. Programming Phoenix is also in the process of being updated :slight_smile:


#4

These threads might also interest you:


#5

I’d like to put my vote towards this approach. Some novices will probably ask do I really need both?

There are people who personally prefer either and that’s OK. Dave Thomas’ perspective is important for adopting Elixir in the first place, Saša Jurić’s is important because of his Erlang background.

Programming Elixir is filled with the enthusiasm of somebody who’s “finally seen the way” while being careful to smooth over the sometimes frustrating transition from the imperative/OO world; meanwhile Elixir in Action benefits from the perspective of extensive experience with the Erlang ecosystem, guiding the reader to using Elixir towards optimal benefit.


#6

Definitely both as the bare minimum IMO :slight_smile:

PE has excellent coverage of the fundamentals and is written in a manner where you feel like Dave is there talking you through things - something I prefer much more than books that are written like a manual or glossary.

Sasâ takes a similar approach with EIA, though walks through the language a bit quicker - which works out perfectly as it helps reinforce what you have just learned in PE.

I’m loving both so far, and I’m very happy that this approach is saving me from writing extensive notes :003: (I’m still using Kindle highlights for stuff I re-read before going on to the next chapter).

Personally I think all of the professionally published and edited books will be a must-read, I find being exposed to lots of different perspectives really really helpful (probably because I’m not quite as bright as most programmers :lol:).


#7

I found learnelixir.tv to be an excellent companion course to Programming Elixir. I’m halfway through both and both share a similiar content structure, watching the short videos has proven to make the chapter easier to digest to me.

This actually sounds like a great idea. Thanks for the tip! :slight_smile:


#8

Thanks guy.

Yeah, I have done programming in python/flask (back then was a C#/ASP.NET developer). Pretty much OOP. While I may not code so much these days, more to management. But I am really keen to see how much I can dive into the functional world, and change the paradigm here :slight_smile: planning to do some fun apps (self satisfaction).

However, really struggled to understand functional and elixir … as sometimes some developers would relate to Ruby on Rails (which I have never done that before, confused to be honest). The pattern matching … the %{} … oh gosh, not to complain :stuck_out_tongue:

Alright, then I will inevst in Programming Elixir 1.3 first and then Elixir in Action next. But I think Elixir in Action was dated back in 2015, the concepts still workable? I saw a comment here where HashDict was deprecated

Since I am recommended to learn Elixir first and not touch Phoenix, what kind of app will work or suitable for Elixir? Any tips? Thinking to work on hobby projects to skill up my Elixir. Sorry my head is fully of python, where i can do machine learning, deep learning, big data via spark, web scraper, web api, etc… not sure elixir can do all this?

Wonder to what extend should I know how to use elixir before I can touch Pheonix, as I am more keen to build web app (SPA) and API :slight_smile:

As for @chouzar , do you know that video course … is it based on Elixir 1.4? But I seriously doubt it’s updated.

Any tips? Thanks guys again.


#9

Yes EIA is perfectly fine. I think Sasâ (or it might have been Dave) mentions that there is talk about it (HasDict) being deprecated once the performance of Map is tweaked.

Try the free first three lessons of https://www.codeschool.com/courses/try-elixir before reading PE, the bit on pattern matching is very good :023:

Don’t forget you can get 25% off both PE and EIA via your forum discount (see the competition sites for more info)


#10

Thanks so much @AstonJ


#11

I found the functional aspect of elixir to not be too prevalent, my code sometimes ends up appearing “too procedural”. In what elixir shines for me is that there are just a handful data structures that let you code in certain way. After a few exercises you will likely start to grok both the syntax and purpose.

I have not done any serious apps with Elixir but I just finished a chapter on where it teaches on how to create your own command line apps so you can process data for your own means.


#12

The Ruby comparison is kind of shallow (and not that helpful) - I would describe it as Erlang with a “Ruby-esque” coat of paint; and “coat of paint” really doesn’t do justice to the Elixir meta-programming (macro) facilities. In the end I found Elixir to be “less strange” than Ruby.

Pattern matching is part and parcel with recursion and higher order functions, the practical FP backbone of Elixir/Erlang. PE introduces these ideas much more gradually, while EIA crams them all into Chapter 3 (so it’s a great focused recap after PE’s “Part 1 - Conventional Programming”; n.b. “Sequential Programming” would have been a better heading).

With Erlang R18:

erts/compiler: enhanced support for maps. Big maps new uses a HAMT (Hash Array Mapped Trie) representation internally which makes them more efficient. There is now also support for variables as map keys.

The Erlangelist: Elixir 1.2 and Elixir in Action

For Elixir in Action, this means that all the code that’s using HashDict should be changed to use maps. Most notably, the Todo.List abstraction should internally use maps to maintain the entries field. You can see the changes in this commit.

i.e. whenever you see HashDict just replace it with a map %{} and functions from Map.

While EIA may not introduce you to the syntactical niceties of Elixir 1.2, 1.3, or 1.4 it’s code and solution approach is absolutely solid because it’s founded in mature and established Erlang practice.

Watch ElixirDaze 2017- Solid Ground by Saša Jurić.

Also Elixir is an extension of the Erlang ecosystem so you may be interested in this: Erlang and Deep Learning by Garrett Smith

[quote]Wonder to what extend should I know how to use elixir before I can touch Phoenix, as I am more keen to build web app (SPA) and API :slight_smile:
[/quote]

You really benefit if you have your head wrapped around “OTP Applications” first. The currently favoured Phoenix design approach is:

  • Put your (arbitrarily complex) business logic in an OTP application.
  • Then use Phoenix to expose that functionality to the Web either via HTTP requests or web sockets, for web pages or SPAs.
    i.e. don’t entangle your business logic with the web backend (FYI: Patterns: Backends For Frontends).

In fact many Phoenix resources will focus on using EEx templates for web pages. Phoenix can support SPAs but the SPA is largely a concern separate from Phoenix (and Elixir). Some (FP-style) frontend technologies are Elm, PureScript (Building a Graphical IDE in Elm/Purescript), BuckleScript and of course ElixirScript.


#13

Thanks all :slight_smile:

I will watch those recommended videos/links

Anyway I just purchased my 1st elixir book - PE 1.3 :slight_smile: (using elixir coupon here) good luck to me… but i will watch the code school 3 free videos first … i hope i could brainwash myself in time for FP :stuck_out_tongue: hehe

one noob question… so when you code FP, does that mean you no longer code OOP or believe OOP is suitable for software dev?


#14

Nice one - welcome to Elixir :003:

Just remember that it’s ok if you need to re-read chapters if they don’t make sense first time around - I had to do that even when I was learning Ruby and it is said to be one of the easiest languages to learn :lol:


#15

What is OOP to you? According to Alan Kay (1998) concurrent Elixir/Erlang is true OO, not what C++/Java/C# et al cranked out.

I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging” …

That being said there still is a lot of valuable wisdom in the SOLID principles (when “ported” correctly). But there is certainly some disillusionment with regards to the sometimes dogmatic OO that is being practiced in the industry.

Charles Scalfani: Goodbye, Object Oriented Programming - Medium


#16

The one from udemy was my introduction less than a year ago. If you follow through, there may be a couple of things you have to change/debug/update (I had to sit through 4 bugs because of updates), but I felt that it helped me a lot.
The guy follows a straight path to developing a sort of big phoenix app and the debugging process was pretty hard in 2-3 points, but nothing you can’t manage and debugging it was pretty enlightening.
Aside from that, the book from O’Reilly press, I believe to be quite thorough and understandable.
Happy learning!