1.

Recently, there is an article abroad, the title is very interesting, called “software eats software”.

The authors argue that larger and general-purpose software is becoming so powerful that it will displace smaller and specialized software and eat up the latter.

He cites his own experience as an example of cloud services replacing many small applications.

“I’ve seen firsthand how quickly this can happen. My first job was at a small startup where we had a lot of physical servers. Right now, it’s hard to imagine any Web startup managing servers directly. People are just clicking buttons and links on amazon’s AWS console.”

The evolution of frameworks has also reduced the need to write code from scratch.

“Programmers used to have to build things from scratch, but software libraries are evolving faster than we can use them, and even software can generate new software on its own, which is why you see so many ‘no-code’ or ‘low-code’ solutions popping up. Now there’s less reason to write your own code, you just have to integrate different products together.”

His conclusion is that advances in software automation will probably reduce the need for software engineers, and there will probably be fewer programmers in the future than there are today. More on machine learning

2,

I’m interested in this topic because it’s predicting big changes in the future, and it’s directly related to employment trends. If the scale and automation of software in the future will suppress the demand for programmers, then young people should not be encouraged to become programmers.

The Hacker News forum had a lively discussion of the post. Most people (who are professional programmers) say that this argument has been made for decades and that it’s a myth, but the opposite is true: there are more and more programmers.

“When I was 10, I started coding in Qbasic. I told my dad I wanted to be a programmer when I grew up. He told me that computers might soon be automated, like his engineering industry, and that I would have to find another job.

But 23 years later, the demand for programmers is rising and seems to be still rising.

I would say that we are still a long way from the level of abstraction where software automatically solves most of our needs. As mentioned in this article, new tools like K8s, Docker, Kafka, Databricks, and RedShift have replaced many programmers. However, they actually create a need for more programmers.

Problems that had to be solved by programmers simply moved to new places.”

As the quotation above states, the reality is that the number of problems to be solved by programming is not decreasing, but increasing, leading to an increase in programmers. Neither of the two arguments put forward in the original text holds water.

First, cloud services do take server management out of the business, but you still need people who know about Docker, Kubernetes, database sharding and indexing, failover, backup, message queuing, and so on. Even though these things are now more integrated and easier to assemble, it’s still complicated to figure out how they interact and how they’re set up. Second, “no code development” can only solve a few general software problems, and sooner or later there will be a need for customization. At that point, programmers need to change the code so that users can continue to use it.

In short, the world is becoming more and more automated, and the essence of automation is software, so the need for programmers can only grow, not grow. More on machine learning

3,

However, a few people on the forum agreed with the author’s view that the increasing number of programmers is a past phenomenon and not necessarily a future one. This could be a point of “mutation” in software development, and the future could be different from the past.

It’s true that the market needs more people who know about new tools like Docker and Kubernetes. However, it is mainly large companies that need such people, small companies do not need Kubernetes. Small companies face a limited amount of complexity, as long as they use simple solutions provided by large companies, there is little that they need to develop themselves.

Also, if the company’s business focus is not on technology (and you should know that most companies are not Internet companies), using a “no code solution” is most effective. Because you don’t have to spend a lot of money on software engineering, you can use it quickly.

Historically, whenever a domain has a large number of programmatic problems to solve, a generic solution has emerged that solves 90% of the scenarios. Then, the need for programmers in this area quickly dwindles.

“Thirty years ago, developing a GRAPHICAL interface, a GUI, was difficult. Visual Basic changed that.

Twenty years ago, making a Web application was difficult. PHP has changed that.

Ten years ago, writing a complex web layout was difficult. Bootstrap has changed that.

Right now, machine learning is hard, and PyTorch is changing that.

Every tough problem eventually produces an effective solution that solves 90% of the scenarios. For most companies, this solution is sufficient. The remaining 10 percent of scenarios, some of which companies pay programmers to solve, will never be solved.”

So, if new fields keep popping up, more programmers will be needed. However, the demand for programmers in these areas is not permanent, and once a solution is created, the demand drops rapidly. More on machine learning

4,

How the market demand for programmers will change in the future is not a simple answer to increase or decrease, but depends on two factors.

(1) Whether the rate of increase in human demand can exceed the rate of evolution of software automation.

Existing scenarios will eventually have a common solution, and the need to hire programmers will indeed become less frequent. Jobs for programmers depend on emerging scenarios. Moreover, the addition of new scenarios must outpace the evolution of software automation, or the old solution may upgrade itself into a solution for the new scenario.

(2) Software development must be more difficult than machine learning can evolve.

The number of programmers is also related to the difficulty of software development. The lower the difficulty, the more people will do it. Before, you had to understand the underlying hardware and assembly language of a computer to develop software, so there were few programmers. Now that software development is so easy that you don’t need to know the underlying layers, you just need to know the framework, more and more ordinary people are becoming programmers.

Programming will certainly get easier in the future, but it will also mean that machines can easily do the work instead of humans. So software development must be more difficult than machine learning, or the increased demand will only lead to more machines programming themselves, not more programmers being hired. More on machine learning

Does more articles and materials | click behind the text to the left left left 100 gpython self-study data package Ali cloud K8s practical manual guide] [ali cloud CDN row pit CDN ECS Hadoop large data of actual combat operations guide the conversation practice manual manual Knative cloud native application development guide OSS Operation and maintenance field manual Cloud native architecture white paper Zabbix enterprise-level distributed monitoring system source document Linux&Python self-study information package 10G interview questions