How do front-end engineers plan their careers

Hello everyone, this is Xiao Chen. This article is not about technology, but about an open question, how to make career planning for programmers.

In fact, this question is relatively broad, because every programmer has different professional ability, background and experience, so it is difficult to generalize a general career development advice for everyone. But if it is specific to each major, such as front-end engineer, and specific to a certain age, such as before the age of 35, That still leads to a fairly comprehensive and generic career advice.

1. Professional ability

As a front-end programmers, never can only use a framework or library, because these are the changes or update from time to time, people’s energy is limited, so popular today is probably the framework, tomorrow is another framework, said in the front-end technology changes so fast, you may now use the technology over 1 year is not so sweet.

Solution, of course, is to expand the depth of their skills in some core competencies, such as the source code, data structure and algorithm, like martial arts novel forms and internal force, these frameworks and libraries, are all forms, and the data structure, design patterns, and the idea of source architecture is your internal force, forms play is good, use the effect how, Both require strong internal support, moves change, core algorithms and good design patterns are fundamental, and those are the things that don’t change much.

For example, the React source code uses numerous linked lists, such as hooks lists, update lists, fiber trees, etc., scheduling processes use small top heaps, priority calculations use binary fusion, and diff algorithms for comparing old and new nodes. Have you ever wondered why the React framework uses so many data structures and algorithms? The essence of the reason is to build fast and responsive applications. Good engineers design great libraries that use so many data structures and algorithms

In, for example, to optimize the component in your daily development, for example, what if you don’t have that source, ground floor, don’t know what you use the framework of operational mechanism, how to make performance optimization, for example, you use is the react, you don’t know the asynchronous interruptible update, do not understand the concurrent mode is how to optimize the design of the CPU and IO level, You can’t design a high-performance component.

2. Company selection

If you can choose a small company and big company, be sure to choose a big company, is not good, is not about small company is big company platform advantages and potential energy transition, the breadth and technology, infrastructure is not a small company can, if you think it’s not a channel up in a big company can jump to another head Internet company, Only when you are fully prepared and not satisfied with the salary from work, can you join a small company that you think has potential, and be sure to get equity, so as to have a chance to turn the company around.

When choosing a company, you must fully understand the company’s prospects, team atmosphere, technology stack, etc., all of which need to be considered. In fact, there are great differences between teams in each company. If you have a good leader, it is a very lucky thing.

In addition, it is not recommended to outsourcing, nor to do development in state-owned enterprises or traditional industries. First, generally these companies are relatively backward in technology, and after staying in them for a few years, your technology will lag behind the market by a large margin. In the end, job-hopping will not pay the price.

3. Career choice

If you can calm down and learn, that doesn’t suggest you change careers, life and technology are the siege, everybody envy at the others, actually I don’t know the others suffering, their skills and professional is to your advantage, if we can spend some time to develop their abilities, learn some daily use principle, the framework of the source code, learning data structures and algorithms, design patterns, etc., You have a natural ability advantage over those who have changed careers.

If you just into the workplace, you can choose technology atmosphere is strong, don’t too care about and pay overtime, after all, learning professional ability is the purpose of you, a year into the workplace must take the commonly used frameworks and libraries can use skilled, can for a second year deep source or strengthen their own core competencies, such as the algorithm, a scaffold or own design, component library, Participate in open source projects, etc.

If you are in the stage of preparing to get married and have children, you can choose some companies with less overtime work, foreign companies can also, after all, a stage needs stability, but must not forget to learn, technology is changing with each passing day, continuous learning to take off

If you are the team leader, you can consider how to improve the team’s efficiency, do a good job in technology precipitation and output, manage daily tasks, and cultivate new people. However, it is not recommended that you stop writing code, unless you decide that you must be a good management talent in the future, otherwise technology will always be a hard guy for you to eat.