Be a qualified Programmer (learning of a previous Team)

Source: Internet
Author: User

Basic Qualities of qualified programmers 

As a truly qualified programmer, or a programmer who can truly complete some code work, it should have some qualities.

1. team spirit and collaboration

Taking it as a basic quality is not unimportant. On the contrary, this is the most basic and important foundation that programmers should possess. The high-level programmers are talking about being a hero, and the power of any individual is limited. Even a genius like Linus needs to create a miracle by forming a strong team, those who write core for Linux all over the world cannot imagine the lack of collaboration spirit. The Lone Ranger can make some small softwares to make money, but once it enters the R & D team of some major systems, it will enter the commercial and productized development tasks, people who lack such qualities will be completely unqualified.

2 document habits

A high-level programmer never writes a document, but it must be a cool child. A good document is a very important part of the formal R & D process. As a code programmer, it is normal to write technical documents for 30% of the work time, and as a Senior Programmer and system analyst, this proportion is much higher.

If there is no document, a software system lacks vitality. In the future, troubleshooting, upgrading, and re-use of modules will cause a lot of trouble.

3 standardized and standardized coding habits

As a rule of some well-known foreign software companies, code variable naming, code annotation formats, and even the length of nested rows and empty row numbers between functions are clearly defined, good writing habits not only help code porting and error correction, but also help different technical personnel to collaborate.

Some coding fans complain that code written by high-level programmers is never understood by others. Such complaints can only prove that they are not worthy of self-proclaimed programmers. The Code has good readability and is a basic quality requirement for programmers.
Looking at the establishment of Linux, there is no standardized and standardized code habits, and global R & D collaboration is absolutely unimaginable.

 4. Requirement understanding

Programmers need to understand the needs of a module. Many children write programs only focus on one functional requirement. They attribute all performance indicators to hardware, operating systems, and development environments, while ignoring the performance considerations of the Code itself, some people once said that writing an ad exchange program is very simple, this kind of person never knows how the performance indicators are achieved in the case of millions or even tens of millions of visits. For such a programmer, you give him a deep blue system, he is also unable to make too many chain and access capabilities. Stability, access support, and security are all important in performance requirement indicators. As a programmer, we need to evaluate the environment of this module in system operation, the load pressure to be subjected and the possibility of various potential dangers and malicious attacks. In this regard, it may take at least two to three years of project R & D and tracking experience for a mature programmer.

5. reusability and modular Thinking Ability

I often hear such complaints from programmers who have been writing programs for several years and become skilled workers. Every day, I repeatedly write code without any new ideas. This is actually the biggest waste of Chinese software talents, some repetitive work has become the main work of skilled programmers, which can be completely avoided.

In reusability design, modular thinking means that programmers should think more about each function module or function, rather than simply completing the current task, can this module be detached from this system? Can it be modified in other systems and application environments simply? # Benzene right? No repetitive development work. If a software development organization and working group can take these issues into account in every R & D process, programmers will not delay too much time in repetitive work, more time and energy will be invested in innovative code work.

Some good program module code, even written in 1970s, can be well applied to some systems as function modules. What I see now is, many small companies tend to rewrite all their code as soon as software is upgraded or improved. Most repetitive work wastes time and effort.


6 testing habits 

As for the development of commercialization and regularization, full-time test engineers are indispensable, but it does not mean that programmers with specialized test engineers can not perform self-testing; as a project, software R & D is very important. The earlier the problem is discovered, the lower the cost of solution, after each sub-module is complete, perform a serious test to discover and solve some potential problems as early as possible, this guarantees the maximum efficiency and reliability of the overall system construction.

In practice, two aspects need to be considered for testing. On the one hand, testing of normal calls is to check whether the program can complete basic functions under normal calls. This is the most basic test responsibility, unfortunately, this is the only test task in many companies, but it is actually far behind. The second is the test of abnormal calls, such as the stability test under high load, testing of potential abnormal input by the user, testing of the module's impact in the case of Local faults of the overall system, and stable testing of modules when abnormal requests are frequently sent to block resources. Of course, not programmers need to perform such a complete test on each piece of code, but programmers must be aware of their position in the overall project and various performance requirements, conduct relevant tests and discover and solve problems as soon as possible. Of course, this requires the requirement understanding ability mentioned above.

7. Ability to learn and summarize

Programmers are easy to get rid of and fall behind in their careers, because a technology may be disruptive in just three or two years. If programmers want to live up, they must keep following up on new technologies, learn new skills.

Good at learning. For any profession, it is an essential motive force for advancing. For programmers, this requirement is even higher.

But they also need to find the right learning target. Some small coding fans also relish their learning ability. They will learn ASP, PHP, and JSP later, they use this as a show-off capital, blindly chasing superficial things and terminologies, as network programs do not understand communication and transmission protocols, and as applications do not understand interrupt vector processing, such a technician, no matter how many so-called new languages are mastered, will never improve the quality.

Being good at summarization is also a manifestation of learning ability. Every time you complete a R & D task and a piece of code, you should track the application status and user feedback of the program, and summarize it at any time, find your own shortcomings so that a programmer can grow up gradually.

A programmer who does not have growth is recommended not to use it even if he is a good player, because he will arrive immediately when he is out of date.

Those who have all of the above qualities should be qualified programmers. Please note that none of the above qualities are determined by IQ or can be learned from some university textbooks, it only requires the programmer's understanding of his work and is a matter of consciousness.

Be a qualified Programmer (learning of a previous Team)

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.