FOMO (Fear Of Missing Out) as a Developer

You aren’t missing anything.

I wish I could end this article with only the sentence above, but that’s not how it works, unfortunately.

Just in case you have never heard the term FOMO before, here goes a quick definition from Wikipedia:

Fear of missing out (FOMO) is a social anxiety stemming from the belief that others might be having fun while the person experiencing the anxiety is not present. It is characterized by a desire to stay continually connected with what others are doing. FOMO is also defined as a fear of regret, which may lead to concerns that one might miss an opportunity for social interaction, a novel experience or a profitable investment. It is the fear that deciding not to participate is the wrong choice.

Translating FOMO to the Software Development world, we have this nice O’Reilly-like cover from thepracticaldev github repo that illustrates the concept:

fomo cover

The Origin

FOMO comes from comparing yourself to others.

Tech social media is especially good in making you feel like a dinosaur.

Actually, if you are part of tech Twitter as of 2021 and the past few years, you might feel like there are only two programming languages in the world, Python and JavaScript, which is totally not the case.

The world is much more diverse than social media and influencers make you perceive and you have to be careful not to fall into this trap.

In many places and companies, you can have a whole career as a Software Developer and never touch a single line of JavaScript, and even if you do, it will be minimal for very specific needs.

And delivering software involves many other disciplines like Data Bases, Infrastructure, and Product Management, for instance.

This is all to say that, it doesn’t matter if someone is bragging about the new system that only uses the latest and most hyped tech there is, you should not care about it.

Nobody pays you to code, you are paid to solve problems.

Analysis Paralysis

FOMO also causes something else: Analysis Paralysis.

I have seen it happen many times in real life, forums, etc.

People overthinking their choice of tech for their next project.

They spend weeks or months checking the best solution, with most features, with most…

The result is that they never actually build anything, they just keep stuck in the same place.

And when someone else is doing something for real, shipping value to real customers, these people who are stuck choosing tech stacks make silly questions like: "But does it scale to 1 bazillion users?", "What’s the architecture? Do you use containers?", "This language/framework is not cool or it is too old".

While they keep worrying about these questions, this guy is running a company out of a single PHP file.

I know that part of why the guy above does that is pure marketing to boost his name/brand by showing results and tech, which in turn gives him more exposure and leads to more growth and revenue without spending a single dime on Ads (like I am doing for him right now).

But that’s not the point, the point here is that, for 90% of the projects, you will never reach 10,000 users, let alone 100 thousand or 1 million.

You will most likely be ok with a single PHP file, or a standard web app, no SPA (React/Vue/Angular).

Use what you know best, be productive.

Developers are so rational when programming, but also so emotional when choosing a tech stack.

Don’t choose tech because of hype or emotional biases.

Choose the right tech for the right context in a rational way.

Evaluate the use cases, performance, limitations, community, maturity, etc.

You will notice you don’t need much tech to deliver a ton of value.

Technology is a means and not an end, don’t be a limited professional.

Your Goals, Not Someone else’s

When learning something, think about why you are doing it.

If you are learning JavaScript because you want to develop a Web App, why feel FOMO if your friend is learning Python to create a Machine Learning App?

It has become commonplace to display "We use Machine Learning" as a feature of a product when Machine Learning is actually just a tool.

There is so much you can do with "regular" code that you will run out of time before even needing to use Machine Learning for a project.

Focus on your goals, not someone else’s goals.

So This is Possible

Another way to frame the FOMO issue in a more positive way is to think about possibilities.

If you read an article about this super cool architecture, instead of thinking "Damn, I barely know what’s happening here. I’m falling behind", try to think in terms of "Ok, this is possible, whenever I need it, I will check this reference".

Just because something is cool, doesn’t mean you need it.

You will spend lots of time and waste tons of energy for marginal gains.

Good Enough

If you are solving your problem with C# and the .Net ecosystem doesn’t get in your way when building things. that’s good enough.

Tech stacks are not supposed to be a competition, you will only feed a feeling of impostor syndrome because, for some imaginary reason, what you know is not good enough, even though you are delivering value to your clients, customers, or company.

Adaptability

Finally, the best way to avoid FOMO is to have a solid basis.

Be a developer, not a React Developer, or a Python Developer, learn more than one programming language.

Having depth in a tool or language is important, but if you have your basics in place, any transition is possible and won’t be that hard.

The #1 skill for a Software Developer is adaptability.

If your career is long enough, after the frustration of seeing your favorite framework become "uncool" a few times, you will start to not care anymore.

Life is an ever-changing event, just like tech stacks.

Learn to adapt on the fly, don’t expect to be 100% prepared, you never will be.