10 qualities of perfect programmers
Reproduced from: http://zhousir.net/
Who isPerfectProgramEmployee? The famous blog writer Alex iskold 《Ten Characteristics of Star software engineersThe answer to this question is as follows:
1. Love Programming
2. Complete the task
3. Continuous ReconstructionCode
4. Use the design mode
5. Write a test
6. Make full use of existing code
7. Focus on Availability
8. Write maintenance code
9. Programming in any language
10. Knowledge of basic computer science
This is a reasonable list, but this list focuses on secondary features, which are only the result of deeper quality and is an idealized list. Do you think the quality of Flash programmers on children's websites will be the same as that of software engineers in B2B financial transaction service companies? So how can we identify a perfect programmer from many developers?
Find the final criteria for perfect programmers:Perfect programmers can develop excellent software that meets customers' expectations.
The shocking fact is that perfect programmers may be proficient in only oneProgramming LanguageI don't know what a design pattern is, and I don't want to program every night in the basement to create the next Google. We cannot objectively measure the degree of perfection for programmers, just like measuring the width of our arm. Perfect programmers are perfect only when they develop a high-quality, available, and highly maintainability software system (an excellent system) on time, and the system meets user requirements.
To sum up, we can get the following inferences:
- 1. A perfect programmer should be able to solve user problems in a timely manner, or be able to solve problems within a reasonable period of time. The quality of all programmers is related to user problems and background:
- Some problems require creativity, while others require specific directions.
- Some problems usually require professional technologies, while others require advanced business knowledge.
- Some problems require careful analysis, while others require some social skills and intuition.
- 2. A perfect programmer should understand what is "done" and pay attention to product quality. For a software system, "completion" means far from the end of coding. A perfect programmer will complete all the necessary steps to develop the system: Testing, optimizing the code to keep the amount of code minimal, efficient, and readable, make the system available and ensure that customers and users like the system.
10 qualities of perfect programmers
Each quality of perfect programmers has a scope, which depends on the specific problem and background. There is no perfect Programmer (at least on our planet) capable of solving all problems, and perfect programmers should have the following qualities for specific problems:
1. extraordinary talents-Ability to understand problems, translate and express ideas with clear and readable code, be good at analysis, and have strong logic thinking abilities (scope: solving complex problems in a simple way)
2. Outstanding charm-Combination of Excellent personality (focus on details vs creative, flexible and changeable vs stick to the pawntree, be good at communication vs maverick)
3. Species in the industry-Have certain knowledge and experience, and can use professional skills to solve user problems under specific conditions (scope: experts in a field, programmers who have rich experience in different fields ).
4. Proactive-People who care about their work and show high enthusiasm, interest, and love for programming (from people who only work for money to people who do not pay for their work in their spare time ).
5. Mature and stable-Proficient in and using reasonable software development principles, agile methods and practices, design and architecture models, domain-driven design, unit testing, and restructuring (scope: From a passionate hobbyist, to a hacker who can constantly develop new methods ).
6. Pragmatism-Understand what is possible, like simplicity and practicality, and avoid excessive design; understand business goals, stay close to reality, and focus on what to do (scope: from self-taught artists, to self-motivated, pragmatic and successful people ).
7. Collaboration-People who can listen to and accept good ideas, support the team's goals without reservation, share their thoughts and knowledge with others, and are willing to guide others (scope: from an exception to a team lead ).
8. good at communication-Ability to efficiently communicate and exchange ideas with others, and support knowledge and decisions that give clear explanations, judgments, and answers to the system (scope: From a quiet and introverted person, to a system interpreter ).
9. Unlimited Potential-Possess career goals, excellent skills, curiosity, strong adaptability, and continuous introspection (range: from a person who reaches the limit to a future programming star ).
10. foresight-Have a higher vision, understand the related background, trends and personnel, and take actions to achieve the potential goals of the team and the company, and strive to build a common vision for the software system (scope: from people who are only interested in programming to visionary entrepreneurs ).
How can we find perfect programmers for specific problems?
It is certainly better to find programmers with the best quality. However, these alternatives are expensive, and you may get bored with your problems. Therefore, the following measures can be taken:
- 1. Understand the problem, evaluate the level of each quality before hiring them, and prepare the problem or even test.
- 2. Build a perfect team, but not necessarily perfect programmers. As long as you ensure that part of the quality of the team members has reached the expected level. For each team member, collaboration is the most important quality.
- 3. create the necessary environment to enable these excellent qualities to play an effective role. Use the correct leadership style and make programmers feel happy.
People with excellent Core qualities will propose optimal methods, including writing unit tests and refactoring, learning design patterns, and most importantly, developing outstanding and practical software.
PS: Perfect programmers are not born. They just did the right thing to solve the problem.
(Original article is transferred from bole online)