The year was 2010.
I had been developing software professionally for over a year, teaching myself to code and creating Delphi and C# apps for desktop and web. I was mainly learning what companies asked me in order to do my job well.
Then, it hit me for the first time: if I want to grow in this career, what should I learn next?
On a single weekend, I researched almost every area of software development, from the web to systems programming. Sadly, I had no idea of the overwhelming number of languages, frameworks, topics, and philosophies that existed out there.
So I paralyzed.
Any decision at that point would mean a hundred things I would miss.
Over time, I’ve seen many people, from newcomers to seasoned engineers, struggling with the same question: where do I go from here? What technology should I choose to invest my time in? The more established (boring?) language or the new shiny tool just released?
Whether you’re a self-taught developer or not, you’re not stuck to a curriculum in your career. Of course, that is a good thing, but the amount of information and the number of possibilities can be absolutely overwhelming.
With all the new technologies coming out every week, every developer you follow on Twitter with their conflicting opinions, and every newsletter in your inbox predicting the next big thing, you start feeling lost and paralyzed. You can’t make a decision. Congratulations, you’ve just met Analysis Paralysis.
This, combined with FOMO (Fear Of Missing Out), is truly a disease of our days. With so much information and data available, every decision to spend time on one thing means you’re giving up on many others.
Overcoming Analysis Paralysis
How can you overcome this? Pick something and go with it. Easier said than done, right? Let me explain.
First, there are just so many possible roads that no one will ever be able to go through all of them or even compare them properly.
Second, every technology will have its path and trade-offs. They also evolve, for better or worse. So even if you pick a framework you enjoy, it will change gradually to the point it’s an entirely different technology after a few years.
In my case, after suffering from indecision for a few weeks, I read a blog post about Ruby on Rails. I had never heard about startups, prototyping, or agile methodologies (I know, I know - in my defense, I was living in a small town in Brazil which wasn’t exactly a tech hub). The main tech stack in my area was Java and C#, and most people didn’t even know what Ruby was. After reading two books on the language and falling in love with its philosophy, I decided to give it a shot. That was a pivotal point in my career.
Should I have gone with more established stacks? Maybe I’d never get interested in startups and the Silicon Valley market. Every company I worked for in the past decade wouldn’t be on my resume.
Then again, in 2015, another blog post introduced me to a new JS framework called React, and I got immediately hooked. A few months later, I was working full-time with it. I could have chosen to stay with jQuery or go with Angular, Ember, or pretty much any other framework. But that decision gave me some of the best international remote jobs I’ve had.
In the end, what truly mattered was not the specific technologies I chose to learn or use but what I was able to do with them. They enabled me to grow in my career, provide for my family, and make an impact on multiple products, companies, and families. In addition, they helped me build a solid foundation of knowledge and skills that I could apply to any new technology or project.
Practical Tips for Choosing What to Learn
So if you’re stuck in this situation today, I have some questions for you to consider.
1. Research the market
Is this skill valuable?
Could this trend be just a fad?
What does the adoption rate look like?
2. Know the community
Are these the people I want to read and learn from?
How are newcomers treated?
Can I get answers to my questions?
3. Get a sense of the environment
Do I appreciate the culture behind this technology?
What is the underlying philosophy?
Who are the “thought leaders”?
4. Know your interests
Do I see myself working with this for years to come?
Can I dream about becoming an expert on it?
Be careful: joining a new tech trend early gives you an edge on becoming an expert down the road. But the tech graveyard is full of promising projects that never fulfilled their promise.
5. Keep an eye on the future
Know what people are talking about and the overall direction things are heading in technology. For instance, AI is becoming more essential every day, even if you’re not yet interested in it. But more importantly:
6. Focus on the fundamentals
If you take time to understand how things work, migrating from one language to another becomes increasingly easier. For example, if you know how the web works and learn JavaScript well, most JS frameworks can be picked up quickly. This applies to any language or area within the tech industry. So take a step back and learn the fundamentals of what you do.
Despite your best efforts, you won’t learn everything in technology out there. But taking the time to consider your options carefully will help you make an informed decision that will affect your life, work, and family for years to come.
At the end of the day, it doesn’t matter which language or framework you choose. What does matter is that you learn to enjoy the ride and remember: you’re not bound to it forever. You can always pick something new and fun to learn.