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 of 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!
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...
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 time had come to test my knowledge. I was confident it would go well, that I had a good functional 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 recognize 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. Every day, a new challenge appears peeking at the door, and I feel able to confront it (sometimes with the help of my colleagues 😄) without fear. Now I have the confidence to implement features, solve bugs, do refactoring, and test my code.
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 an 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!
In case you don’t know, Coletiv is a software development studio from Porto specialized in Elixir, Web, and App (iOS & Android) development. But we do all kinds of stuff. We take care of UX/UI design, software development, and even security for you.