Where senior programmer and junior programmers difference?

 

Ask questions, the rank and middle-class companies are writing business code, where the rank of the value in it?

  • In the multi-primary writing code, advanced more in the design code;

  • In a multi-primary problem solving, advanced multi-solving a class of problems;

  • Primary consideration in multi-technical issues, but also to participate in high-level requirements on business;

  • Junior engineer just pick demand, leading to their busy, senior engineers will cut demand, have to use their own experience to tell this demand products do not need to tell this interaction designer is not necessary;

  • Junior engineers may finish a project would be finished, a senior engineer could package several components, sorting out a scaffolding.

There are many, many, junior engineer and senior engineer gap not only on code quality, but also on other skills, problem solving skills, ability to abstract problems!

Today there is time, I would like to elaborate on the encounter, seen powerful programmer with you, the same is to write business code, how high would take more than a junior programmer salary?

In the multi-primary writing code, advanced more in the design code

Most people might get the demand, he began to write code, read, read, because the pages are more and more functions, more complex code that feeling that he will find it difficult to maintain.

I take my own example, I once before after a written page, and then to another colleague (can be understood as a senior programmer) to let him help me to Review the code, after seeing my code to find this not written Yeah, so how you will go to design it?

Then he gave me a reason at the entire page should be how to design a page which is divided into blocks, what events, each event should be  dispatch what  action, then the whole module in which data  store , the module which is placed  state inside, then listen anyway after he finished reason, she felt writing code really is rubbish, then I spent two days last week to write code rewrite the side.

Note that this is rewritten, not reconstruction, reconstruction is turned around an internal software architecture, in order not to change the software may be provided to observe the behavior and improve their comprehensibility, modified to reduce its cost. So if the guarantee does not change the software observable behavior? You need to write test cases to ensure the re-structure your code run through the test case is the first step in reconstruction, reconstruction of the test case is not bullying.

So how to improve the ability to design code it?

I think there is a very helpful method for improving the ability to design code that uses TDD (Test Driven Development).

TDD principle is developed before the function code, unit test cases before writing the code, test code to determine what products need to write code. - Source Baidu Encyclopedia

Why TDD will improve the ability of design code it? TDD can see the principle is necessary to write test cases before writing the code, when writing the test case you think you necessarily have to go to each function, each module, each component should be how to design makes it easy to test often easy to test code are better maintained.

This can be achieved before writing the code to go to the design code before writing code, which is to think first, act later.

I'm just saying TDD can improve the ability to design code, did not say I particularly advocate TDD, TDD said a lot of trouble, people do not talk to me difficult to implement discussed.

Primary consideration in multi-technical issues, but also high-level thinking on the needs of the business

We want to know, technology services for business, no business to talk about good and bad technology is bullsh * t!

Often see a lot of interns, or first came to graduating students will Tucao before the old code with the framework of the old, old technique used, and then went into a new, feel fast hardware, and then no more environmental testing hair on the line hung up, such examples are many, many, not to mention our company, our group even appeared several times this situation.

This is only consider technical issues, and not to consider why you wrote before predecessors, their predecessors did not use these things, because at that time it just is not something new, or worse than you think predecessors.

Is likely that they take into account the needs of the business, such as to be compatible with IE, or, for example taking into account the many users with iOS, Safari does not support webp, or for example, considering that many users are low-end machine, the performance is not good, you can not use some new characteristics and so on.

For bosses, he did no matter what new technology, new features you use, you may use the new features really make the code more concise, but, but, but, sent to the line hung up, then you write something is garbage even the most basic guarantee of stability are not, let alone fluency, high concurrency.

Junior engineer just needs access, Senior Engineer will cut demand

Often see a lot of junior engineer is, regardless of the product, and even back-end operations to make some demands, he was very friendly, as long as the demand he take, then busy all day, but also often work overtime, but in fact, a lot needs to do of little value, and perhaps also some duplication of work, also made himself very hard, this is really a lot.

Then also the case that there is a demand for the product, then balabala meal demand Following the discussion, the product is given a deadline, junior engineer played full count, may be able to finish, and then say do it, or the result of their ability to estimate the error, either many unexpected situations, and not on time line.

The senior Basically the situation is not on the line does not appear on time, I thought about it for several reasons:

  1. Give yourself a buffer, to avoid unforeseen circumstances lead to delays of time.

  2. When demand analysis will consider whether each requirement is necessary, if some feel no need to demand, will be discussed and products, come up with a good reason to cut demand. If you have the necessary time and then not enough, go and talk about whether or not to make the product look simple interaction, a first out what it is like to do the next thing intact.

  3. Assessment of the needs assessment as well as their ability to be more accurate.

Here I want to express, not all needs are necessary, do not have to pick each requirement.

So if a demand to determine whether it should take?

I think the main thing to think about his worth behind , why do this thing, to do to achieve what kind of effect, can not tell if the product value, or the value generated does not match the time you spend, then this demand is to be discussed is.

In a multi-primary problem solving, advanced multi-solving a class of problems

Last night a lot of junior engineers may project would be finished, but also feel it is OK, then the problem is also in the project of a one solved, according to the amount of time to complete the task.

Yes, this is the standard of junior engineers, to complete a project.

So what will do for a senior engineer to complete the project in addition to it?

Maybe a few common components package will be sent to the npm everyone can use.

Maybe it will sort out with a scaffolding, such as the former company does not use TS, then after the project finished with TS, stepped on a lot of the pit, you can put together a scaffold, and then stepped on the pit recorded to facilitate later want to use TS people use.

UI front-end engineer may find out that a reduction dull, and there is no technical content of the thing, the Division I have a big brother wrote a UI2Code tool that can convert files to html code Sketch.

Perhaps the engineer found a line on a function, applets and H5 have to write a set of exactly the same, then our big brother wrote a vue code into the applet can frame, a set of code vue, h5 and applets can be used.

These are examples around me, you can not see a problem often solved engineer, but to solve a common problem for a class and then give solutions, and implemented, we never thought it would be finished project done, with no output, you may do this project on their own much help growth.

Junior programmers often mistake Highlights

Then I know almost see the error highlights a junior programmers often guilty of, I think we can all look great, they have no such problems.

1 non-standard naming

2 log irregularities

3 refused to write interfaces and false data

4 do not write unit tests

5 blind Integration

6 logic is unclear

7 programs do

8 does not care about performance

9 afraid reconstruction

10 made out just fine, regardless of elegant solutions

11 does not consider future changes in demand

12 will not encounter problems when trial and error

13 will not write pseudo code

14 not estimate the amount of data

15 submit code does not regulate

16 do not like to play Tag

17 non-compliance with the publishing process

18 Do not know Bug fix priority

19 likes manually modify the code line

20 do not do data backup

21 do not do self-test

22 does not try to imitate the real data, test data very casual

23 does not extract the common code

24 do not listen demand explanation

25 do not look acceptance criteria

26 does not actively promote the progress of the project

27 encountered problems not active feedback

Author: Dark Off link: https: //www.zhihu.com/question/33578621/answer/451931102

to sum up

Junior programmers is mainly reflected in the short-sighted, lack of thinking, something is not done the results, not proactive.

The senior programmer just the code is well written, written fast, do more long-term thinking, doing something more useful.

I have listed what did senior programmer I encountered around, I think the more convincing, not words big deal, I learned from all around bigwigs who started going to the workplace hope, or I feel like a junior programmer programmers some of vigilance.

Of course, the advantage of the shortcomings mentioned above have senior and junior engineer, senior engineer, not all will have all of these advantages, not all of junior engineers have these drawbacks, this is no way to quantify.

What characteristics of your side also met senior or junior engineers shortcomings

Guess you like

Origin www.cnblogs.com/xingxia/p/high_low_programmer.html