Program Personnel are a technical work and play an important role in the development of IT, from the establishment of underlying hardware communication protocols, to the processing of the data transmission layer, to the construction of operating systems, to the construction of the database platform and the establishment of various data marketing platforms on the application layer, programmers play an important role in it and have made great contributions to the development of the IT industry.
There are many coders in China, but the Chinese software industry, especially the network application development, has a wide misunderstanding. It is difficult to form a large-scale software development force and product capabilities, not only far from the United States, compared with India. These problems do not lie in the IQ and hard work of Chinese programmers, nor in the development of national and civil programs.
To a large extent, there are some misunderstandings about technology, program development, and project design, which leads to insufficient productization capabilities in the software industry, lack of R & D capabilities for large-scale and large-scale reusable systems, it can be said that changing misunderstandings is an important task to solve the limitations brought about by the small workshop model and individual Hero Model in the software industry.
There are many children in China, aged 18, 9, or, who have written a lot through self-study.CodeSome of their code is very beautiful, some technical details are quite outstanding, and they are also very research-oriented, but they are wrong about some ideas and views left and right, lack of a system, the overall understanding of the program, these people, an online friend said very well, they actually
There are only some coding fans and they are not qualified as programmers at all. But as far as I know, ctos of many small network companies are coding fans who are working on scary projects with scary wages, project endings are often scary.
Basic Qualities of 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 Ability
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, all over the world.
Linux Write core experts, without collaboration spirit is unimaginable. 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, ignoring the performance considerations of the Code itself, some people once said that writing an ad exchange program is very simple, and such people never know the access situation in millions or even tens of millions of orders of magnitude.
How is the performance indicator achieved under the circumstances, for such a programmer, you give him deep blue that set of systems, he can not do too 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, load pressure to be subjected and various potential risks
And the possibility of 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, think about whether the module can be detached from the system, and whether it can be directly referenced in other systems and application environments by simply modifying parameters. This greatly avoids
No repetitive development work. If a software development organization and working group can consider these issues during 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.
The quality that programmers should possess
6: Test habits
As part of commercialized and formal development, full-time test engineers are indispensable, but it does not mean that programmers with professional 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 for solving the problem. After each code segment and every sub-module is completed, the programmer
After careful testing, we can try to discover and solve some potential problems as early as possible, so as to maximize the 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. In fact, it is still far behind. The second is the test of abnormal calls, such as the stability test under high pressure.
User testing in the case of potential Abnormal Input, testing of the module's impact in the case of Local faults of the overall system, and stable testing of modules in case of frequent abnormal requests blocking resources. Of course, not programmers need to perform such a complete test on each code segment, but programmers must be aware of their position in the overall project and
Various performance requirements, targeted tests, and early identification and resolution of problems, of course, this requires the above-mentioned requirement understanding capabilities.
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, 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.
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.
Reprinted from: http://kb.cnblogs.com/page/50262/