A good programmer is to communicate with others.

Source: Internet
Author: User
Keywords Programmer workplace motivational modern computer
Tags clear code code refactoring communication computer computer world how to it is

Consolidator are useless. Tightly can only give you answers. –picasso

Computers don't really work. Because they can only tell you the answer. --Picasso

A lot of people (even my mother-in-law) think that computers have become so intelligent that they may not need programmers in the near future. Others think programmers are geniuses who can sit in front of a computer and solve complex mathematical problems. But even a lot of programmers have no clear idea of what they are doing or what they are doing.

And in this article, I think I can explain to the unsuspecting person what the programmer is doing:

Programmers are translators who translate human ideas into computer languages.

They are the bonds of the two worlds. Do you think it's easy to maintain this bond?

  

The background of the human world

The problem with arranges was that tightly ' re only human. -Bill Watterson

The problem with humans is that they are just people. --Bill Waterson

Humans are the product of biological evolution and have a unique and valuable organ-the brain that provides ideas for programmers. The brain has a complex new cerebral cortex (unique to humans), as well as old structures inherited from mammals and reptiles. The old brain structure is primarily responsible for reproduction (sex) and survival (seeking 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, humans 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, predictable creatures, but this did not happen. The old human brain structure, complex psychological and social behavior often make people irrational, unpredictable and deceptive. And humans have bad memories, strong emotions and personal interests. But programmers have no choice but to work with more rational species, who have to collaborate with humans and translate human ideas into computer languages.

Computer World Background

Part of the inhumanity of the "computer is", once itiscompetently programmed and sharable smoothly, it is completely honest.– ISAAC Asimov

Part of the human nature of the computer is that once the compilation is completed and run smoothly, it will faithfully complete its work. --Asimov

Computer is the best invention of human civilization. It consists of CPUs, motherboards, memory, hard drives, monitors, and other parts. Computers push our civilization to a new level, make our lives more meaningful and fun, and make up for the flaws in our brains. It is likely that computers are smarter than humans. (However, I'm a little concerned that if this becomes a reality, will the computer still need human programmers?)

Modern computers are fully logical, direct and compliant. If you know what it should do and know how to command it, it's fun to work with a computer. The only problem is that the computer will only do what you tell it to do. Therefore, you should have clear ideas and ensure that the computer does not go awry when you meet your boss or client.

Translation between human and computer

There are three major challenges in translating:

1. Language ambiguity. Human language is vague, complex, and puns, such as: "This program does not provide a good user experience." Culture, context and contextual contexts all affect communication and meaning. In contrast, all computer languages are accurate, straightforward, and context-independent.

2. Detail level. Human communication is general and without too much detail, such as: "I want the damn program to run." This saves time and effort, but because of the lack of detailed information, there are two larger problems-misunderstandings and uncertainties. And the computer needs all the details-everything is clear.

3. Thinking mode. 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, the computer needs an algorithm-follow the steps to achieve the desired result.

To write good software, programmers must overcome these difficulties, understand what people think and translate it into computer language.

The ability of a good programmer

  

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

Understand human needs and propose solutions:

1. Communication-the ability to connect with people, to be able to talk to others intimately, and to have the courage to try and share their ideas.

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

3. Logic-to collate and eliminate the vague and controversial elements of human thought for computers that do not know how to compromise.

4. Creativity-the idea of digging and transforming people to create excellent solutions.

5. Idea-packaging programming ideas with human friendly interfaces and convenient interactivity.

6. The big picture-understand how the solution adapts to users, businesses, and others around the world, making your programs more useful.

Tell the computer what to do and build the solution:

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

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

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

4. Algorithm-Proficient in the most efficient way to make a computer complete a task.

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

6. Practice (e.g. code refactoring, unit testing, continuous integration)-periodic activities to keep the system reliable, healthy, and able to change. (For code refactoring, see the 3rd of the 10 qualities of star software engineers in the Bole Online Workplace blog.) )

There are a lot of differences between human and hardware-oriented programmers.

Programmers who don't 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 you become a truly good programmer.

Source: Bole Online-Career Blog-programmer

Link: http://www.jobbole.com/entry.php/821

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.