Technology is evolving rapidly. Overall, this is an exciting thing. But it can be exhausting to try to stay relevant as a developer.  It’s hard to keep up with so many changes. This is especially the case with Javascript becoming more and more prevalent. There are newer and newer technologies coming out all the time that are all competing against each other.

Should you learn Angular 1? Did you know Angular 2 is out? They actually recently released Angular 4 recently too.

What about Ember? They had a big rewrite. And Ember 2? Isn’t that better than ever?  

What about React?  What should you learn? How do you stay up to date?

And what about WebPack?

Everything in the programming ecosystem is changing so fast.

Even senior developers experience something called JavaScript fatigue. And if senior developers face it, how can someone looking to break into the industry ever imagine to stay up to speed?

Take a deep breath…

You’ve got this.

In 1975, Frederick Brooks wrote a book called the Mythical Man Month. In the book, Brooks discusses situations where programmers work together. Believe it or not, pretty much everything he talked about still rings true today.

This is despite the fact that Brooks was working with the ALGOL programming language and OS/360 while writing it. These are two technologies that are distant relics of a prior generation of programming.

The good news is… in programming, some stuff simply doesn’t change that much.

Most new programming languages and frameworks adopt core programming ideas and use them in different ways.

To put it another way, a lot of programming ideas are like episodes of the hit 1980’s show The A-Team. In my opinion, this is arguably one of the best shows ever created.

via GIPHY

If you’re tuning into a new episode of The A-Team, you can be pretty sure that a few things are going to happen:

  • Mr. T is going to refuse to go on a plane.
  • A member of the crew will give him some milk, which has sedatives that will cause Mr. T to pass out.
  • HM Murdock will fly the crew out.
  • The bad guys will get what’s coming to them.

The specific details of each episode might change a little bit, but you really only need to watch one or two episodes of the show to get a feel for what to expect.

The same is true for programming. Different programming languages might have slightly different syntaxes and nuances, but overall they are pretty similar.

Big picture concepts work in different languages.

For example, to understand Ruby, you need to understand how to break problems down using object-oriented principles. If you look at other programming languages like Java, C++, C#, and Swift…they all are object-oriented too! Python? You guessed right! It’s also an object-oriented programming language.

The same can be said about inheritance.

The underlying skills of programming aren’t necessarily flashy. And they don’t change around a lot. This is good news!

This means programming skills like…

  • Learning how to break large complex problems into smaller, more manageable problems, using individual function calls.
  • Breaking apart classes into multiple classes with a single responsibility.
  • Researching programming problems to find out if other people have found the solutions for them.

And even more specific things like…

  • How Ruby on Rails uses a Model/View/Controller patterns to separate the responsibilities of a web application.

…can apply to other languages and frameworks too! ExpressJS, for example, is another popular web framework. You can break apart those applications using the exact same patterns that you follow in Ruby on Rails (if you want).

Focus your efforts on the below things:

If you do all of that, you’ll be able to build real projects in any programming language.

Don’t fall into the trap of endlessly chasing the next shiny new thing.  

It can be tempting to try to learn it all…only understanding things at a surface level. Don’t.

You can go wide or you can go deep, but you can’t go both.

If you choose to focus your energy on deeply learning a specific tool or framework, you’ll find it easier to draw on your experience to help you learn an additional language or framework.

The flashiest aspects of a particular skill aren’t necessarily the most important.  

If you go on Hacker News, you’ll find a variety of cutting edge technologies.

If you’re looking to break into the field of web development, should you go all-in on a cutting edge technology like Elixir or Rust?

Probably not…

It’s just not practical to go all-in on something that might not have a big community. You’re losing out on a wealth of people with practical experience to learn from just in case something may or may not take off.

Instead, it’s much more practical to pick a proven technology with a wealth of information and learn the fundamentals of programming in that language.

Think about this:

What do you think Jason Mraz, Lady Gaga, Bob Marley and Elton John have in common? Probably more than you might imagine.

If you listen to Axis of Awesome’s Four-Chord Song, you’ll realize that all modern pop songs follow similar formulas…even from pretty radically different bands. In the case of the specific song, if you use a pretty standard four-chord progression, pretty much every pop song ever can fit into it.

The same is true for programming languages and frameworks.

Once you learn one or two languages, picking up another isn’t terribly difficult. Different languages have different features, and when you get experience working in a couple of them, you’ll appreciate the benefits and drawbacks of the different languages.

It’s important to really master fundamentals early in your career.  

If you’re just f to becoming a professional developer, focus on the stuff that won’t change first.

I’ve recently written about how I got hired as a web developer with virtually no experience in web development. I got hired because my fundamentals of programming were really strong, even if I didn’t have a wealth of experience with the specific language or framework.

If you take this mentality and focus on breaking apart complex problems into easier to manage ones, you’ll learn the skills you need to stay relevant as a programmer…even while everything is changing around you.

So if you’re terrified of making the wrong decision, take a deep breath.

The fundamentals of programming will apply to any programming language, framework, or mentality.

Pick a language, learn it, then really master it. In the process, you’ll master the fundamentals of programming and be able to apply them to any other language or framework later down the line.

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at WHERE.com (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

6 replies on “How To Stay Relevant As A Developer While Everything Is Changing Around You

  1. Great post.
    Just one thing to add, perhaps.

    Even if you master the fundamentals of programming and also know deeply one or two languages – let’s say C++ and Java -, there are still many situations where the customers need you to be efficient with specific technology constraints (let’s say, javascript for a node.js & react project) and you definitely can’t be efficient without an experience in those particular languages, whatever how deep you master the fundamentals of programming.

    You’ll probably get the job done in the end, of course, but you’ll have been 10 times slower than another programmer with less deep fundamental programming knowledge and more experience with those particular languages.

    So, I agree that the fundamentals of programming are a necessary basis, but it’s not enough to be competitive nowadays, and young programmers should also pick at least 1 or 2 domains where they can maintain a good level of expertise in this changing ecosystem.

  2. Found this post at just the right time. I recently started a new internship (my first dev. job after switching majors earlier this year!) and have been feeling wildly overwhelmed and out of my depth with so much to learn. Glad to read that it’s not just me who feels lost at where to begin.

  3. With trends and technology constantly changing, there’s more pressure than ever to keep up and stay relevant in the competitive smart home and app markets. That way, developers and product designers can create devices that work together out of the box.

  4. The answer to staying employed as a software developer at 35 or at 50 is the same as the answer to having a good promotion velocity as a software developer at 25.

Leave a Reply

Your email address will not be published. Required fields are marked *