Software Developer was recently announced as the #1 job in the US News 2018 rankings. This is a role which requires problem-solving, creativity, and analytical skills, along with knowledge of current technical tools and practices. Given the fast-paced nature of technology, it is always a good idea to stay up-to-date with the latest advances in the field. Here we have gathered a few trends which look set to be on the rise this year, with tips on how to start developing your skills in these high-demand areas.
The end of 2017 saw an eventual improvement in the sales of Virtual Reality (VR) headsets, but the slow adoption of this technology has not lived up to the initial hype. VR is a completely immersive experience, shutting the user off from the real-world, and this is a potential reason for the lack of widespread interest, along with the high cost of purchasing a headset. With Augmented Reality (AR), users generally only require access to a smartphone, so the potential user base is much larger. The concept is also not quite so far removed from reality, and some initial products have seen large success. The smartphone game Pokemon Go was downloaded over 650 million times, and exemplifies the concept of enhancing our real-world environment with digital manipulation and interactivity.
AR seems to be making progress as a more immediately practical offering and is seeing steady increases in adoption across different fields. Snap Tech use the technology in changing room mirrors to improve the retail experience for shoppers, and Ikea’s AR app lets users test different furniture pieces in their homes.
The skills needed in both AR and VR industries are very similar, with experience of programming languages such as C, C++, and C# and knowledge of game engines, 3D modelling, and 360 degree imagery being a great start. (Link to C++ course?)
Another expanding area for technology this year is health care. The wearables market is increasing year on year, and with this comes the opportunity to both develop new devices, such as Lvl, the world’s first hydration monitor, and also the opportunity to utilise the data provided by existing devices, such as using the Fitbit SDK to access the sensor data or geolocation of the wearer to develop new apps for the device.
Intelligent machines and the rise of big data are also helping advance the state-of-the-art in health technology. Your.MD is one example of a chatbot using artificial intelligence as a replacement doctor, which learns how to respond to typical queries and provide relevant information. Machine learning is also used by many medical institutes and pharmaceutical companies to identify and diagnose a range of diseases, for example by using large datasets of pre-labelled images to predict the outcome of new ones.
Given the masses of data used in healthcare applications and development, skills in data science, statistics, and modelling, are all key to developing useful software in this field.
Back in 2016, the Internet retailer Amazon was a leader in warehouse innovation with their fleet of 30,000 robots operating as an automated workforce, and entering into 2017, the company saw the start of drone deliveries being used to distribute packages more efficiently. Now in 2018, Amazon has just published a patent for autonomous ground vehicles, with the intention of rolling out robot deliveries that can navigate their way around urban environments.
We have already seen similar product launches with Starship Technologies autonomous vehicles used to deliver takeaways for Just Eat, and self-driving cars are also heading closer and closer to mass-market release, with companies like Uber and Lyft already offering autonomously operated taxi rides in some cities across the USA.
Although some of the skills required in this line of work are more hardware based, there are many areas of software engineering that are in high demand for the development of autonomous vehicles- such as computer vision, reinforcement learning, and motion planning.
The meteoric rise of Bitcoin over the past year led to cryptocurrency becoming a hot topic of conversation, but it is the technological underpinnings of this currency which should be of most interest to software developers. The concept of a blockchain – a digital, decentralised, public transaction ledger – could revolutionise many different industries. The IBM Blockchain Platform is one example of using blockchains in business, and more varied fields are being explored such as KodakCoin, which uses a blockchain to give photographers immutable copyright protection and rights for their digital assets.
Given the wide range of potential blockchain applications, different software skill sets will be required for different types of technology. However specifically with cryptocurrencies, users are more keen to be able to access their funds on the go. Mobile wallets are therefore in rising demand, with high importance placed on maintaining the necessary levels of security.
As our collective increase in the use of tech products generates more and more data, the need for storing large data volumes, processing large data volumes, and distributing large data volumes, has become apparent. The Internet of Things is anticipated to grow as an industry this year, with an expected 14% rise in connected devices, and the interconnection of more devices leads only to more data. Similarly, the rise of artificial intelligence, which is often dependent on masses of data to produce accurate predictions, will also contribute to this forecast.
Some of the biggest companies in tech are operating as cloud service providers, offering Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS), and Software-as-a-Service (SaaS). Software companies are increasingly making use of these, taking advantage of the reliable and scalable access to compute power. For companies that may face varying surges in demand, having this elasticity in terms of capacity is very important, and so cloud computing is often used for streaming sites like Netflix. Many of the apps you use in your day-to-day life are also cloud-based, such as Apple’s Siri, which encodes your voice command and sends it to a server in the cloud for processing and further action.
As a Software Engineer, being able to write code that can scale exponentially will become even more necessary than it is already, and the role of architecting cloud infrastructure and knowing how to deploy solutions at scale will become key skills as more companies adopt serverless technologies. The programming languages used for cloud development are often platform-specific, but many of the most popular languages are supported, such as Java and Python.