Programmer's nature

Source: Internet
Author: User

Guidance: This article is fromSoftwarecreationPrevious Article 《What do programmers really do?Is compiled online by bole 《ProgramMember nature. This article describes the nature of programmers and the capabilities of a good programmer. An excellent solution requires the dual skills of the computer world and the human world. Only by connecting two worlds can we become a really good programmer.

The content is as follows:

Many (including my mother-in-law) think that computers become so intelligent that programmers will no longer be needed in the near future. Others think that programmers are geniuses who can solve complex mathematical problems constantly before the computer. Even many programmers have no clear idea about what they do.

 

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

The computer has no function. They can only tell you the answer. -- Picasso

 

In this articleArticleI want to explain to people I don't know what programmers do:

Programmers translate human ideas into computer languages.

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

{
Window. Open ('HTTP: // articles.csdn.net/uploads/allianz 110519/94_110519094206_1.jpg ')
} "Src =" http://articles.csdn.net/uploads/allimg/110519/94_110519094206_1.jpg "border =" 0 "alt =" "width =" 500 "Height =" 500 ">

Background of the human world

 

The problem with people is that they're only human.-Bill Watterson

The human problem is that they are just people. -- Bill Watson

 

Humans are the product of biological evolution and have a unique and valuable organ-the brain, which provides ideas for programmers. The brain has a combination of complex new cerebral cortex (unique to humans) and an old structure inherited from mammals and crawlers. The old brain structure is primarily responsible for reproductive (sexual) and survival (looking for food or avoiding danger ). The new cerebral cortex evolved to better support these features, but it began to produce strange side effects-consciousness, thinking, and curiosity. Thanks to the effects of these side effects, humans have created civilization and invented computers after thousands of years.

Some believe that, after thousands of years of development, humans should be completely dull, rational, and predictable, but this has not happened. The old human brain structure, complex psychology, and social behavior often make people irrational, unpredictable, and deceptive. Moreover, humans have bad memories, strong emotions, and personal interests. However, programmers cannot choose to work with more rational species. They have to work with humans and translate their ideas into computer languages.

Computer 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 non-human nature of a computer is that once compilation is completed and runs smoothly, it will faithfully complete the work. -- Isaac Asimov

 

Computer is the best invention of human civilization. It consists of CPU, motherboard, memory, hard drive, display and other components. Computers push our civilization into a new level, make our lives more meaningful and fun, and make up for the flaws of our brains. It is likely that computers are smarter than humans. (However, I am a little concerned. If this becomes a reality, do computers still need human programmers ?)

Modern computers are completely logical, straightforward, and compliant. If you know what it should do and how to command it, it would be nice to work with a computer. The only problem is that the computer will only do what you tell it. Therefore, you should have a clear idea and ensure that the computer will not go wrong when you see your boss or customer.

Translation between humans and computers

There are three major challenges in Translation:

1. language ambiguity.Human languages are vague, complex, and dual-Pass. For example, "This program cannot provide a good user experience ". Culture, background, and context all affect communication and meaning. On the contrary, all computer languages are accurate, direct, and irrelevant to the context.

2. Details.Human communication is general without too many details, such as: "I want this damn program to run ". This saves time and effort, but the lack of detailed information leads to two major problems-Misunderstanding and uncertainty. Computers need all the details-everything should be clear.

3. thinking model.Humans are used to thinking about the relationship between requirements, results, and solutions. For example, "This report should run in 2 seconds, not 2 hours ". However, computers needAlgorithm-- Follow the steps to achieve the desired result.

To write good software, programmers must overcome these difficulties, understand people's ideas, and convert them into computer languages.

{
Window. Open ('HTTP: // articles.csdn.net/uploads/allianz 110519/94_1105190943220.1.jpg ')
} "Src =" http://articles.csdn.net/uploads/allimg/110519/94_110519094321_1.jpg "border =" 0 "alt =" "width =" 346 "Height =" 346 ">

Capabilities 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 connections with others, be able to communicate with others in close contact, and have the courage to share your own ideas.

2. Intention-extract useful information from the conversation to understand and make it meaningful.

3. Logic-organize computers that do not understand concessions and remove vague and controversial content from human thoughts.

4. Creativity-mining and transforming human thoughts to create excellent solutions.

5. conception-packaging programming ideas with friendly human interfaces and convenient interaction.

6. Big Picture-understand how solutions adapt to users, businesses, and others around the world to make your programs more useful.

Tell the computer what to do and create a solution:

1. Logic (stressed again)-organize the ideas of programmers into cohesive software ideas and computer instructions

2. Technology-discover and understand the black box of technology (black box for 99% of people ).

3.Programming Language-- Learn beautiful, logical, and clear languages to give programmers ideas to computers.

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

5. modeling-in the softwareCodeTo master and manipulate ideas.

6. Practice (such as code refactoring, unit testing, and continuous integration)-periodic activities to keep the system reliable, healthy, and changeable.

Programmers targeting humans and hardware objects/systems are very different. Programmers who do not communicate with others are not good programmers. An excellent solution requires the dual skills of the computer world and the human world. Only by connecting two worlds can we become a really good programmer.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.