Essential Qualities for excellent programmers and essential for programmers
Programmers are professionals engaged in program development and maintenance. We generally divide programmers into programmers and programmers, but the boundaries between them are not very clear, especially in China. What qualities should be possessed as a truly qualified programmer. 1: team spirit and collaboration ability are the most basic qualities that a programmer should possess. Software Engineering has been put forward for nearly thirty years. Today's software development is not programming, but engineering. Lone Ranger can write programs and make money. However, it is essential to enter the R & D team and engage in commercial and productized development tasks. It is no exaggeration to say that this quality is the foundation of a programmer or even a team. 2: Document habits document is the vitality of a software system. A company has good products and a high technical level. If there is no lack of documentation, knowledge will not be inherited. The company is still a raw material processing software workshop. As a code programmer, 30% of the work time must be written for technical documents. Programmers without documents are bound to be eliminated. 3: standardized code writing habits the variable name and comment format of the code of well-known software companies, and even the length of the nested line indent and the empty line number 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 so-called experts may even complain that the code written by a high level cannot be understood by ordinary people. I can only say that he is not a qualified programmer. 4: requirement comprehension programmers must be able to correctly understand the requirements described in the task list. It should be clear here that programmers should not only pay attention to the functional requirements of the software, but also the performance requirements of the Software. They should be able to correctly assess the impact of their modules on the entire project and potential threats, if a skilled programmer with two to three years of project experience does not understand this, it only means that he may have worked hard but did not work hard. 5: Modular thinking ability as a good programmer, his thinking cannot be confined to the current work task. Think about whether the module he wrote can be separated from the current system, it is directly used in other systems or other modules through simple encapsulation. In this way, the code can be reused to reduce repetitive work, and the system structure becomes more reasonable. The improvement of modular thinking ability is an important indicator of a programmer's technical level improvement. 6: Testing habits testing is an important part of software engineering quality assurance, but testing is not only the work of testing engineers, but also a basic responsibility of every programmer. Programmers should understand that testing is not only a normal program debugging, but also a targeted abnormal call test, which should be able to understand according to requirements. 7: the ability to learn and summarize programmers are easy to be eliminated, so they should be good at learning and summarizing. Many programmers like to blindly pursue some coding tips. No matter how many languages they have learned and how skilled they are, we can only say that they are skilled code migrant workers, he will never improve. A programmer who is good at learning will often summarize his own technical level and have a good position on his own technical level so that he can improve himself purposefully. In this way, developers can gradually upgrade from programmers to software designers and system analysts. As a Senior Programmer, in addition to all the above qualities, the following qualities are also required: 1. Requirement analysis capability 2. Overall framework capability 3. Process processing capability 4. module decomposition capability 5. Overall project evaluation capability 6. team organization management capability 1. Passion. I have met many "professional programmers" who work in IT because they think IT is a profession. They only program during working hours, and they will not learn new things unless they are trained, this is not a good programmer. I think a good programmer is always passionate about programming, and a good developer will do some programming work even if there is no reward. Passion is an important indicator of a good programmer. 2. The field of self-learning and studious programming has always been evolving and changing, and some new technologies have become old technologies in less than a year. This does not mean that good programmers should follow up on all new technologies, but some are not interested in learning any new technology. They usually learn programming at school, and after work, the organization arranges to learn what to learn. If you hear "let me train for a week I will be competent for this job" during recruitment, don't hire him. In fact, really good programmers always talk about the new technology you don't know, and explain to people why you must use it, even if no audience understands it, even if they don't. 3. Smart and smart include many factors. emotion and social communication are only one of them. Good programmers are by no means the smartest. Many of them are sociable, talkative, and interested. 4. Implicit experience-good programmer communication. I often have my own personal research, hobbies, and projects, which are not written on my resume (which is generally not worth writing ), however, it may be his potential, depth, and stamina. 5. Technical Diversity because good programmers like to learn and explore new technologies, they are generally familiar with many new technologies over the age of 22, and have "strong" personal opinions/opinions on the length of multiple technologies, I like to try new technologies. 6. The qualification certificate is not a way to identify Real Programmers. MCSE and SCJP cannot explain anything. They only let others know and obtain them, at most, this person has certain knowledge in a certain technology.