Conquering the Digital FOMO

Conquering the Digital FOMO
Photo by Rodrigo Ardilha / Unsplash

Back in ancient Greece, a well-known philosopher named Heraclitus said something that still rings true today:

"The only constant in life is change."

Numerous software engineers find this statement deeply relatable.

Imagine you're a software engineer. You've just gotten comfortable with a particular set of tools and frameworks. You feel like you've finally got a handle on things. But then, seemingly overnight, everything changes. New JavaScript libraries pop up, fresh frameworks become the hot talk, and suddenly your tried-and-true methods feel outdated.

This constant change can be overwhelming. It's like trying to hit a moving target while standing on a moving platform. Many engineers find themselves asking: Do I need to learn this new thing? Will my current skills become obsolete? How can I keep up with all these changes?

It's not just about JavaScript frameworks either. The whole software development ecosystem is evolving rapidly. Build tools, package managers, deployment strategies - they're all changing too.

This rapid pace of change can lead to what we call "Tech FOMO" (Fear Of Missing Out). You might worry that if you don't jump on the latest trend, you'll fall behind and become less valuable as a software engineer.

This situation hasn't really changed much in the past years. If anything, the pace of change has accelerated. These frequent tech changes can be stressful for software engineers. This stress shows up in different ways:

  • Always updating personal projects to new frameworks, but never adding features
  • Complaining about people who always want the newest tech
  • Complaining about people who don't keep up with new tech
  • Wanting more standards
  • Wishing your community was more like another one

Tech FOMO is real, and I've been there too. It seemed like there was always some hot new tech everyone was talking about. My brain would go into overdrive. Wait, what's that framework? Should I be learning this language? Am I falling behind?

Every time a classmate or coworker mentioned some cool tool I hadn't heard of, I'd feel this pit in my stomach. Classic case of FOMO in the tech world.

I tried to cram everything – languages, frameworks, tools, you name it. It was overwhelming and frustrating. I felt like I was always playing catch-up. Looking back, I realize this is super common in our field. Tech moves fast, and it's easy to feel like you're not keeping up.

So I thought about what advice I'd give to my younger self.

Learn how to learn effectively

Instead of worrying about every new technology, focus on improving your learning process. This skill will help you adapt to any new tech that comes along.

Here's how to do it:

  1. Reflect on your learning experiences. Think about the last time you learned a new technology. What challenges did you face? How did you overcome those challenges? For me, discipline was a big issue and I worked hard to fix it.
  2. Identify your learning style. Do you prefer hands-on practice? Do you learn better by reading documentation? Are video tutorials more your speed? Do you benefit from discussing with other software engineers? For me, video tutorials in combination with coding are most effective way to learn.
  3. Optimize your learning approach. Once you know your style, lean into it. If you learn best by doing, start with small projects. If you prefer reading, find well-written books or docs. For visual learners, look for quality video courses. For example, I optimized my learning by watching videos on 2x speed.
  4. Be patient with yourself. Everyone learns differently and at their own pace so don't compare your progress to others.
  5. Create a learning routine. Set aside regular time for learning and break big topics into smaller, manageable chunks. Duolingo is really good example. I am learning German every day, at least one lesson daily. Currently on day 495! 🥳

By focusing on how you learn best, you'll be better equipped to tackle any new technology that comes your way.

Don't get fooled by online tech hype

It's easy to think everyone's using the latest tech when you're always on sites like Hacker News and subreddits. But the reality is different.

Online buzz doesn't equal real-world use. A lot of chatter about a new tool doesn't mean it's widely adopted. Usually, only a handful of people are actually using it for serious projects.

New tech has unsolved problems. Cutting-edge tools often have issues that haven't been figured out yet. Early adopters are still working through these challenges. Most companies stick with proven technologies longer than you'd expect. Change happens gradually in the real world.

You should ask yourself: Does this new tech solve a real issue I'm facing?

Don't adopt something just because it's getting a lot of attention online. Focus on solving problems, not chasing trends. Learn to filter the noise and develop a critical eye for separating hype from practical value. Look for case studies and real-world applications, not just excited hype posts.

Stability matters and established technologies are often more reliable and have better support. There's value in mastering widely-used tools.

Focus on learning foundational tech first

Linux is a foundational tech. It set the standard for open-source operating systems and powers much of the internet's infrastructure.

These core technologies matter because they solve fundamental issues and influence how we think about coding. Understanding them helps you grasp newer related tech more easily.

You can spot these foundational techs by looking for widely adopted tools that have changed industry practices and have inspired many other technologies.

React for front-end development is a great example of a foundational technology. It introduced a component-based approach and a virtual DOM, changing how software engineers think about building user interfaces.

Be cautious of the "like X, but on steroids" trend. Many new tools claim to be "like X, but on steroids", where X is often a foundational technology and Y is usually a small addition. It's like Goku vs Frieza from Dragon Ball Z.

It's crucial to learn X before Y because understanding the base helps you grasp the purpose of new tools. It's also easier to learn variations once you know the original, and you'll be better at spotting true innovations versus minor tweaks.

Foundational technologies tend to have staying power.

Most "like X, but on steroids" tools don't last long, while the original core tech often remains relevant. There are many examples:

  • NoSQL vs SQL
  • CoffeeScript vs JavaScript
  • GraphQL vs REST
  • Deno vs Node,
  • etc.

This makes learning the foundational tech a more stable investment of your time and effort.

When planning your learning, try to identify the foundational technologies in your field and focus on mastering these basics first. Then you can explore newer variations with a solid understanding.

Old tech might just be the next big thing

Imagine this: the longer a piece of technology has been around and still useful, the more likely it is to stick around even longer.

This is the Lindy Effect.

New apps and gadgets pop up every day, but how many actually stand the test of time? Now consider tools like the command line interface or programming languages like C and PHP. They've been kicking around for decades and are still going strong.

The Lindy Effect suggests that these old-timers aren't just surviving by chance.

Their longevity actually hints at their future staying power. It's as if every year they stick around, they're proving their worth and buying themselves more time in the spotlight.

So don't be too quick to dismiss "outdated" tech. It might outlast the shiny new thing everyone's buzzing about. When learning new skills, consider investing time in technologies with a proven track record. In your projects, try balancing cutting-edge solutions with tried-and-true methods.

In the fast-paced world of tech, sometimes the tortoise really does beat the hare.

Most coding isn't about the new shiny stuff

Let's face it: when you dream about your tech career, you probably imagine creating cutting-edge apps or working with the latest, hottest technologies.

But here's a surprise for you – that's not what most software engineers do day-to-day. In fact, about 90% of the work in the real world of software development is all about maintenance.

What does this mean for you?

You're more likely to hear "Hey, can you figure out this legacy system?" than "Let's build something with the newest framework". Old tech isn't just hanging around – it's often the backbone of many companies.

While job ads might scream for experience in the latest tech, the actual work often involves dealing with systems built years or even decades ago. That "obsolete" programming language might just be your ticket to steady employment.

Trying to predict which tech skills will be hot in the future? It's like trying to forecast the weather a year from now. The tech world changes fast, and today's must-have skill could be tomorrow's old news.

Instead of chasing every new technology, focus on becoming a problem solver. The ability to quickly learn and adapt to different technologies – old and new – is far more valuable than expertise in any single, specific tech stack.

Rather than trying to master every new framework or language that pops up, concentrate on understanding core principles of software development (clean code, testing, DevOps, etc). These fundamentals will serve you well regardless of which specific technologies you end up working with.

Maintenance work might not sound glamorous, but it's a goldmine for learning. You get to dive deep into complex systems, understand how they were built, and figure out how to improve them. This experience is invaluable.

In software development, the old and unsexy often pays the bills, while the new and shiny makes the headlines. Be prepared for both, but don't be surprised if your day-to-day leans more towards the former!

Know what's possible, not everything

You don't need to be a walking encyclopedia of tech knowledge to be a great engineer. What you really need is to know what's out there and what it can do. This approach is a game-changer in how you learn and apply technology.

Most technologies follow the 80/20 rule: a small core of essential concepts surrounded by a sea of details.

Your goal should be to master the core 20% that gives you 80% of the power. This "just enough" learning approach means understanding a technology's purpose, grasping its key concepts, and knowing its limitations. Everything else can wait until you actually need it.

Accept the fact that you'll spend a lot of time searching for answers. That's not a sign of weakness; it's being efficient. ChatGPT, Google and Stack Overflow will become your new best friends. Why memorize when you can look it up in seconds? This mindset shift allows you to focus on problem-solving rather than rote memorization.

Think of yourself as a tech chef. You don't need to memorize every recipe, but you should know what ingredients are available and what dishes are possible. Stay updated on new tools and frameworks, understand what problems they solve, and know when to use them (and when not to). This knowledge prevents you from falling into the trap of reinventing the wheel. Before diving into building something from scratch, always ask yourself if this problem has been solved before or if there's a library or tool that does this.

Develop a habit of skimming tech news and release notes. You don't need deep dives, just enough to know what new tools are emerging, what existing tools are evolving, and what problems they're addressing. This lightweight tech radar keeps you informed without overwhelming you.

Adopt a "T-shaped" knowledge approach: go deep in a few core areas, but maintain a broad, surface-level understanding of many technologies. This makes you versatile and helps you connect dots across different domains. Keep a small collection of go-to resources for your main tech stack. These aren't for memorizing, but for quick lookups when you need depth.

It's perfectly okay not to have all the answers. What's important is knowing how to find them quickly. Embrace the "I don't know, but I can find out" mindset. This approach keeps you humble and continuously learning. Many tech concepts are similar across different tools.

Once you grasp a concept in one technology, you can often apply that understanding elsewhere, giving you a conceptual transfer superpower.

Learn gradually by following the problem-solving trail

Every tech stack, no matter how complex, was built to solve real problems. Take the PokeDex stack, for example.

It might seem overwhelming with its mix of Eevee, Vaporeon, Jolteon, Flareon, and Umbreon. But don't stress out – there's a method to this madness.

Instead of trying to cram all this knowledge at once, think of it as a journey of discovery:

  1. Start small: Begin with the basics, like Eevee.
  2. Follow the pain points: As you work with Eevee, you'll start to see its limitations. This is where Vaporeon comes in.
  3. Connect the dots: When you find yourself wishing Vaporeon could do more, you'll understand why Jolteon was added to the mix.
  4. Repeat the process: Keep exploring each technology as needed, and you'll naturally progress through Flareon and Umbreon.

This approach has several benefits:

  • It's less overwhelming
  • You learn in context, understanding why each piece matters
  • You gain practical experience along the way
  • You build a deeper understanding of how the stack evolved

Even experienced software engineers don't know everything about a stack from day one. They learned by doing, and so can you.

Be the ever-evolving software engineer

It's tempting to feel a sense of superiority when you've mastered the latest programming language or framework.

However, it's crucial to maintain a humble perspective and embrace a forever-student mindset. The tech landscape is in constant flux, and what's cutting-edge today may well be considered legacy code tomorrow.

Take a moment to reflect on your coding practices from a year or two ago. You've likely made significant improvements since then. Now, imagine how your current code might look to your future self 5 years down the line. It probably won't seem as impressive as it does now.

Instead of judging others for using older technologies, try to understand the reasons behind their choices. There might be valid considerations you haven't thought of.

Everyone in the tech community, from junior software engineers to seasoned professionals, has valuable insights to offer. Even those working with seemingly outdated tech might surprise you with their problem-solving approaches.

Verdict

Make it a habit to explore new technologies regularly, even if you can't immediately apply them in your current role.

This practice keeps your skills sharp and your mind open to new possibilities. By maintaining a humble attitude and a learner's mindset, you'll find it easier to adapt to the ever-changing tech landscape, build stronger relationships with your peers, and continually improve your skills.

By accepting the fact that tech evolves much faster than you can catch up and approaching your work with humility and curiosity, you set yourself up for long-term success.

In tech, the journey of learning never really ends – and that's what makes it so exciting.