The original link

In recent months there have been a lot of confusion, but fortunately some answers are beginning to come to light. I haven’t written an article for a long time.

When I was preparing to graduate, I actually didn’t think about being a front-end engineer, after all, it was all full stack (PHP + jQuery) at that time. However, I became a front-end engineer due to my lack of confidence due to my lack of training (I studied Business in university).

I choose this career, in fact, I also appreciate its charm, faster development mode, closer to the development of The Times, cross-terminal compatibility and so on, which can be regarded as enjoying the dividend of the rapid development of the front end in these years. But after three years of work, I gradually found that it was only around the front end of the development, there are great limitations.

I think there were two things that struck me.

The first thing is, React Native, Weex, Node.js, it’s like the front end is paving the way into the client and back end. However, only those who have done real development know that the people who are really good at these technologies are actually the backend engineers who have moved from android and IOS to JAVA and C++.

The second thing is, if in the future, you need to lead a technical team, is it enough to only know the front-end technology? In fact, it is not enough, proficient in front-end technology, and then understand some background, client fur? I don’t think it’s enough. In this way, can achieve better technical communication and understanding with the background and client? Can you offer your opinion when they give a less than optimal solution? In case the front end of the department manpower surplus, have the ability to take the team to do backstage? Do some client stuff? Yes, but can you do it well? I don’t think the above problems can be solved at all without technical reserves.

So, in the next year or two, I hope to become a software engineer, not just a front-end engineer. However, a person’s energy is really limited, may not be able to learn all aspects of the technology is very thorough. But MY requirement to myself is that mastering a side technology and a background technology should be a good match, so that the technology development of the whole product can basically Hold. However, the specific collocation may be related to my career development and interests. I also master the back-end technology, background + AI technology, and so on. I think these collocation is not bad.

You may not immediately be able to manage a team or master some of the cross-end technologies, but some of your ideas on the front end may change a little bit more.

For example, if everyone in the team in the company has mastered at least one back-end technology and one back-end technology, manpower can be dynamically deployed in many cases, and joint investigation can also be reduced. For a certain requirement, if the background manpower is too tight, leading to the lag of the joint adjustment time, the previous favorite method of the front-end team is to write a data Mock platform, write some fake data on it by ourselves, and then adjust with the background after the background is finished. But if I know this skill, I can write the interface directly, and pass fake data in the interface. Although I may need to connect with the background data, but in general, there is less Mock effort in essence.

In addition to saving development time, the benefits brought by dynamic deployment are actually more conducive to the establishment of feature team by the technical department. Many large domestic companies are mainly divided into very detailed skills, each group of members, almost only know one skill. If a department lacks a technical team, or does not have enough manpower to incubate a new project that needs the technology, it may be difficult to find the right talent.

After reading what I said, combined with their own development, DO not know whether there are feelings?

If there are errors, please correct them.