If you are a budding web and software developer, you must be aware of the several boot camps and programs to get people into the industry quickly. These programs are not bad in themselves, but they do lack some of the core computer science fundamentals needed to tackle the higher-order problems around “big data, ” Internet-of-things, and machine learning, etc.
And no, no one is insinuating you become a mathematical genius or a systems expert. Of course, mathematical knowledge is valuable, but in reality, only a few will solve the hard problems in these areas, and adapt them with a good compromise between power and usability.
Now, here’s what you should be focusing on as a software developer:
Higher level language
This includes Java, Python and even the latest C++, which all have some very nice features. Get comfortable with them as they’ve been around for a while and will be for a long time. Look out for other very cool but not very broadly adopted languages.
Get comfortable with big data
This may not be for everyone, but it is incredibly lucrative and useful for businesses, digital assistants, and human-computer interfaces. As more and more data is being collected , the understanding of data is going to become more crucial. Big data helps you process an internet-worth of data to understand what you like. Get comfortable with SQL and distributed analogs for querying and transforming data.
Be familiar with cloud computing. Think of it as a way of being able to scale solution options, depending on the amount of data / customers you have in a given period. Get comfortable with AWS (Lambda, EC2, SQS, SNS, S3, CloudFront, etc.)
Non-qwerty interfaces like touch
You don’t need to learn how touch is tracked, and the mechanics of voice recognition. Rather, be sure you’re able to utilise these techniques and others such as gestures into your applications.
The universal screen
Try becoming familiar with technologies which span device categories. A typical example is how Microsoft has unified their operating system ecosystem to the very large from the small.
On the client side, mobile is where it’s at. There are more smart phones and tablets out there than PC’s, laptops, and notebooks. I think this will only continue. Learn how to write apps and interfaces for mobile devices because native coding may no longer be “Best practice” in the nearest future. It already isn’t for mobile games.
The web may never go away, although it looks that way. HTML5 and web protocols are sound investments that are beneficial and worth considering.
The key is keeping a tab on emerging technologies and see where and how it overlaps with your current skills as a software developer.