kpanic

kpanic

Modern Erlang for Beginners (PragProg)

https://pragprog.com/screencast/v-roerlang/modern-erlang-for-beginners

An in-depth introduction to coding with Erlang, a general-purpose, concurrent, functional programming language renowned for its ability to create distributed and fault-tolerant systems.

Modern Erlang for Beginners provides a thorough introduction to the Erlang programming language from the very basics to building your first Erlang/OTP application.

This course takes a very structured approach of teaching Erlang. The screencasts show you how to get started, in a gradual journey from understanding basic concepts such as pattern matching, to writing your first OTP application. You will learn how to use behaviours to build supervised and distributed systems, through clear examples and detailed explanations.

Why Erlang? The Erlang runtime system is known for its designs that are well suited for systems with the following characteristics:

Distributed
Fault-tolerant
Highly available (non-stop applications)
Support Hot Code swapping (code can be changed without stopping a system)

I did not watch it (yet), however looks very interesting material to refresh some concepts, to read better erlang code :wink: or to bootstrap OTP

Most Liked

kpanic

kpanic

I watched the screencasts, and I would suggest them to who:

  • wants to grasp better Erlang syntax from an Elixir point of view
  • wants to bootstrap Erlang obviously
  • wants to refresh or learn OTP by building OTP behaviours from the ground up.

Personal considerations

After a nice introduction to Erlang syntax and data structures you will learn about recursion, pattern matching, different way on how to improve code readability, immutability, map/reduce, guards, etc

You will learn how to spawn processes, links, monitors that will serve you to understand the next lectures

Then the lecture builds up on how to make communicate an Erlang cluster (connections, pings, send messages across the cluster and so on)

You will learn how to build a bank process that reacts to messages
You will learn how to refactor your implementation of a gen_server into a gen_server OTP behaviour (similar to the way *Elixir in Action*does) And dig/refactor intoSupervisor, supervision strategies,Application` what you implemented “manually” (from the ground up).

I found out that the author/speaker explains things at the right pace and level of detail (not too much and not too few information) from my point of view.
The author is right to the point and provides valuable insights.
Also the lectures time length is balanced. You will not get bored (or at least, I did not :wink: )

When coding in Elixir, you’ll encounter Erlang libraries and it’s nice to be able to read them.
It’s true that after some Elixir, Erlang code will feel familiar, however with this introduction I feel that it will be even easier to understand what’s going on.

Either if you are starting with Erlang or with Elixir, this might be useful.

Conclusion:

I enjoyed it, even if most of the concepts were already familiar to me, however I refreshed some concepts of OTP in particular.

ostinelli

ostinelli

Just a note to state that this course has been moved to Udemy and is availble here:

ostinelli

ostinelli

Thank you @kpanic for the review. :slight_smile:

Fl4m3Ph03n1x

Fl4m3Ph03n1x

As a extra, in case someone is interested, there is also an erlang master course for free with some lessons from Joe Armstrong:

https://www.cs.kent.ac.uk/ErlangMasterClasses/#

Where Next?

Popular in Courses Top

geo
I launched Build It With Phoenix into early access back in March of this year and have had some great feedback on it so far. I’ve held of...
New
snake117
Just saw this video by Derek Banas. He covers the basics of Elixir in a one hour video.
New
zkessin
Hi All I have a new email course to introduce people to GenServers, which I think will be useful for those trying to get up to speed with...
New
lubien
I’ve been working on writing beginner friendly lessons aimed at teaching LiveView, Phoenix and Elixir to those who might not have even pr...
New
CodeSync
6 trainings with experts during Code BEAM Europe 2023 (5 in Berlin, 1 virtual) Before the conference and all the great talks, we bring t...
New
lauraesteves
Stuck at home and want to make the most of it? Here’s your chance to help fighting COVID-19 while helping yourself grow as well. Learn a...
New
reddhouse
Please note: This course contains the use of inaccurate terminologies and may lead to confusion - see comments in the thread below for d...
New
jacobluetzow
My comprehensive Elixir course “Elixir: A Comprehensive Introduction” is now available for free on YouTube. This structured course takes ...
New
PJUllrich
Now available on Indie Courses Hi folks! Peter Ullrich here :slight_smile: I’m happy to announce my second video course called Building ...
New
AstonJ
By @elbrujohalcon Course Overview There is a language that powers 90% of all Internet traffic. It’s also the language behind some extre...
New

Other popular topics Top

Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
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
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement