January 4, 2021

What is the future of computer programming?

As others on this thread have pointed out, you can’t consistently & accurately predict the future. However, I spend a lot of time identifying and analyzing growing trends in order to keep up with demand in the industry (it’s my job to make sure my company has the necessary skills in our developer network). From what I gather, the future of computer programming might look like this:

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

Note : you can also use programming languages like python to create desktop GUI application and for that you have to learn a special in built tool called tkinter with widgets like button, label, entry, geometry managers.

Augmented Reality: Talking about the UX/UI space, this has actually been static for a long time. Since the touchscreen revolution really. But 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 wider adoption. We are likely to see mobile adopting AR more and more since the two mesh 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 unlock.
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 at Scalable Path but 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.

To reiterate, these are ideas based off of what trends seem to be taking off. Who knows what other technological innovations will bring!