In every object oriented programming language we model the domain with classes. Every object we generate from our classes is a container of state, represented by your instance variables, and behavior, represented by your methods. But Elixir is a functional programming language therefore it doesn’t have classes. It also doesn’t allow you to store state in objects. But of course it allows the definition of behavior, using functions.
It has been said that one of the best way to cement knowledge is to share it with others. To follow that principle I’m starting to share some concepts I’m learning about the Elixir programming language. Coming from OOP, some of these ideas might look strange at the beginning, one of them is immutability.
Last week I purchased an IKEA wardrobe. After bringing home all the necessary pieces, I realized I forgot in my car the instruction manual. The first thing I though was: “well, it won’t be that difficult!”, but after unpacking all the pieces I rapidly changed my mind, it was clearly too complicated without the instructions. The manual was as important as the pieces, it was the key to execute successfully a simple procedure, and consequently the solution to the clothes-on-the-ground problem in my bedroom.
There is only one predictable property in our job as software developers: it is change. Unfortunately it is not predictable enough, you can bet it will happens, but you cannot say when and how. This lead us to a simple question, how can I write code that embraces change?
Sometimes we feel the need to solve problems, it’s our nature and helping people feels good. But there are situations where keeping your position and being into your role matters most. I personally made this mistake at work a few weeks ago and I’m proud of doing the wrong thing, otherwise I wouldn’t have learned this lesson.
In May I attended with Federico an event in London called Silicon Milkroundabout. Silicon Milkroundabout is a startup job fair, en event where startups try to attract developers to hire. It’s just like a common fair, with stands, drinks offered and a lot of printed stuff to bring back home. It’s not a technical event, it is just a marketplace where developers explain what their startups do in order to attract attendees. If you are a developer looking for a job in London this is really a great place to understand how the market works.
It’s now eight years that I’m working as a freelancer. I started at 18 while studying at the university and for the last two years I’m completely focusing my effort on this career. In the meantime many things have changed, I started thinking again about this profession, from scratch, evaluating the pro and cons with more perception of what that means, essentially because I need to clarify if this is still the best path for my career. That’s why I would like to share this post, for the ones that are following the dream of becoming managers of theirself in the computer software industry and for those that didn’t get the chance or enough willpower to follow this path.