Many front-end engineers will encounter a period of confusion after working for more than 3 years. I have also talked with many front-end practitioners, and some of them said that they want to promote open source projects (similar to react, vue) and become front-end Internet celebrities. Some say they want to start a business. Often longer-term career development plans are given little consideration. I hope to share my work experience and what I have learned in Ali with you, as a case to answer the troubles about career development.
This article is from a sharing within the team. I am Yinjian from the front-end team of Da Taobao technology content, responsible for content middle-end technology. My habit is to share "HOW TO BE AN EMINENT ENGINEER" once at the beginning of each new fiscal year, to talk about the current team formation, OKR, business and technical big picture, and to talk about my plan as a programmer.
This article only records the content of [My plan as a programmer].
Frequently Asked Questions by Front-End Programmers
First, for example, a school has recruited students to work in Ali for two or three years, and the overall technical ability has maintained a rising period, but they have never been out of the "student spirit" in communication and work, and it seems that they have not yet graduated.
Second, technology updates and iterations are very fast, especially in the front-end field, and new technologies have been released in recent years. Every night in the dead of night, you will find that there are very few technologies that can really settle down.
Third, about technical depth. I've experienced promotion failures, and I'm impressed by the comment "not enough technical depth". After the communication, I walked out of the conference room with my head lowered and kept asking myself what level of technical depth was enough. As a front-end, we are more about writing pages in the company, optimizing the UI, and improving the performance of the pages. Even if the products we make are very successful, where is the success? It may be that the UI is beautifully designed, or it may be that the recommendation algorithm is accurate, but what does the front-end output bring to the product? Ali has a sound system and good teachers and friends. What can I do without this big platform?
The three stages of my development
After joining Ali and going through different BUs and departments, I have been looking for answers to my career development.
So far, I have divided my career into three phases: excelling in a skill, doing things independently, and finding a calling.
One skill is divided into: in-stack technology, out-of-stack technology, engineering experience, leading people to do things, and industry influence.
The first stage: a skill
In-stack technology
In-stack technology refers to your professional field technology. For the front-end, it is the basics such as js that we are familiar with. We can deeply understand the host environment in which our program runs - browser or NODE, and we can understand everything that happens when v8 is running. .
The front-end has no secrets, and all accessible pages are similar to open source, so the standard for checking the technology in the stack is to see if you can finally form a technical "eyeball" - seeing any front-end product, you have the confidence to see through it. The technology in the stack is the foundation of a safe life. Don't "change directions" easily.
Never give up your skills as a front-end. After meeting some front-end students who have been working for a few years, they are more familiar with the front-end, and consider transferring to other positions to do audio and video technology, or to do products and operations with a larger span. But I want to say that from the moment you change careers, turn the field you want to change into your new "in-stack technology", and then go through the process of technology precipitation again, and a few years have passed.
Front-end is a field that can be persisted for a long time. Now new software ecosystems, such as web3 and Ethereum, will first target JS developers. Because there is a huge developer group and the tool chain is relatively complete, they will persist in front-end work for a long time. None will be "out of date" for the foreseeable future.
Off-Stack Technology
Off-stack technology refers to the upstream and downstream of the in-stack technology, and related professional knowledge outside the field, including but not limited to server technology, operation and maintenance, CDN, testing, and even UI design, product design, etc. Expand the surrounding areas of the technology in your stack and fully understand where your work is in the overall technology development system. Invest more energy in your spare time, continuously incorporate other off-stack technologies into your knowledge system, and build off-stack capabilities.
If you want to do in-depth front-end, it often involves knowledge of server, network, machine learning, user experience, etc. Without sufficient accumulation of off-stack technology, it is difficult for you to gain enough voice for your team.
Engineering experience
Engineering experience refers to the "solution" for building a professional technical system. In layman's terms, it is the methodology of doing things, mastering the process of building a professional technical system in stages from 0 to 1, 1 to 60, or even 60 to 100.
Engineering experience involves technology selection, architecture design, performance optimization, CI/CD, log monitoring, system testing, etc. These are methodologies related to engineering.
Many students will say that they don’t have time to study new technologies, so they ask themselves why they don’t strive for the implementation of new technologies in their own business.
Many engineers do not have the ability to summarize their engineering experience, especially after many years of doing business, they feel that their technical ability has been going backwards. What makes you more professionally valuable than others is your domain engineering experience. No matter how many articles you've read, you can't call it "mastery" if you don't actually practice it. Therefore, I suggest that in order to master enough engineering experience, you need to strive for more practical opportunities in the business.
lead people to do things
The first three items of leading people to do things are in-depth requirements in terms of personal professional skills, and leading people to do things is a requirement for teamwork ability. When I first brought my junior and junior brothers, I often had this feeling: I needed to communicate my needs multiple times and focus on technical solutions. I can write the code in the time it takes me to communicate with him.
Leading people to do things is to pass on the things that you are good at and the way of thinking that you have accumulated to others, so as to achieve a productivity improvement of 1+1>2, so that the output of the entire team is higher than that of yourself.
At this stage, everyone should pay special attention to the difference between "tube" and "belt". In my humble opinion: the so-called "pipe" means that I don't know a certain field, but I know you know, so I arrange for you to do it; and "belt" means "I know this field very well, I know you don't, I'll teach you to do better." It's a bit of teaching them how to fish and succeeding others. Leading a person or leading a combat-effective team is a manifestation of maturity in being a person and doing things.
In the past two years, I have also been thinking about how to inspire the abilities of others. I think of the help my bosses and my 1v1 colleagues helped me with, they were all very good at guiding me with rhetorical questions. The depth of questioning can especially reflect a person's ability level. Any declarative sentence used to make a request can be converted into a question sentence, and constraints on the results can be implanted in the process of inspiring new students.
When you ask someone to do A, he proposes option B. Don't forcibly reverse the other party's thinking and propose A, because for newcomers, it may not be possible to understand plan A in one step. Under the constraints of his ability, he can only think of B. Try to convert the difference between A and B into a question. You ask him how to solve this problem, how to solve that problem, and until he forms A, he will do things with thinking. If there is no such process, there is no process for his thinking to evolve, although he receives the instruction of A, but he does not understand, he will do it in other ways, and finally get a C, and then you reconstruct it again and fall into a Strange circles cannot extricate themselves. This is my misunderstanding in the past, so I now pay special attention to the art of asking questions. But the premise of everything is: you need to have a good understanding of things. According to Zhang Yiming's point of view: the cognition of a thing determines the height of a thing.
Industry voice
If you have done very well in the front, then publish your work experience summary, communicate with others, collide with ideas, see higher peaks, and then revise your own ideas to improve day by day, which is a way to go further Way.
Sometimes you need to put your thoughts on the industry level to verify, everyone is really good. If others do not recognize your set of ideas, you can basically judge that you have not reached a higher level.
The purpose of external sharing is not to show quali, but to listen to the opinions of others and achieve self-growth. Never give up a skill, there is no so-called career change or transformation, always stick to your original field, expand your extension, and finally achieve a more comprehensive ability. Persistence is a way to achieve the highest ROI.
Stage 2: Doing things independently
The second stage is to do things independently, which is also my proposition for the past two years. In the process of my constant trial and error, I divided him into: independent delivery, independent leadership, independent leadership of the team, independent business, independent survival. Independence is not the same as being alone. Independence means that with the resources provided by the company today, you can complete the projects given to you by the company and achieve good results, commonly known as "leading a team".
Independent delivery
Independent delivery refers to giving you a project that can be completed and launched by yourself, without letting others wipe your ass. More emphasis is placed on the overall project management ability and the ability to obtain results.
Independent lead / lead team
Entering the stage of leading people/teams independently, you should pay more attention to the atmosphere and work efficiency of the entire team, and use your engineering experience to lead the team to produce high-efficiency and high-quality results, and achieve 1+1>2. Do a good job of two big pictures of the team, business big picture & technology big picture. Let the students in the team know the main line of their own development. The work is happy and the team stability is high.
Independent business & independent survival
After the team is stable, start to pay attention to the business and the development of the industry, understand your users, who they are, where they are, why they use your products, and guide the team in the next production and research direction. The highest state is to lead a group of people to support themselves and survive independently. At least you must have a business vision, know the business gameplay of your industry, and be able to play well. If you can solve this problem well, I believe that everyone is doing well.
Each stage of independent work is a relatively large leap, which requires big changes in thinking and various soft qualities. Regardless of the identity of a technical person, several stages of independent work are also a process of gradual maturity of a person . If you have solid skills and can survive independently, I superficially think that the crisis of programmer 35 should no longer exist.
Stage 3: Finding a Mission
Find a mission and realize self-worth. Entrepreneurship or job hopping? To live or to work? How to balance? I am still in the fog, still exploring, leaving an open question for interested students to discuss.
Finally, Maupassant's words end: "Life can't be as good as you think, but it won't be as bad as you think. I feel that people are more fragile and strong than they can imagine. Sometimes, I may be too fragile. Tears flowed down my face when I spoke, and sometimes I found myself gritting my teeth and walking a long way." Working here is what it is, but I firmly believe that tomorrow will be better.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。