Keeping Up with Technology

November 29, 2015

5 min read

How can you describe technology? Is it fair to say that technology is a lot like evolution on steroids? Every day various sites tell us of the hottest new technology that everyone should be interested in, and how developers should get on it now to be ahead of the game.

OK, a little over dramatic, but it really is a never ending onslaught. Every new technology can pose a potential threat to developers. If the technology is radically different or replaces an existing technology, it's possible for some developers to become obsolete. That's why it's important for any developer to know, or at least be familiar with, other technologies, like Java, Objective-C, Swift, C++, JavaScript, C#, Android, iOS, web, Node.js, and PhoneGap.

Why Breadth Is Worth It

Broadening technological knowledge is absolutely crucial for any developer. Aside from remaining marketable, there are many other advantages to being familiar with multiple technologies.

When you deal with multiple technologies, you tend to develop a broader understanding of how things work, what the common practices are, and how particular technologies deal with common pitfalls and shortcomings. Understanding the "how" helps you to better understand each moving part and its purpose in a project, as well as better contextualize your own role.

Similarly, fluency in a number of languages and technology stacks makes you inherently more useful to your company, and more marketable overall. If you are working on an iOS development project but also know Java, for example, you can help on both the iOS and Android projects. Versatility is a sought after skill, and strengthens your utility to employers.

Knowing multiple technologies is also a good way to keep your day-to-day work life from going stale and becoming a boring chore. When dealing with different technologies, you have to face different challenges and use different design patterns to get the needed results. This allows your brain to switch gears, and switch up the pace once in a while.

You Get Better by Getting It Wrong

That being said, time, more than raw intelligence, tends to be the greatest limiting factor when it comes to learning new tech. Then there is another problem that is a human one; we all have varying interests. Just because a technology is hot and in demand does not mean you will feel inclined to become proficient at it. And if you are a new graduate, chances are you will be trying to put your best foot forward so you can get a job, any job.

Remember your first project that you had to work on. Remember the struggle that you had trying to understand and build out the functionality that was assigned to you. You probably didn't know or didn't follow all the best practices. You most likely had to rewrite some parts of the code a few times. That experience is normal and it teaches you how to be a better developer. Chances are with all the experience you currently hold, that if you had to go back and work on your first project again you would do things a lot differently, because you have a better understanding of "how" things work.

The same applies to having experience with multiple technologies. If you only know one technology and you have to work with a different one, then you will probably make some mistakes. You will try to apply the same design patterns and ways of thinking that you used before, which can work but it might not be the best practice. You might end up duplicating the native functionality or writing code that impacts performance because you are not familiar with the technology. But once you get some experience with the new technology, then you start to see the bigger picture. You get familiar with new design patterns and workflow. You start understanding the pitfalls and shortcomings of different technologies and how they get around them. All of this helps you to improve yourself as a developer, and it helps you come up with different and sometimes better solutions than before.

What It's Actually Worth

If you are in the market for a new job, then being fluent in multiple languages and understanding different technology stacks will give you a great advantage over other applicants. The same can be said if you want to feel more secure in your current job; being diverse makes you a lot more valuable to the company. If the company deals with multiple technologies and you have experience with those technologies, then the company has a lot more flexibility of the workforce, reducing the need to hire more developers. The company also gets more leverage, because if one project is falling behind schedule then they can move around or add developers to help out. And your experience with multiple technologies probably means that you are more knowledgeable and you most likely follow more of the best practices; all of this adds up to better written code with fewer issues. Fewer issues means that the company saves money on code maintenance.

Do you love your job? Do you like coming into work every day? Or do you feel like you are obligated to do it, to have the money to support your lifestyle? Knowing multiple technologies and being able to work with them can spice up your work life. Working on different projects with different technologies is a good way to keep yourself and your mind busy. It forces you to sometimes come up with different solutions to similar problems. If your mind is constantly engaged then you lower the chances of getting bored at work.

When It's Harder

Of course, not everyone has the time to invest into learning new technologies. You might have other responsibilities like family and kids that take over your free time. You might not have any down time at work to learn either. All of this makes it harder if not impossible to learn new technologies, so you might choose to stick to one and become an expert in that field. Being an expert does have an advantage of getting higher pay, but it reduces the amount of positions you can apply for. This can also mean that if the technology disappears then you will have a harder time getting rehired.

The latest and greatest technology might not always be interesting to you. If you love doing UI work then the latest server technology means nothing to you, and you have no desire to learn more about it. That is understandable, but don't limit yourself to only being familiar with one technology for UI work; look around and see if there are other technologies that are cool or make things easier to do.

If you are a recent graduate looking for your first job in the field, then knowing multiple technologies is probably not that important to you. You are just trying to get a job, so you will showcase the technology that you know best to increase your chances of getting hired. That is a great approach for getting your first job, but it is not enough to make you more valued in your workplace or open the door to better job opportunities.

The Takeaway

"Technology has advanced more in the last thirty years than in the previous two thousand. The exponential increase in advancement will only continue."

Niels Bohr

How ready are you for technological advancement? Can a new technology make your job obsolete? These days it is essential for developers to expand their knowledge to remain relevant. Learning new technologies broadens your understanding of how things work. It makes you more employable and more valuable. It also helps you fight off boredom at work. And although you might not have the time, or have no interest in learning some technologies, or simply find that your current career goals don't align with more learning, you should still try to at least explore other technologies that sound interesting to you.