The qualities that a programmer should have

Source: Internet
Author: User
Tags documentation functions linux
Program | programmer | quality | The qualities that programmers should have [reprint]
Programmer is a kind of technical work, in the development of it has a very important position, from the establishment of the underlying hardware communication protocol, to the data transmission layer processing, to the construction of the operating system, to the database platform construction, all the way to the application layer of a variety of data marketing platform to build, The programmer plays an important role in it and makes a great contribution to the development of it enterprise.

China has a lot of people who are good at coding, but the Chinese software industry, especially the development of network applications is very large, it is difficult to form a scale of software development power and product capabilities, not only than the United States far from the gap, compared with India is quite inferior. These problems are not the IQ of Chinese programmers and work hard, nor is the state and private investment in the development of the degree, but to a large extent, some of the technology, the development of the program, the project design aspects of the misunderstanding, these misunderstandings, leading to the software industry's lack of product capacity, The lack of large-scale and large-scale reuse system research and development capabilities, can be said that the change of understanding misunderstanding, is to solve the software industry small workshop model and individual hero model of the limitations of the important work.

There are many children in China, they are 18, 9 years old or 21, 2 years old, through Self-Study also wrote a lot of code, they have some code to write very beautiful, some technical details quite outstanding, also very delve into the spirit, but they are some wrong understanding and opinion, lack of the system, the overall understanding of the program, these people, An online friend said very well, they are actually just some coding fans, not at all qualified as a programmer, but as far as I know, many Small network company CTO is such a coding fans, with scary wages, doing scary projects, the outcome of the project is usually very scary.


Basic quality of programmers:

To be a truly qualified programmer, or can be truly qualified to complete some code work programmer, should have the quality.

1: Team spirit and cooperation ability

As the basic quality, it is not unimportant, on the contrary, this is the most basic programmer should have, but also the most important to settle in this. The high-level programmer as a lone Ranger is in the raving, any individual power is limited, even if such as Linus Genius, but also through the formation of a strong team to create miracles, those around the world for Linux to write the core of the Masters, no collaboration is inconceivable. The Lone Ranger can make some small money to make a small fortune, but once into some large system of research and development team, into the commercialization and production of development tasks, the lack of this quality of people are completely unqualified.

2: Document Habits

That high level programmers never write documents is certainly a kid, good documentation is a very important part of the formal development process, as a code programmer, 30% of the working time to write technical documents is very normal, and as senior programmers and system analysts, this proportion is much higher.

Lack of documentation, a software system is a lack of vitality, in the future of error, upgrades and the reuse of modules will encounter great trouble.

3: Standardized, standardized code-writing habits

As a foreign well-known software company's rules, the code variable naming, code annotation format, or even the length of the nested line indentation and the number of empty lines between functions are clearly defined, good writing habits, not only to facilitate the code transplant and error correction, but also to facilitate the collaboration between different technical personnel.

Some coding fans clamoring for code written by high level programmers that people never understand, the clamor only proves that they don't deserve to call themselves programmers at all. The code has the good readability, is the programmer basic quality demand.

Then look at the entire Linux build, there is no standardized and standardized code habits, global research and development collaboration is absolutely unimaginable.

4: The need to understand the ability

Programmers need to understand the needs of a module, many children write programs are often focused only on a functional requirements, they are all the performance indicators to the hardware, operating system and development environment, while ignoring the performance of their own code considerations, someone once said to write an ad exchange program is very simple, This kind of people never know how to achieve the performance metrics in millions or even millions of orders of magnitude, for such a programmer, you give him the system of deep blue, he can not do the Tai Chi chain and interview ability. Performance requirements indicators, stability, and the ability to visit support and security are important, as programmers need to assess the module in the system operation of the environment, will be subjected to load pressure and a variety of potential risk and malicious attack possibilities. At this point, a mature programmer will need at least 2-3 years of project development and tracking experience to be able to have a lesson.

5: reusability, modular thinking ability

You can often hear some programmers have such complaints, wrote a few years of procedures, become skilled workers, every day is repeated to write some no new code, which is actually the biggest waste of Chinese software talent, some repetitive work into a skilled programmer's main work, and these, in fact, can be completely avoided.

Reuse design, modular thinking is to the programmer in the completion of any function modules or functions, to think more, do not confine yourself to the simple idea of completing the current task, and consider whether the module can be detached from the system and whether it can be referenced directly in other systems and applications by simply modifying the parameters. This can greatly avoid repetitive development work, if a software research and development Unit and a workgroup are able to take these issues into account in every development process, programmers will not spend too much time on repetitive work, and will have more time and energy to work on innovative code.

Some good program module code, even if it is written in the 70 's, get now put into some systems as a function module can be suitable for the good, and now I see that many small companies to upgrade or improve the software is often all code rewrite, most of the repetitive work wasted time and energy.


The qualities that a programmer should have


6: Test habits

As a commercial formalization of development, the full-time test engineer is indispensable, but it does not mean that there is a full-time test engineer programmer can not be self-test; Software development as a project, a very important feature is that the sooner the problem is discovered, the lower the cost of the solution, the programmer in each piece of code, After the completion of each sub-module for serious testing, you can try to put some potential problems as early as possible to find and solve, so the overall system construction efficiency and reliability has the greatest guarantee.

The test work actually needs to be considered in two ways, on the one hand is the normal call test, that is, see if the program can be under normal call to complete the basic functions, this is the most basic test responsibility, unfortunately in many companies this has become the only test task, in fact, far from that; the second aspect is the test of abnormal invocation, For example, under the high pressure load stability test, the user potential abnormal input condition test, the whole system partial fault condition This module affected condition test, the frequency sends the unusual request to block the resource the module stability test and so on. Of course, it is not necessary for programmers to have this complete test for each piece of code, but the programmer must be aware of the status of their own code tasks in the overall project and various performance requirements, targeted testing and early detection and resolution of the problem, of course, this requires the above mentioned needs to understand the ability.

7: Ability to learn and summarize

Programmers are easy to get out of the job, it is easy to fall behind the occupation, because a technology may only in three or two years of leading, if the programmer want to settle down, they must continue to follow the new technology, learning new skills.

Good at learning, for any profession, is necessary to advance the driving force, for programmers, this request is even higher.

But study also want to find the target, some small coding fans, they also relish their learning ability, one will learn the ASP, a while learned the PHP, and then learned the JSP, they put this as a show of capital, blindly chasing some superficial, superficial things and nouns, Do not understand the network Program Communication Transmission protocol, do not understand the application of interrupt vector processing, such technicians, no matter how much the so-called new language, will never improve quality.

Good at summarizing, is also a manifestation of learning ability, each completed a research and development task, complete a piece of code, should have the purpose of tracking the application of the program and user feedback, at any time to sum up, to find their own shortcomings, so gradually improve, a programmer may grow up.

A programmer does not have the growth, even if the immediate look is a master, the proposal also don't choose, because he is behind the time is coming.


With all of the above quality of people, should be said to be qualified programmers, please note that the above various qualities are not determined by IQ, nor is it possible to learn some textbooks in universities, the need is only the programmer's understanding of their work, is a matter of consciousness.


So as a senior programmer, so that the system analyst, that is, for a program project designers, in addition to the above all the quality, but also need to have the following qualities:

First, the demand analysis ability


For programmers, understanding the requirements can complete qualified code, but for the organization and management of research and development projects, they should not only understand the needs of customers, more often have to make their own needs, why do you say so?

In general, research and development tasks, perhaps the customer demand, it may be the demands of the marketing and marketing departments that, at this point, are not a complete requirement for the research and development department, which is typically simply a functional requirement or, more formally, a full user view; but that's not enough. Because customers may have difficulty in presenting completeness and clarity, or professional performance requirements, because of more than technical factors, but for project organizers and planners, he must be able to recognize the existence of these requirements

[1] [2] [3] Next page



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.