A good programmer in the end what criteria need?

Countless people have asked a similar question: how can we do a good programmer? Before answering this question, we have to understand what is good programmers, so that only the direction and goals, but this thing is too subjective, everyone may dry standard differential Wan do not. Talk about those legendary alone to make a special case of great things, not talk about heaven into the earth, God's great cattle on the sly, I am more or less recognized, in the normal development of the project, a good programmer Standard .

In the project development, the ability of a programmer is equal to its ability to solve problems. If you want to have a yardstick to measure the ability, the ability of a programmer can get the job done to measure the size and difficulty. Because the difficulty of dividing a single cylinder so bad, and in the general development of the project (non-research projects), mainly from the difficulty of the task complexity caused by the size of the task, here the general division of tasks from the scale 1 function => type = 1> 1 function => 1 module => 1 item. When a more detailed classification, functions, classes, functions, modules, the project itself is also simple and size of the points.

Prior to this, the project is negative on productivity, that is, he assigning tasks, communication and bug repair for his time than to actually complete their own direct function of the time. In other words, there is this level of project programmers purely for training personnel. Better able to complete a full module programmer be better programmers, but also the general project mainly with concurrency were; able to complete the entire project take off clothes programmers take off clothes to be good programmer, you can call the shots in multiplayer project Cheng.

What determines a take off clothes programmers the ability to solve problems? I think there are several factors:

Between the programmer off clothes of the same level, a somewhat of a problem domain is understood that a total lack of understanding in this area, to complete the same task in the field efficiency worse than an order of magnitude. This is what we usually refer to the role of experience, this experience can be seen as the accumulation of knowledge. - programmers accumulation of knowledge largely determines its ability to solve problems.

This is a big bang, knowledge refresh frequencies people can not catch up with the times. On the one hand, face a little more difficult task, it is inevitable there will be beyond their existing knowledge of the time, this time determines your self-learning ability to complete this task and more quickly; on the other hand, you decide the self-learning ability in the usual course of their work, how much knowledge you have accumulated.

Strong self-learning ability, even if no one can always pointing to something in the code school project; and in turn, the willingness to learn weak people write code refactoring others will not think about whether this code change the better and why. From a longer scales (such as a person's working life) point of view, the accumulation of knowledge of a programmer how many depends on its self-learning ability and his interest in the program itself.

Communication skills, responsible attitude to work, the pursuit of the code, to a large extent determined by the character, I do not know how simple practice to improve only slightly in here to talk about some of my views on the accumulation of knowledge of it:

1, cultivate an interest, the technical work is always hard, especially programming.

If you do not have this strong interest, can not find a lot of pleasure from the program itself, it is better not to become a luxury good programmer. It is my biggest general requirements for the recruitment of junior programmers programming of interest.

2, what kind of environment you decide what kind of accumulation of knowledge, determine your taste, you will decide what way to do things, that unless there is a strong willpower.

3, do not stay in the comfort zone of their own learning, if your work is just a simple repetition of previous work, you will be very easy to work, but also difficult to have improved.

Guess you like

Origin blog.51cto.com/14489558/2461465