Engineering

02 March, 2020

First impressions while learning Elixir

A month ago, coming from college with a very strong foundation of Object Oriented Programming (OOP), I was a bit scared to jump into the Functional Programming wave. Haskell was the first and only functional language that I’ve learned and I didn’t like it to be honest with you. But now, I had to get out my comfort zone and accept this huge challenge. My first job as an Elixir developer.

Nuno Bernardes

Software Engineer

My experience learning Elixir

A month ago, coming from college with a very strong foundation of Object Oriented Programming (OOP), I was a bit scared to jump into the Functional Programming wave. Haskell was the first and only functional language that I’ve learned and I didn’t like it to be honest with you. But now, I had to get out my comfort zone and accept this huge challenge. My first job as an Elixir developer.

A lot of things had to change. My line of thought. The way that I’m used to writing code. But all of that was easily overcome by my desire to learn, and my expectations about what Elixir would provide in terms of knowledge were huge!

Online Tutorials 💻

I’ve started my learning by watching online tutorials. Followed from beginning to the end, these videos, provided in the learning plan defined by my peers at Coletiv, aided to understand the basic concepts of Elixir and Phoenix. If you’re looking for a good course, this was the one I did on Udemy. It’s a great Elixir learning path for people that prefer learning by watching tutorials!

In the first days, the motivation to start working was dominating and increased the determination of finishing the tutorials with success. However, after finishing them, the retained knowledge was very vague. I was tired and did not feel the challenge of wanting to do more...

Elixir and Phoenix Books 📚

A coworker heard my feedback about the online tutorials and we quickly started looking for alternatives.

A certain day, sitting at my desk, was an Elixir/Phoenix book called Programming Phoenix 1.4 written by Chris McCord, Bruce Tate and José Valim. After skimming through the book, I was already thinking “Here we go again!”. Opposite to my thoughts, the book really motivated me, pushing me to keep learning about Elixir and without doubt, in a few days, I was getting more comfortable with Functional Programming.

I finished the book with a completely different posture compared to the previous experience. Understanding the code was now easier, and the fear of doing mistakes was close to none. I was more confident! Adding to that, I managed to take part in the conversations about elixir at Coletiv. I was now ready to start my first project!

Notes: The books I read until now at Coletiv were Programming Phoenix 1.4 and Craft GraphQL APIs in Elixir with Absinthe.

THE PROJECT 🤩

The time had come to test my knowledge. I was confident it would go well, that I had a good funcional thinking and satisfactory code quality (for a junior that was afraid of the language)! My coworkers helped me a lot to expand my knowledge and gave me the necessary tools to start my journey with Elixir.

Fernando Pessoa, a famous Portuguese poet once wrote:

“First you find it strange. Then you can’t get enough of it.”

This is exactly how I describe the path that led me to where I am now. Looking back to the Nuno from a month ago, I really couldn’t recognise myself. The fear of making mistakes, the discomfort and the lack of security no longer existed. Two weeks passed since the beginning of the project and, each day, my desire to learn increases. Everyday, a new challenge appears peeking at the door, and I feel able to confront it (sometimes with help of my colleagues 😄) without fear. Now I have the confidence to implement features, solve bugs, do refactoring and test my code.

My Elixir learning curve 😄 My Elixir learning curve 😄

Lesson learned

I feel that the function that defines my learning curve is too complex, because during this month I went through many ups and downs, but at this moment I’m in exponential growth stage, and I wish I can sustain it!

I have to thank every single one of my colleagues at Coletiv. They helped since the beginning to the end of this first learning process, and I can undoubtedly state that this is a first dream job!

Elixir

Software Development

Learning To Code

Backend Development

Join our newsletter

Be part of our community and stay up to date with the latest blog posts.

Subscribe

Join our newsletter

Be part of our community and stay up to date with the latest blog posts.

Subscribe

You might also like...

Go back to blogNext
How to support a list of uploads as input with Absinthe GraphQL

Engineering

26 July, 2022

How to support a list of uploads as input with Absinthe GraphQL

As you might guess, in our day-to-day, we write GraphQL queries and mutations for Phoenix applications using Absinthe to be able to create, read, update and delete records.

Nuno Marinho

Software Engineer

Flutter Navigator 2.0 Made Easy with Auto Router - Coletiv Blog

Engineering

04 January, 2022

Flutter Navigator 2.0 Made Easy with Auto Router

If you are a Flutter developer you might have heard about or even tried the “new” way of navigating with Navigator 2.0, which might be one of the most controversial APIs I have seen.

António Valente

Software Engineer

Enabling PostgreSQL cron jobs on AWS RDS - Coletiv Blog

Engineering

04 November, 2021

Enabling PostgreSQL cron jobs on AWS RDS

A database cron job is a process for scheduling a procedure or command on your database to automate repetitive tasks. By default, cron jobs are disabled on PostgreSQL instances. Here is how you can enable them on Amazon Web Services (AWS) RDS console.

Nuno Marinho

Software Engineer

Go back to blogNext