The space is getting hot, and it may be a good time to think of building a career in AR/VR. “You can start building AR/VR applications using a simple JavaScript.

What is the future of software engineering?

Hi! Let me start by saying I can’t know what the future will be. But, as CEO of a software developer network, part of my job is identifying growing trends in the industry. I can then make sure we have the skills in our developer network to keep up with demand. In other words: I think about this kind of thing quite a lot!

So I feel qualified in discussing what skills you should learn to future-proof a career in software engineering.

Before I look at these trends let me quickly cover the main languages that will show up throughout this answer. While there is a natural ebb and flow to languages (some will fade and others will appear). Understanding what is trending is key if you want to think long term.

Older skills, like HTML and CSS, are not going away anytime soon, but they are becoming commoditized. There are many developers out there that can do a good job writing HTML. So while there is little chance of it becoming defunct overnight, the competition has driven down the prices here.

At Scalable Path, we work with thousands of developers, and the hardest roles to fill are often for new and trending technologies because there are often few people with these skills and even fewer that can prove they have commercial experience in them. So it’s this shortage which is what drives up the price for these skills.

We are always hiring developers with knowledge of this language. I believe its market share will certainly increase over the next half-decade. There is just so much momentum here that even if the tide changes, legacy systems mean JavaScript will still be dominant in five years.

JavaScript-based frameworks are also, logically, really popular. Having experience in one of the above could double your hourly rate. Yet many developers are worried about spending time learning a new framework in case it is not widely commercially adopted. While there is a risk here – Ember, for example, seems to have fallen out of favor – your time is far from wasted. Frameworks tend to evolve iteratively and learning a new one is not a drastic commitment.

Python is definitely trending up and has been for years. It’s a popular language for machine learning, AI and IoT. It took over from R as the primary language for scientific research a few years ago and has been going from strength to strength. Due to its flexibility and speed, I expect it to become one of the fastest growing languages in the coming years. One of the areas Python is being used in is the Internet of Things. So let’s have a quick look at that.

Being fluent in Python and JavaScript will set you up for almost all the trends I discuss below. But when there is another language needed I will mention it.

Let’s look at some of the trends that a will be powered by software engineers:

Artificial Intelligence: AI is becoming a catch-all term (in the way ‘algorithm’ has been for the last few years) but overuse (and often inaccurate use) of the term does not mean its impact is not real! I am also bundling machine learning under this heading, as it is simply a way of achieving AI.

Artificial Intelligence will continue drip feeding into everything we do. One area I am fascinated by is how it is likely to get good enough that you will be able to ‘speak’ a loosely defined design idea to a UI tool, and it will generate the mock designed screens from those requests.

What you should learn to develop AI:

  • Python
  • R
  • Lisp
  • Prolog
  • Java

Augmented Reality: Talking about the UX/UI space, this has actually been static for a long time. Since the touchscreen revolution really. The near future should be fascinating for user interface designers as AR is successfully navigating the move from Sci Fi to reality. This is happening partly because the costs are dropping. Which is generally a sign that we are near wide adoption. We are likely to see mobile adopting AR more and more – the two mesh so naturally together. This is why I see AR becoming more popular ahead of VR (see next section) – end users don’t need new tech. That and both Apple and Google have released their own AR developer.

What you should learn to develop AR:

  • ARCore framework with Java
  • ARKit Framework with Swift or Objective C

VR: While we are not seeing many VR projects yet, it is, without doubt, a fascinating area. If it catches on with the wider public, this tech could drive some wildly innovative changes to our daily life. Predicting such change is fraught with difficulty, of course. Like AR, we can’t imagine where it will take us, nor do we know if/how it will mature. What we do know is that it will start with headsets. Now lighter in weight and lower in cost (less than $200), headsets are priced to become mainstream. With the assumption that they don’t suffer the same fate as Google Glass, we may be only a few years away from similar societal changes the iPhone/app store brought.

What you should learn to develop VR:

  • JavaScript
  • Java
  • C++
  • C#

IoT is only just starting to come into common parlance. It aims to create a network of connected devices, from keyrings to home appliances, that collect and analyze data so they behave in a smarter manner. Nest is a common example of an IoT device. The roll-out has been slower than expected because of issues with commercializing IoT data. But as these hurdles are cleared, I expect to see the technology used in many Jetsons-like ways. For example:

  • Doors that recognize you and unock
  • Fridges that order your favorite food before you run out, or encourage you to eat healthier.
  • Gardens that water themselves
  • Devices that won’t let you forget them

The 1st gen devices like Alexa are going to evolve and become ubiquitous. But they will certainly extend beyond the home into:

  • Cars
  • Cities and Public Spaces
  • Healthcare

It’s definitely a growing sector. We don’t see many IoT projects yet. I think this is because a lot of it is sitting within Google and Amazon and there is little startup work out there.

What you should learn to develop AoT:

  • Python
  • JavaScript

Blockchain: Whether or not you buy into the long-term blockchain and crypto space, there is no denying it is a huge and growing sector. You just need to look at the $100 million VC’s just pumped into CoinBase to know there are a lot more developer roles in this area. This is, without doubt, the fastest growing space for us.

What you should learn to develop on the Blockchain:

  • Python
  • C++
  • JavaScript
  • Solidity

Not all changes will be as visible as AR and VR though. Much of the ‘magic’ will happen behind the scenes.

Big Data: It’s not all Python and JavaScript. Another skill shortage lies with Hadoop developers. Again this is due to the rapid increase in demand for it. Which in turn indicates it will play a big part in the next few years. It’s closely linked to the increase in big data analysis trends. Businesses will want to analyze more and analyze faster. So these trends will continue to grow as pretty much everything I am discussing in this answer is trying to collect and analyze data to better sell your goods and services.

Quantum Developers: While fascinating, the development in the quantum computing world are unlikely to result in many roles for ‘quantum algorithm developers’ in the near term. That being said, both Google and IBM believe they will hit the ‘quantum supremacy’ milestone this year. This is where a quantum computer processes an algorithm that a traditional computer could not within a human lifetime. How long it will take to bridge the gap between that achievement and full error correction is still very uncertain.

Hopefully this answer will help you see the trends in software engineering, which is a great guide to tracking evolutionary change in the industry.