What do programmers do? When computers become smart in the future, will programmers be unnecessary?

Computers are useless.They can only give you answers.–Picasso

The computer is useless. They can only tell you the answer. ——Picasso

 

 

Many people think that computers have become so smart that programmers will no longer be needed in the near future. Others think that programmers are geniuses who can constantly solve complex mathematical problems in front of the computer. Even many programmers do not have a clear idea of ​​what they do.

C/C++ learning skirt [7, 12, 2, 84, 705], whether you are a novice or an advanced person, whether you want to change careers or want to enter a career, you can come to understand and learn together! There are development tools in the skirt, a lot of dry goods and technical information to share!

In this article, I want to explain to someone who doesn’t know what programmers do:

A programmer is a translator who translates human ideas into computer language.

They are the link between the two worlds. Do you think it is easy to maintain this bond?

The background of the human world

The problem with people is that they’re only human.–Bill Watterson

The problem with humans is that they are just human beings. --Bill Watson

Human beings are the product of biological evolution and have a unique and precious organ-the brain, which can provide programmers with ideas. The brain has a complex new cerebral cortex (which is unique to humans) and old structures inherited from mammals and reptiles. The old brain structure is mainly responsible for reproduction (sex) and survival (looking for food or avoiding danger). The neocortex evolved to better support these functions, but it began to produce strange side effects—consciousness, thinking, and curiosity. Thanks to the effects of these side effects, mankind produced civilization and invented the computer thousands of years later.

Some people believe that after thousands of years of development, humans should become completely dull, rational, and predictable creatures, but this did not happen. The old human brain structure, complex psychological and social behaviors often make people irrational, unpredictable and deceptive. Also, humans have poor memory, strong emotions and personal interests. However, programmers cannot choose to work with more rational species. They have to work with humans and translate human ideas into computer language.

 

Computer world background

Part of the inhumanity of the computer is that,once it is competently programmed and working smoothly,it is completely honest.–Isaac Asimov

Part of the inhumanity of a computer is that once it is compiled and runs smoothly, it will faithfully complete its work. ——Isaac Asimov

The computer is the best invention of human civilization. It consists of CPU, motherboard, memory, hard drive, display and other parts. Computers have pushed our civilization to a new level, made our lives more meaningful and fun, and made up for the defects of our brains. It is possible that computers are smarter than humans. (However, I am a bit concerned if this becomes a reality, do computers still need human programmers?)

Modern computers are completely logical, direct and compliant. If you know what it should do and know how to order it, then working with a computer is happy. The only problem is that the computer will only do what you tell it to do. Therefore, you should have a clear mind and make sure that the computer does not go wrong when you meet your boss or client.

 

 

Translation between humans and computers

Three main challenges are encountered in translation:

1. Language ambiguity. Human language is vague, complicated, and puns, for example: "This program cannot provide a good user experience." Culture, background, and context all affect communication and meaning. In contrast, all computer languages ​​are accurate, straightforward, and independent of context.

2. Level of detail. Human communication is general without too much detail, for example: "I want this damn program to run". This can save time and energy, but due to the lack of detailed information, two larger problems will arise-misunderstanding and uncertainty. The computer needs all the details-everything must be made clear.

3. Mode of thinking. Humans are accustomed to thinking about the relationship between needs, results and solutions, such as: "This report should run in 2 seconds, not 2 hours." However, computers need algorithms-follow the steps to achieve the desired results.

In order to write excellent software, programmers must overcome these difficulties, understand people's ideas and convert them into computer language.

C/C++ learning skirt [7, 12, 2, 84, 705], whether you are a novice or an advanced person, whether you want to change careers or want to enter a career, you can come to understand and learn together! There are development tools in the skirt, a lot of dry goods and technical information to share!

 

The abilities of a good programmer

We can see that a good programmer should have two sets of skills to deal with two different worlds.

 

Understand human needs and propose solutions:

1. Communication-the ability to establish contact with others, be able to talk intimately with others, and have the courage to try to share their own opinions.

2. Intent-extract useful information from the conversation, understand and make it meaningful.

3. Logic-to sort out and eliminate the vague and controversial content of human thinking for computers that do not understand concessions.

4. Creativity-excavate and transform human thoughts to create excellent solutions.

5. Ideas-use human-friendly interfaces and convenient interaction to package programming ideas.

6. Overall view-know how the solution adapts to users, companies and others all over the world to make your program more useful.

 

Tell the computer what to do and build a solution:

1. Logic (again)-organize the programmer's ideas into cohesive software ideas and computer instructions

2. Technology-Discover and understand the technology black box (for 99% of people, it is a black box).

3. Programming language-learning beautiful, logical and clear language, so as to provide the programmer's ideas to the computer.

4. Algorithms-proficient in the most efficient way for computers to complete tasks.

5. Modeling-building abstractions and models in the software code to master and manipulate ideas.

6. Practice (such as code refactoring, unit testing, continuous integration)-periodic activities to keep the system reliable, healthy and changeable. (For code refactoring, please refer to point 3 in the article "10 Traits of Star Software Engineers" in the Bole online blog.)

 

Human-oriented and hardware-oriented/system-oriented programmers are very different.

A programmer who does not communicate with others is not a good programmer. An excellent solution requires dual skills in the computer world and the human world. Only by connecting the two worlds can you become a truly excellent programmer.

Guess you like

Origin blog.csdn.net/miaozenn/article/details/112532365