As a software engineer, what’s the best skill set to have for the next 5-10 years?

software_future

If you are looking to be a great general purpose software engineer then the skills for the next 5-10 years are very similar to the skills needed in the last 5-10 years.

    1. Higher level languages such as Java and even the latest, greatest C++ which has some very nice features. Get comfortable with these suckers, they’ve been around for a while, they’re going to stick around. Python is also useful. The jury is out on other very cool but not very broadly adopted languages.
    2. Get comfortable with big data. It’s not for everyone, but there’s big money in it, and it’s incredibly useful for business, digital assistants, and human-computer interfaces. Intelligent agents – software which learns your preferences and finds things on your behalf – will come sometime soon. Big data – processing an Internet worth of data to understand what you like, and are likely to like – will be a part of it. Get comfortable with SQL and distributed analogs to SQL for querying and transforming data.

  1. Cloud computing. Be familiar with cloud computing. Think of it as a way of being able to easily scale up and scale down solutions, depending on the amount of data / customers you have a given month, week, or even hour. Get comfortable with it, or at least with AWS and possibly Azure. And of course the stuff that’ll come out of the team I’m on at Oracle ;)
  2. Touch and other non-qwerty interfaces. You don’t need to learn how touch is tracked, and the mechanics of voice recognition. Instead, try to ensure you’re able to incorporate these techniques (and possibly others such as gestures) into your applications.
  3. Build for the universal screen. Microsoft is trying to unify their operating system ecosystem from the very small to the very large, and I think it’s BRILLIANT. Become familiar with technologies which span device categories.
  4. Mobile rules. On the client side, mobile is where it’s at. There’s more smart phones and tablets out there than PC’s, laptops, and notebooks. I think this will only continue. Time learning how to write apps and interfaces for mobile devices is time well spent.
  5. Web technologies. I’ve given up on the web going away, although it looks like flash is on its way out. HTML5 and web protocols both seem like very sound investments, for those who can benefit from them.