The post was originally published in 2020 on my website patryk.it.
Hi everyone! Welcome to my first post from the "From PHP to Elixir" series about changing the paradigm and programming language. I'd like to present to you my way to start learning a new tool that is the Elixir.
When and where has it started? I was participating in the Domain-Driven Design Warsaw group meeting and there was a presentation from Sebastian Gębski about "DDD - the lost chapters". It was not only about the DDD, but Sebastian also threw a few flavors about the Elixir language into the presentation. He just showed the audience how pragmatic Elixir is. It was so interesting to me. After the meetup, I've come to my home and have started browsing the Internet about Elixir. I just fell in love with this technology. Why? Because I was looking for some new tool to learn, that is pragmatic and business-oriented. Such a tool that helps to avoid boilerplate production. And the most important thing: Elixir is focused on developer productivity with an excellent developer experience level.
My journey with Elixir I've started from scratch. The best way to learn something new is by learning how to test your code with the new toolset. Testing might show you a clear way to implement specific functionalities and at the same time, you're learning something pretty important - automatic testing. In modern software engineering, I find testing as the most important part of our journey. If you don't know how to test (unit, integration, functional) then you can't name yourself as a senior engineer. To be honest - a regular developer also needs to understand the testing topic. It's crucial!
The biggest problem for me now is that - Elixir is not object-oriented but functional. That's of course also the challenge for me to learn something completely new. This paradigm opens doors to the big world that is so, so interesting! One thing: functional programming is older than object-oriented, it's not hype-driven - remember that. :) At this moment the biggest difficulty for me is to think functional, left thinking with objects, data and relations into the functions and transformations. The best comparison is the setting of functional programming next to the analogy of machines in the factories.
I would like to create a series of short articles about specific problems and how I've functionally solved them. In this series will be included also tons of articles, resources to learn Elixir, Phoenix, and whole the functional stuff compared with Object-Oriented and PHP. I want to show you my way from the object-oriented freak into the functional master and I think it might be fascinating!
How are you feeling with that? Do you find it useful and do you want to learn something new with me?