For the last five or more years I've been doing it all wrong. I thought that learning the newest, trendiest, and hippest library, framework or language out there was the way to go. I've curated a list of some of the technologies I've learned thought-out the years:
Docker, Kubernetes, Terraform, Rancher, Helm, Angular, React, Vue, Adonis.js, Prisma, Gatsby, GraphQL, Postgres, MongoDB, Cassandra, Socket.io, Webpack, SASS, Gulp, Next.js, Nuxt.js, Meteor, Express, Koa, Elastic, Algolia, jQuery, TypeScript, Node.js, Deno.js, Go, Python, Ruby, PHP, Java, among many more.
What is the problem with this list? Well if you look closely, I learned many tools that solve similar problems, I am getting ahead of my self but pro-tip: you don't have to learn every single one out there 😉.
Also, there's been a lot of software architecture changes during this time, we've had the monolithic approach, then client-service came along, need I remind you of the complicated microservices architecture? and now we have serverless.
Look, I could keep going on... As you can see (and probably you've been in a similar situation) I've invested a lot of my free time learning different tools that achieve similar results.
Like so many developers out there, I started to burn out.
Long story short, I took some vacations and went to the German Alps 🏔 to contemplate about life and find what was I doing wrong. During my mountain retreat, Apple had the WWDC﹡, and of course, me being a nerd, I just couldn't miss the event therefore I joined.
And all of a sudden it was clear to me what do I needed... it was stability in my day-to-day as a developer. Something Apple offers with their WWDC.
Allow me to explain...
The beauty of this is that it gives guidance to the Apple developers, there are no new disruptive technologies that pop out of nowhere, it's a clear and predictable roadmap, which allows the developers to follow this guided path, and simply focus on getting better at what they do and very occasionally learn the new way of doing things.
Now... I love the web, I was not going to change my career and become a mobile developer overnight. So naturally, I started looking for alternatives in my domain. That's when I crossed paths with the well-known and battle-tested MVC frameworks 🐍 💎.
I've worked with different MVC frameworks in the past, like Django, but they were more like stepping stones towards my career as a wheel-reinventor engineer.
That's when I decided to go with something more mature, hence boring, and what is more boring than Rails?
I immediately fell in love with the framework and the community behind it.
After a few months of learning the Rails way, I started to realize something... I felt lazy, before I used to learn new skills for at least 4 hours/day (after working 8 hours). Now, all of a sudden I was finally using my free time in a different and healthier way, but why was I feeling lazy?
Throughout the years I got used to the idea that I had to be studying every single day, like if I had some sort of homework because you know - that's the life that I chose by becoming a software engineer (although it's true to some extent).
Don't get me wrong, learning new skills during your free time is important, but it's also important to enjoy other aspects of life, while still learning occasionally in your free time or during work.
This is what I did, instead of using most of my free time to keep up to date with tools I probably will never use. I leveraged my job to introduce new technologies (when the need arises). This way I can stay relevant and scratch my itch for learning new stuff.
Nonetheless, it took me some time to stop feeling guilty and start appreciating the stability that I was looking for, and let me tell you something, it is well worth it ✌️.
Now after work, I don't open Udemy or Hacker News, I'd rather go for a stroll 🚶♂️, bike 🚵♂️, cook for my girlfriend 🧑🍳, do some yoga 🧘♂️ - you get the point. I am no longer a prisoner of tech and guess what? I enjoy my work, coding and life more now than ever.
There will always be something new to learn, you can try and stay up-to-date, get burned out, take some vacations and repeat this never-ending cycle.
It's okay (and encouraged) to learn new and hipster tech every once in a while, I certainly still do it occasionally for fun, but it's not longer (and thankfully) part of my day-to-day life.
If you feel that you are in a similar situation don't wait to get burned out, act - make a change. I did it and it has improved my life drastically.
Being a good, happy and healthy developer it's not knowing everything, but rather understanding what you need to know.
"Life is really simple, but we insist on making it complicated."
It is a yearly event where Apple presents to their community of developers the improvements coming to the Swift language as well as new features arriving to their operating systems.