What about the AI era? Programmers don’t need to worry

What about the AI ​​era? Programmers don’t need to worry

After the birth of ChatGPT, the saying "AI replaces programmers" was once popular, and it has not cooled down yet. As a "loyal" user of ChatGPT, I have free time today, and I will write an article to share my views. .

I. Introduction

On November 30, 2022, OpenAI released a chatbot program called ChatGPT (Chat Generative Pre-trained Transformer), which immediately detonated the network and brought a huge impact to the world. Following this, various large language models have sprung up. Foreign models include Google's Bard, Anthropic's Claude, and domestic models include Baidu Wenxin Yiyan, Alibaba Tongyi Qianwen, iFlytek Spark Cognitive Model, Kunlun Wanwei Tiangong Model, etc.

Compared with previous models, large language models represented by ChatGPT have made a qualitative leap in code generation and code interpretation capabilities. Many programmers have begun to use large language models to write code, so many people think that "programmers will Replaced by AI ”.

As one of the first "early adopters" to use ChatGPT to write code, I think it is too hasty to say that AI will replace programmers. At present, promoting AI to replace programmers is more of "selling anxiety", or "laymen" carnival.
Insert image description here

2. Will programmers be replaced by AI?

"AI replaces programmers" is not a new topic. In fact, as early as the emergence of the concept of "low code", people have already begun to discuss the topic of whether programmers will be eliminated; after the emergence of ChatGPT, this topic It was dug out of the ground overnight, redecorated, put online urgently, and became a hot search again.

Judging from the author's experience in using ChatGPT to assist programming, AI's current level of code generation still has a long way to go before it can fully replace programmers. Of course, in some scenarios, AI can indeed improve development efficiency and even replace some low-level programmers (such as programmers who only know CRUD). In fact, in the AI ​​era, there are many positions that are easier to replace than programmers. I will not start a fight here.

Insert image description here

Large software systems themselves often have high complexity. We can simply divide complexity into two dimensions: business and technology. Systems with high business complexity need to consider effective demand analysis and domain modeling to obtain a sustainable evolving application architecture; distributed systems with high technical complexity need to consider factors such as high concurrency, high availability, high performance, Only with quality attributes such as data consistency can we seek the optimal solution for technical architecture in design trade-offs. Obviously, the current level of AI is still difficult to cope with the above two complexities.

In addition, there are some factors that will also restrict the in-depth application of AI in the software field.

First, large models have limited ability to generate code. At present, although large models have the ability to generate code, interpret code and even optimize code, they are still stuck in the "function/method" dimension and cannot yet generate class-dimensional, module-dimensional, and project-dimensional code very well. At the same time, the generated code still has various problems, such as being unable to run, using outdated class libraries, and having potential BUGs. The generated code still requires manual optimization, deployment verification, etc. Complex tasks also require people to split them into granularities that a large language model can easily handle.

Secondly, there are limitations to data security. Many companies, especially the leading manufacturers, usually regard data security as a red line. They do not allow the company's business secrets to be leaked to external large models, and users are not allowed to expose the company's code to the external environment. Therefore, large models are not allowed to be exposed to the external environment. The application is limited. Usually it is only used to generate some simple tool-like code or other code without business attributes.

Thirdly, self-developed model capabilities are limited. Although many major manufacturers have begun to develop large models on their own, there is still a big gap compared with foreign large models in terms of data, GPU resources, and model capabilities. Based on the current level, it is acceptable as an auxiliary R&D efficiency improvement tool, but it is still difficult to achieve sufficient productivity.

In the end, coding is only one part of the entire software life cycle. Software development also includes requirements analysis, abstract modeling, system design, data design, non-public performance design, coding, testing, operation and maintenance, etc. Many times, writing code as the final means to solve a problem is not difficult, but the difficulty lies in understanding, identifying, defining and abstracting the problem. When a problem is clarified and broken down into the dimensions of a software project, faced with defined tasks, clear goals, and a scientific structure, there are many people who can solve the problem.

3. The path to advancement as a programmer

3.1 Keep up with the rhythm and go with the flow

The AI ​​era will definitely bring profound changes to the production and life of human society. Although the current large models still have many shortcomings, such as hallucinations and weak reasoning capabilities, their potential cannot be underestimated. In a sense, it is precisely because of the imperfections of large language models that we are not so easily eliminated. If one day, as long as the product manager designs the requirements document, AI can automatically write code, automatically fix problems, and automatically deploy, maybe programmers will really lose their jobs. Of course, if AI becomes so powerful, it will be easier to produce better requirements documents than product managers, and it won’t just be programmers who will be replaced.

At present, some qualified people have begun to use large models to learn technology, write code, find ideas, and assist in solving problems. Some business teams have also begun to use large models to solve business problems. AI technology has greatly shortened the path to mastering knowledge. Some knowledge points that originally required reading many books and reading many columns can be understood quickly and easily by letting AI tools give you examples and explain them in easy-to-understand language. Master it systematically. Some seemingly uncomplicated code may take you half an hour to write by yourself, but AI may produce it in just one or two minutes, and the quality is often higher. For many problems that have been hard to find a solution to before, AI can quickly provide many candidate solutions to help make more complete solutions.

With the support of AI, junior engineers who do not have rich programming experience can also "write" relatively excellent code. With the help of AI, people from some non-English-speaking countries can also write authentic English articles. In this era, AI brings unlimited possibilities to many industries.

In my opinion, saying "AI replaces programmers" is still too narrow. In a sense, "It is not that AI replaces programmers, but that people who use AI eliminate those who cannot use AI, and those who make good use of AI replace those who cannot." People using AI.”

Insert image description here

3.2 Be wary of the “comfort” trap

Everything has its pros and cons. While AI brings benefits, it also hides "gentleness traps." In the information age, electronic devices such as mobile phones, computers, and tablets have become almost indispensable. In life, we rarely need paper and pens, so we often forget to write when we pick up the pen. This is the so-called "use it or lose it" .

In addition, the application of AI has inadvertently created an “information cocoon”. Large Internet companies recommend content that users are interested in based on their preferences, causing more and more people to become addicted to the "fast food information flood" such as Douyin, Kuaishou, and Toutiao, and are unable to extricate themselves.

Extrapolating to our lives and work, if we rely too much on AI without thinking, it may lead to a decline in our thinking ability and become the puppet of AI. Don’t forget – the biggest advantage of humans over AI is the ability to think creatively and define problems. Therefore, when encountering a problem, it is recommended to think first, then try AI, and continuously improve the solution based on AI's suggestions to form a virtuous cycle.

As an aside, in my opinion, AI should not be used to produce content related to spiritual civilization such as literature, art, music, etc. When mass-produced, it is often boring and low-level. Instead, we should invest in areas that are more conducive to increasing productivity, improving living standards, and promoting social progress.

3.3 Improve identification capabilities

As the saying goes: "When in doubt, ask Baidu." With the popularization of AI, it will evolve into: "When in doubt, ask AI". I believe that search engines represented by Baidu and Google will inevitably embed AI to provide more flexible, efficient and intelligent question-answering capabilities based on search + recommendation.

However, the current large language model still has "toxicity" and "illusion" problems. For example, the answers generated by large models may be mixed with false information, and there may be loopholes in the generated code. If we lack professional knowledge and the ability to discern, it can easily cause negative impacts.

Many people will say: "The AI ​​era is coming, and there is no need to study computer theory in depth." I think it is the opposite. Only by learning computer-related theories and technologies well can we improve our ability to identify information generated by AI and enjoy the benefits that AI brings. While improving efficiency, control and reduce its negative impact.

3.4 Continuous learning

In the AI ​​era, it is inevitable that simple and repetitive tasks will be replaced by AI. In the new era, we need to re-examine the connotation of core competitiveness, continue learning, even lifelong learning, and constantly build a moat of our own capabilities.

In the Internet field, technology and business complement each other. Technology serves business, and business promotes technological change. The two go hand in hand. Therefore, technical knowledge and business knowledge are generally referred to as domain knowledge.

Taking server-side development as an example, domain knowledge is the most basic but most important ability. However, only when domain knowledge forms a system can it become a real core competitiveness. When you encounter a problem, if you don't even have relevant knowledge reserves, it will be difficult to solve the problem; but if you have the corresponding knowledge reserves, you can transfer the knowledge to the problem scenario and use reasoning to find a way to solve the problem. In order to better combine domain knowledge and logical reasoning, learning knowledge must be systematic, focusing on certain technical directions, and at the same time consciously expanding to the surrounding areas. For server-side development engineers, in addition to mastering the server-side development technology stack and related business knowledge, they should also understand some client-side principles and how the server and client are connected.

So, how can we systematize our domain knowledge? Many times, the domain knowledge points themselves can be connected to each other, but only if you understand these points thoroughly. When studying at work, the most common dilemma is that the study time is too fragmented. Every time I encounter a knowledge point, I spend half an hour studying it. I may feel that I have mastered it at the time, but after three months, I basically have no impression and I always study. When you get to the back, you forget about the front, and you don’t get the point. A very important reason why this situation occurs is that the overall picture of the macro level of domain knowledge has not been formed, the depth of key knowledge points is not enough, and the understanding is not thorough. These key points are the skeleton and fulcrum of this field. Without the skeleton, it is naturally difficult to systematize, and without the macro picture, it is easy to go astray.

I don’t know if readers have ever had this experience: learning knowledge very quickly in a certain field, but always missing the point when changing fields. Imagine, why do you know so much about the neighborhood where your home is located? Just put you in a corner and you can slowly figure it out. Essentially, you have formed an overall picture of the neighborhood in your mind and know the key nodes clearly. If you are placed in an unfamiliar community, you may be confused. There are no key nodes or the overall picture. It is meaningless to explore randomly, even if you understand the situation of every small restaurant you see on the way. , you will forget it after a few streets.

In view of the issues raised above, when learning domain knowledge, especially when entering a new field, you must first clarify the overall picture and key knowledge points, and then follow the big picture and key points to further strengthen them through practice.

4. Summary

Don’t underestimate AI, and don’t be overly anxious. AI is not scary, and it’s not perfect. Because AI is not scary, we can work hard to learn to control AI; because AI is not perfect, we will not be eliminated so easily.

Guess you like

Origin blog.csdn.net/Jin_Kwok/article/details/132324427