What is the difference between a good programmer and a general programmer?

Source: Internet
Author: User

In the programmer I usually see, if the pure coding ability to see, personally think can be divided into five categories, in order:

  


1. Copy Type
Copy-type players are legendary "code-copy", they have little idea of the implementation of the function, the thing is to copy the fragments from the code written by the Internet or other team members, and then put in the project, if the running project has expected results, it means that the task is completed.
This type of person will only change the code, but will not write code. Most of them have no interest in programming, just want to live it.

2. Beginner Type
When the product has functional requirements, because of limited experience, the programmer does not fully know how to achieve this function, need to learn, find information and other ways to solve the problem.
In this case the coding process, the main goal of the programmer is "to complete the function", then it is difficult to have the extra mind to consider boundary conditions, performance, readability, extensibility, coding specifications and other issues, so code bugs may be more, stability is not high. It often takes 1 months to develop a bug, but a few months to change it.

3. Learning Type
This kind of programmer to the field of the language has been more understanding, for the general function can have a clearer realization of ideas, give the demand can be achieved through their own ideas, and will be considered to some extent boundary conditions and performance problems. But that's all, they have little or no project-level consideration for readability and scalability, and they want to practiced hand or learn by implementing code.
The biggest performance of such programmers is to like to "create code", even if there is a ready-made implementation, they also want to implement a set, in order to achieve "learning" purpose. They do not like to reuse other people's code, see other people in the project to achieve similar functions, they will be "different needs" as a pretext to re-implement a set. Such people generally have a strong interest in technology, hoping to learn through projects.
From a project perspective, the biggest trouble with this approach is that the development cycle can be long (compared to using out-of-the-box implementations directly) and will inflate the project code and affect future maintenance. But this kind of programmer is interested, if the good cultivation may become tomorrow's ox person.

4. Realization Type
This kind of programmer generally has the rich experience, because writes too many, therefore no longer pursues "the creation code" to carry on the study, at the same time is familiar with many third party framework or the tool which in the domain is involved, when accepts to the product demand, to the function realization plan already to understand the chest, therefore they can quickly realize the demand, And the boundary, performance has a certain degree of consideration. Because of the ability to quickly implement requirements, the team is often rated as "cattle people." But they generally only stay at the "complete function" level, the Code readability, extensibility, coding specifications and so on less consideration, the overall grasp of the project is also less (such as control project expansion, ease of deployment and other architectural levels of things).
The greatest performance of such programmers is to enjoy "development projects", but not "maintenance projects". The biggest problem with the code they produce is that it is difficult to maintain, and it may be a bit confusing to look back at your code for a few months. So even if the code you write, still unwilling to maintain, will generally be bitter yimeimei.
Because of the lack of interface design, when the requirements change, found that the code to change too much, and then complained about the changes in demand, but rarely considered their own code problems. Such projects will eventually become difficult to maintain if they are maintained over a long period of time (typically in response to a change in demand) or even impossible to maintain, eventually dying or being knocked back.

5. Architecture Type
This kind of programmer is more than the implementation type, they are experienced, the relevant framework and tools are familiar, "complete the function" "stability" "performance" these are no longer their pursuit, more beautiful code, more reasonable architecture is the goal.
This type of programmer code design is mostly based on a detailed understanding of requirements and the prediction of demand changes-scalability is good, the code details as much as possible to consider the boundary situation, performance-stable and efficient, code naming and comments are just right-readability, and in the development process they will continue to refactor, code subtraction- Ensure the sustainable development of the project, etc.
However, due to the consideration of more problems, single from the "Implementation of the function" stage, the completion speed is not necessarily faster than the "implementation type". It's only in the late stages of the project that the benefits will be reflected.

Perhaps there are more excellent programmers I have not seen, hehe, welcome to add!

What is the difference between a good programmer and a general programmer?

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.