Software industry changes are different at different times. You will see some marked changes in the industry when you look back for the past few decades. Now it’s the year 2020. Now the recent change in the industry is Machine Learning has picked up and many things are getting automated. Many of the companies are looking for AI and ML capable people. For ML, the popular language is Python.
When you look back 3-5 years, you see a trend is cloud services. Microservices offered. Earlier it takes a lot of effort to build a web application of scale. But that was made very easy with the support of cloud services. Where you can write your Application and the rest of the infrastructure is taken care of. The evolution of cloud services is an interesting one to look into. Earlier 2 decades back, there used to be server farm setups in different companies to run their services. At that time, Virtualization was popular. VMWare like companies has enabled people to run multiple different services on a single large machine, separating them into different Virtual machines.
Slowly the industry has started and made it common to provide Infrastructure as service (IaaS). So people used to rent a few Virtual machines in the cloud and create their own setup with some machines running web-services code and some machines running the Databases. So it’s mostly the same or almost similar setup that they used to do in-house. With this, having large farms of servers by a big company was no more a differentiating factor. Now any single person company can also hire the machines on demand. There was on-demands scaling up and scaling down. In total, it used to have solved the problem, unnecessary investment in servers. Even today, you can get a small machine on the cloud for a small amount, like with $5, you can get a ubuntu virtual machine on Digital Ocean.
Later came the Platform as a service (PaaS). Which enabled them to have managed versions of different OS machines. After that, they started providing Application as a Service(SaaS). Where you can just write to you, your Application and rest of the things are taken care of. After this came the docker revolution. It’s like multiple Virtual machines on a single Ubuntu machine. It basically provides a virtual environment for an application to run. With this, people can now just zip their Application, which can be run on a docker. Proving many dockers to scale the Application was cost-effective. It’s similar to instead of running multiple processes, you could run multiple threads, to achieve the same result, with less cost. Similarly, instead of running in multiple virtual machines, you could run multiple dockers, to achieve the same effect, with less cost.
Later came these cloud services, called microservices, which really made every module of any typical WebApps into microservices. This enabled an entirely different scenario for App developers. Even though you can write your own Application. Identity management used to be the hard part. Now with this mode, you just use microservices to enable identity management in your Application. Now you even get an SMS enabled OTPs also as part of the identity service. Now even these services provide a drop-in SDK for mobile Apps. Where you can just add a few lines to even get the login and authentication-related UIs automatically in your mobile Apps. A database is also a service. All the scaling part is taken care of by the cloud provider. Developers need not a thing and handle the scaling scenarios.
Now event the Application is broken into a collection of functions. The moment you get a trigger, you run a function. As part of the function, you do the necessary work and go. The scaling part, when millions of people use your services, million of the same function execution, is taken care of by the cloud provider. This really enabled many of the things to be like writing a function and pushing to lambda. These are all part of the Continuous Integration, where you push the changes to your repository.
The build is triggered, the testing is done and deployed on the server. Everything happens automatically based on your configuration of the CI behavior. This has been another trend in the last 5 years.
When you go back a decade ago, the mobile revolution has just started with iOS and Android. Uber, Swiggy, Google Pay, WhatsApp and many similar solutions have been created because of this mobile revolution.
When you closely look into the evolution of Java Script. You will find many of the changes that have taken place in the industry.
You will see how the industry is embracing this change to distributed Application when you follow the blockchain and Bitcoin evolution.
Usually, these technologies become popular and become a trend that takes longer than 20 years, in reality. Just think of IoT, ML and many other things are popular now when they have been around for more than 20 years. When you understand what are the influence for these to become popular. You will have insight into future upcoming trends. For example, with mobiles becoming popular and lots of data is being created using these mobiles have enabled the Machine learning models to become relevant. Even the use of GPUs in ML algorithms has enabled it to be popular now. The cloud services are now even offered machines which are specific about running programs to train ML models.
For ML to become trending now these, all played a role. The mobile revolution, internet availability, ML algorithms running on GPUs, and Cloud services providing machine-to-run ML algorithms as a service. I have really enabled these.
Now the ML models specific to different areas are also provided as services. For example, Google provides Vision APIs. So at the end of the day, all the services are accessible through APIs. Check out what all different APIs are available for use for free, as well as for pay for usage.
These APIs have many decent limits for experimentation for new problem solvers. So when you are in B.Tech itself, you can experiment with these APIs, which out paying a single paise. That to these services provide credits for students to use and experiment with them. There are many avenues where you can get the credits from these providers. You can get as much as $100K of credit to use these services. It would be beneficial for your startup, which needs such power to computes and data that needs storage and processing.
So think of these questions.
What are you learning in your engineering college?
When most of them will not be relevant in the coming years, what do you really have to learn now? The ability to pick up what is needed in the job.
How can archive these capabilities needed with the routine that is followed in the college? Maybe you need to figure out your own ways to acquire these capabilities. First, identify them.
Being on the cutting edge technologies and happening things would be interesting to see the changes happening in front of you. Go look at the Swift language evolution. Go look at Distributed apps evolution. You will find how these technologies are enabled with all the previous developments.