asfand

asfand

Which course should I pick!

I am Asfandyar from Pakistan. This is my first time to the forum.
I develop PHP websites using CodeIgniter, which is super easy to learn. Then I also learnt Ruby on Rails. I have a working experience in RoR, even if I did not use it for some real project.

Now I want to learn Elixir and Phoenix, but it’s hard for me to learn. I learnt the pattern matching and other functional programmingn concepts from the official docs, but when it comes to processes, it’s a little hard for me to learn easily. Also when I tried to learn Phoenix, I was forgetting the ideas.

I asked friends, searched google, read different blog posts, and at last I found some courses which I think will be easier to get me up and running. Following are the 3 courses I shortlisted so far,

  1. Discover Elixir and Phoenix, Ludu.com
  2. Elixir for Programmers, Dave Thomas
  3. Developing with Elixir/OTP, Pragmatic Studio

Because I have only limited budget, so I can’t buy all of these courses, and from the free lessons I can’t decide which one is the best. But because hearing a lot about Pragmatic Studio’s RoR course, I think their course might be as easier and beneficial as their RoR course, so I am kind of inclined towards that, but then when I look at the genius Dave Thomas and his experience in Ruby world, I think may be his course is better, then I also read some good reviews about the course at Ludu, so I am not able to decide which course should I take.

Would you people help me in deciding which course should I take?

Also if there is another course which is easier, and only one time payment, and which can make me productive quicker, please send a link to that.

Also if someone have already used the above courses, what are the challenges in following each course?

Note: I got some nice links in the replies which lead to posts with more nice links. So it means I’ll spend some more time in those links. But I’ll still want to know if Pragmatic Studio course will be the best for me or the Dave Thomas one, when I return back from these links.

Most Liked

peerreynders

peerreynders

Erlang using Kent University Erlang master class

Note that the content has been reworked into two MOOCs:
Functional Programming in Erlang
Concurrent Programming in Erlang

The first one is entirely about (sequential) functional programming while the second one goes over the principles and techniques of concurrent programming that OTP is based on - while only taking you to the doorstep of OTP (i.e. you use gen_server at the end of the course). There still is room for a third course exploring the use of various OTP behaviours.

While Learn You Some Erlang is in Erlang, it’s knowledge is all based around the BEAM ecosystem which is what Elixir is based on.

On Erlang’s Syntax:

the syntax is only intimidating, it’s far from difficult.

Erlang is a fairly small language and should be simple enough to learn if you approach it with an open mind (and lots of people don’t). The benefit of learning functional and concurrent programming in Erlang is that it should give you a clean break from your existing PHP/Ruby mindset. Elixir’s Ruby-like syntax may lure you into treating it like Ruby - which it really isn’t. The typical challenges to learning a BEAM language are:

  • Using pattern matching instead of conditionals
  • Using recursion instead of iteration (and by extension, using higher order functions)
  • Thinking concurrently

That being said having to learn Erlang can feel like the straw that breaks the camel’s back.

Learn Functional Programming with Elixir aims to teach functional programming in Elixir (i.e. no need to do it in Erlang). Elixir in Action progresses a bit quicker in order to cover the basics of concurrent programming and explore some of OTP - in way it feels like an Erlang (i.e. BEAM) book that happens to use Elixir - no Ruby-coloured glasses here.

Dave’s course doesn’t provide free lessons in an order, so I won’t be able to get an idea about how easier/harder the whole course is, although I got an idea from the free lessons and the titles of the paid lessons, that the course covers a lot of stuff.

So, I think the biggest risk here is that you start the course and that you find it too fast paced.

You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s different, and you want to know quickly.

This pretty much sets the tone for what is expected of you. But given how well the course is reviewed here, the biggest risk is that you may have to pause and backfill some concepts before you return to it. So while the course may turn out to be “too much” in the short term, I find it hard to believe that it would be useless in the long term as long as you go back to it when you are ready.

AstonJ

AstonJ

It’s one of the best courses out there :slight_smile:

See my review of it here for my thoughts:

kokolegorille

kokolegorille

Although I have a great respect for teacher, which taugh me a lot on React JS, I have to say I was not convinced by his course on Elixir/Phoenix bootcamp.

The main problem was the misuse of functional terminology, that showed he was more like discovering “at the same time”…

I watched PragDave course and for me he knows more about FP.

I didn’t watched the other courses, so I can’t tell…

kokolegorille

kokolegorille

I know the author puts a lot of efforts preparing his course, but it’s not like learning a new JS lib. You can’t understand FP in 3 months, it’s just too big change. Well, it’s just a personal opinion, of course.

kokolegorille

kokolegorille

We all have different technics and goals when learning. I started a year ago, but with a Rails background. And for me, it was important to understand the difference, because I didn’t wanted to redo in Phoenix what I could do with Rails.

So I started by learning OTP, much before Phoenix (and even Elixir) because it is (for me) the real promise I can get from the language.

And, as the best things are free, the videos that finally tilted me were Kent University Erlang master class. I know I mention these often, but it’s because I could understand the link between the code and the actor model.

Not to mention that teachers are great. And again, just my personal opinion :slight_smile:

Where Next?

Popular in Chat/Questions Top

satoru
I’m working on the “Bob” exercise on the Elixir Track in Exercism. I am testing for uppercase letter with this simple check: c in ?A..?Z...
New
sadcad
I love the Phoenix and Elixir docs, but I always tend to learn faster when I watch a video of someone explaining things and then I implem...
New
ca1989
Hi all, is there any up to date resource out there (blog, talk, video, book…) about deploying elixir applications using releases? In pa...
New
loganhelms
A while back, I read a great book by Luis Atencio titled, Functional Programming in JavaScript. In section 7.3, he discusses memoization ...
New
eliottramirez
Hello, I’m trying to learn Phoenix but I constantly find difficult understanding how the framework works, and I think part of this is th...
New
New
Allyedge
Hey, I want to learn Elixir OTP and I wanted to know if there are any good resources that teach it. I found some web pages, but none of t...
New
dopomecana
The title of this topic may sound silly at the first glance. But why I trying to ask you guys is how to go to the next level? I am curre...
New
zervis
Hello, I’m about to dive into web development. I was thinking about Laravel or Ruby on Rails, but then I found Phoenix. Do you recommen...
New
Nopp
Hey guys and girls, i am completely “new” to programming, recently played a bit with Python, Ruby and PureBasic, but i want to try somet...
New

Other popular topics Top

peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New

We're in Beta

About us Mission Statement