Occasionally I saw an article, which should be several years ago, mainly about the career development of front-end engineers. After reading it, I felt a lot and sorted it out to share it with you

The article citations

The opening

Hello everyone, MY name is Yunlong. I have been in Shanghai for two years since March 2016, when I participated in the start-up project of National Live Broadcast. I’ve always wanted to find a time to share a little bit about my own growth story with other developers. By analyzing others, we can also sum up ourselves. I’m afraid to talk about this topic as success, but the CTO position is more or less “rotten” now, not a success, just for your reference.

I graduated in 2010 and joined Baidu right after graduation. The same people who joined baidu when I graduated later set up a wechat group. Eight years later, we still chat and share our experiences together. I found it can be used as a reference — eight years ago, a group of people with the same ability and starting point made different choices in eight years and finally achieved different lives. Some are entrepreneurs, some are executives in big companies, and some are free to speculate on bitcoin wealth. Looking at their choices will give you some insight into how I would be if I had chosen that. I am now eight years into my career and would like to share my experience with you as an example.

Before we start, let’s ask those of you who have worked for less than 3 years to raise your hand… Emmm, the rest are more than three years old? I looked at it and it was about 50/50.

I interviewed many front-end engineers and found that after 3-4 years of work, they would encounter a period of confusion. When I asked them what they wanted to do next, most of them answered that they wanted to do an open source project and spread the word to become front-end “Internet celebrities”, but they often gave little consideration to their long-term career development plans.

Today, I hope to completely unpack my work experience and present it to you as a case to answer the questions about career development.

Programmer’s midlife crisis.

I am 33 years old, and although I have skills, I inevitably have some anxiety, which comes from questioning my ability. In those years of working in a big company, 80% of my achievements are attributed to the platform, which has a sound system, excellent colleagues, a perfect rank system and favorable salary. What would the company think if you worked on a small piece of work in such a comfortable environment and one day found out that your 20% could be replaced? You have a lot of stock, you have a lot of salary, you have a lot of cost to the company, you have a kind of fungible pressure driven by new people, and I had that kind of anxiety when I was about 28, 29 years old and my skill level was still rising.

During my years in the big company, I felt like an undergrad. I never got out of the “student spirit” in everything I said and did. Secondly, the technology is being updated and iterated very quickly, especially in the front end, where you’ll find very little that really settles down. Anxiety and the third point is about how to treat 35 employees, when I was in baidu has a very strong engineer team, his technical rank high in 2010, but the technology still stays in an era of thinking, with the development of technology, gradually can’t guide the team progress, the process is more difficult, touches a lot to me. And finally, as you get older, choices become more expensive, you have a family, and even if the company decides you’re worthless, you can’t leave, you can’t move. That got me thinking.

We do technology, especially the front end, and a lot of times when we make products, we see UI design, interaction design, product design, even if we make products that are very successful, what’s the success? Maybe it’s a beautiful UI design, maybe it’s an accurate recommendation algorithm, but what does the output of the front end bring to the product? And how deep does the front-end technology go? Do for a long time technology must be transformed management? I didn’t have the answers to those questions. I could keep writing pages, but wouldn’t it be the same for 5, 6, 10 years? What can I do now? What do I want to do in the future?

With these questions in mind, I spent 8 years traveling to 3 cities, from Beijing, to Guangzhou, to Shanghai, to seek answers on my career path.

In the first three years, I was in Beijing. At that time, I had just graduated and could not decide my future. It was a bit of luck to join Baidu. It took some effort to prepare a good resume, which helped me a lot in my job search. When I was in school, I was basically familiar with the front end, and MY resume is very beautiful. A resume is a good way to look when you first choose a job after graduation. I reflected my front-end orientation and in-depth learning on my resume. At that time, I had gained some advantages in the recruitment of large companies, and I was honored to be accepted by Baidu.

During the three years in Baidu, I mainly focused on technology. At that time, baidu has a large front team, more than one hundred people, including baidu news, baidu video, baidu knows, baidu encyclopedia, etc., the whole team in order to solve the problem of development efficiency, decided to set up a horizontal support team, do a build tool, is the fis, I was still in the CMS department (an internal content management systems), Offer to participate in the FIS project. I learned a lot of server-side technology, including operation and maintenance knowledge during the process of doing FIS. After working in Baidu for 3 years, I began to think about breaking away from 80% of the support of the platform. I thought UC was a medium-sized start-up company at that time. I stayed there for more than 2 years, and began to focus on the front end team building at that time. I re-practiced the technical concepts I learned in Baidu in UC with NodeJS, and then guided the front-end team to improve their overall technical level.

After working in UC in Guangzhou for 2 years, I came to Shanghai to participate in the project of national live broadcast. To do a live broadcast of the whole process of experienced more bumpy, I began to take over the most, only two national recruitment research and development of students, after more than two years of time, forming a team of nearly one hundred people, including the service side, front, the client, test, and operations, decoding, departments and so on big data, feel the growth of these two years in Shanghai, That’s more than the previous five years in big companies combined.

In the past, there has been a path from large companies to medium-sized companies to startups. Focus on things from technology to team to business. Today, I would like to share with you my summary of the growth process, when you work for a certain number of years later, when you encounter confusion, you can take this model for reference, also a direction. Of course, this is not the only way to grow.

I’ve divided my entire career into three phases:

  • The first stage, skills. It’s about working on your expertise, your expertise.
  • Stage two: do things on your own. When you reach a certain level of skill, you need to start thinking about how to do things on your own.
  • Stage three: Having a career. Choose a mission and lead your team to achieve it.

There are basically three stages, which I will break down one by one:

Stage 1: Skills.

I divide it into five levels: in-stack technology, off-stack technology, engineering experience, working with people, and industry voice.

The so-called stack technology refers to your field of expertise technology, for front-end engineers, it is those we are familiar with JS, CSS, HTML and other basic, in-depth understanding of the host environment our program runs – the browser, can master and flexibly manipulate everything that happens in the browser. There are no secrets to the front end, and all accessible pages are close to open source, so the test of in-stack technology is whether you can end up with a technical “writing-wheel eye” — the confidence to see that any front end product can be replicated independently and see into it.

Stack technology is the foundation of life, do not easily “change direction”.

Although I am now doing technical management, I will never give up the root of my expertise as a front end. Some front-end students work for a few years after the front-end do more familiar, consider switching to other positions. But I want to say, when you turned the moment, just turn to the field into new technology “inside” stack, you then need to go again technology precipitation process, a few years in a hurry, the past again, so don’t easily “change direction”, the front end is definitely to be able to adhere to the field, for a long time now new software ecosystem, whether it is a small program, application, and even block chain, Will be aimed at JS developers first, because there is a large developer group, tool chain is relatively perfect, so long-term adhere to the front-end work, in the foreseeable future will not be “obsolete”.

Off-stack technology refers to the upstream and downstream of in-stack technology and relevant professional knowledge outside the field, including but not limited to server-side technology, operation and maintenance, CDN, testing, even UI design, product design, etc. Expand the surrounding fields of your in-stack technology and fully understand how your work is in the whole technology research and development system. Invest more energy in your spare time, add other off-stack technologies to your knowledge system, and build off-stack capabilities. If the front end wants to go deep, it often involves knowledge such as cache, template rendering, and user experience. Without considerable off-stack technology accumulation, it is difficult for you to get enough voice for your team.

Personally, I highly advocate the concept of “big front end”, which is similar to “full stack engineer”, but it does not require a person to be a comprehensive expert. Instead, it requires a person to be rooted in the former end and carry out off-stack technology learning from the upstream and downstream, so that he can be specialized and multi-functional. I was able to play the role of CTO in The National People’s Congress because of my experience in off-stack technology accumulated in Baidu and UC in my early years, and I understood the operation and peacekeeping architecture system of most product lines of the two companies.

Third, engineering experience. It refers to the construction of professional technical system “solution”, popularly speaking, is to do things “routine”, master from 0 to 1,1 to 60, even 60 to 100 stages of the construction of professional technical system process. Engineering experience involves technology selection, architecture design, performance optimization, CI/CD, log monitoring, system testing, etc. These are engineering related methodologies.

A lot of engineers don’t have the ability to summarize their engineering experience. I often ask in interviews, how do you see the difference between two, three, four years of work and just graduated students? Interviewees say they have mastered certain skills, but in fact, they only talk about some knowledge points. “Tonight and tomorrow” is not technology. What makes you more valuable than others is your field engineering experience. It doesn’t matter how many articles you read. You can’t call it “mastering” until you’ve actually practiced it. Therefore, I suggest that if you want to master enough rich engineering experience, you need to strive for more practical opportunities in the business.

Engineering experience is the watershed of skill level.

Fourth, lead people to do things. The first three are the in-depth requirements of personal professional skills, while leading people to work is the requirement of teamwork. I did not understand a thing before, that is, I have done a good job, but a new person can not get my requirements, what should I do? When I’m in a hurry, I say don’t do it, I’ll do it. What’s more, when I worked in Baidu in the early years, some of my colleagues worked so hard to write good code during the day, and I directly reconstructed it after COdereview in the evening. After a few days, the classmate left the company. To lead people to do things is to pass on what they are good at and good habits to others, so as to achieve 1+1>2 productivity improvement and make the output of the whole team higher than their own. In addition, we should pay special attention to the difference between “tube” and “belt” at this stage. “Guan” means “I don’t know a certain area, but I know you do, so you must do it well for me”, while “Dai” means “I know this area very well, I know you don’t, so I will teach you to do it better”. Give it a little fish, willing to be a ladder, achievement of others. Lead a good person or a team with fighting ability, is a mature performance.

People who are obsessed with technical cleanliness tend to lack patience and lead people to extremes. How to guide new people to grow up and inspire others’ ability is also what I want to seek in my career development. A particularly good approach to management is to ask heuristic questions. The depth of questioning is particularly indicative of a person’s level of competence, and any declarative sentence used to make a request can be turned into a question, placing constraints on the outcome of the heuristic process. For example, if I asked my boss for a raise, I would probably be given the runaround if I simply said, “Boss, I want a raise.” Instead, try asking, “Boss, how are things at work?” It might be a good idea to inspire your boss to think about your work and lead him to the conclusion that you should be rewarded. When you ask A man to do A, he comes up with plan B. You should not forcibly reverse the other party’s thinking and propose A, because for A newcomer, it may be impossible to understand plan A in one step, and he can only think of B under the constraint of his ability. When you lead A person, you should try to convert the differences between A and B into questions. You can ask him how to solve this problem and that problem, and keep asking him to form A. He will do things with thinking. If there is no this process, let him thinking process of evolution, although he received A directive, but he did not understand, he can use other ways to make to, finally come out A C, and then you were reconstructed again, into A circle, this is my mistake, so I especially pay attention to the art of asking questions now.

Fifth, the industry has a voice. If you’re doing really well, you’re basically at the point where you can speak out. Publish your work experience, communicate with others, bump ideas, see higher peaks, and then revise your ideas, and improve them day by day, is a way to go further. Sometimes really want to put their own ideas into the level of the industry to verify it, since hi toxic, everyone is really good. If other people don’t approve of your way of thinking, your idea, you can basically decide that you’re not at a higher level. However, to gain recognition through the voice of the industry, you often need an opportunity, which can not be asked for. If you get it, I will be lucky, and if you lose it, it will depend on the platform of your company. The fastest growing part of my technical reputation was during my years in Baidu. It happened to be a big platform and made some achievements, but small start-up companies came out to share, and basically no one paid attention to you.

Never give up a skill, there is no so-called change or transformation, always stick to your original field, expand your reach, and finally achieve a more comprehensive ability, so a skill is worth your long-term belief.

Stage two: Work independently.

There are several levels to working independently:

  • Do it yourself and don’t let anyone else wipe your ass.
  • Independent coach: Pay attention to the level of questioning and help him evolve his ideas.
  • Lead the team independently: at this stage, you should pay more attention to the atmosphere and work efficiency of the whole team, and use your skilled engineering experience to lead the team to produce high quality and efficient results, so as to achieve 1+1>2.
  • Independent business: After the team is stable, start to pay attention to the business and industry development, understand your users, who they are, where they are, why they use your products, and guide the next production and research direction for the team.
  • Independent survival: the highest level of independent work, is able to lead a group of people to support themselves, independent survival. There are only a limited number of business models on the Internet. Knowing how to play and finding the right model to be good at to feed a group of small partners means a bigger transformation.
  • Each stage of independent work is a big leap, requiring great changes in thinking and various soft qualities. Apart from the identity of a technical person, several stages of independent work are also a process of gradual maturity, which is the result I have been exploring for more than two years.

I talked about the midlife crisis before. In my opinion, the last stage of independent work, independent survival, is the ultimate answer to the midlife crisis.

When I look at myself, I have basically achieved my skills and have certain influence in the industry. Independent survival is still a learning process. Career last paragraph, is to have a career, this part for me is also a fog, can only faintly see, at this stage, you already have a team, can the independent existence, the next need to find a team mission, if I said today, I want to do a live one of the most profitable, estimate the audience a lot of people think no one is willing to do with me, However, if I say THAT I want to do the most popular live broadcast among young people, many people may be tempted, which is the power of the sense of mission. Mission can gather talents, and there needs to be a perfect business model behind the mission. Alibaba’s corporate mission is to “so” there is no difficult to do business, they always stick to the enterprise mission, the alibaba at the beginning, do taobao, found again do want want to communicate with customers, later found transactions need to solve the problem of pay, and do the pay treasure, then with the logistics, all the big strategic direction all around their business mission.

The above is my personal growth model. It takes five years to develop a skill and three years to work independently. It is still unknown when I will have a career at last.

The above model is shared for your reference, but what kind of path you take depends on what kind of person you want to be.

There are still some questions, I guess today, may be a lot of people care about these questions, I myself in the past few years with the question of many cities, do a lot of things, those questions that have troubled me have been gradually answered.

What should I learn about getting started? Now front-end domain knowledge is very complex, all kinds of framework, for the front-end, it is the best era, but for newcomers, it is also the worst era, do not know where to start. I particularly recommend the Google DevTools document (need to go over the wall), it includes a lot of front-end basic knowledge, through learning developer tools, at the same time touch the front-end basic knowledge, browser operation principle, and improve the efficiency of development, debugging, is a good shortcut to start, can consolidate the foundation.

The second thing is what does a CTO do? One is recruitment, recruitment interview is what I usually do, we have a special HR team, I will give my account to the personnel of the students to log in, hook up with others, there are some professional high-end talents, I will always keep in touch, Inch Zhi teacher is so I hook up with (: escape. Followed by consideration of the technical team organizational structure, I design a company to refer to the experience of the past, the architecture of the development of a company you want to do different in different stages of adjustment, such as large data, operations team, early I will be unified management, with the development of the company, will consider the characteristics of independence do things, don’t be interference of the business, this is the organizational structure. Besides, I often chat with the CEO, take a walk on the lake, and break down his strategic goals into technical goals. The other is the communication and cooperation with cooperative manufacturers. A start-up company needs to rely on various forces. I can seek technical help from other companies in the industry by replacing commercial resources to speed up production and research.

How do you determine a person’s salary, bonus, options? Salary is a measure of what a person can bring in the future. It is the market value. No matter how much a person has done in the company, if he has reached this level, he will be paid. A bonus is a reward for performance, a measure of the value of what one has done in the past; And the last one is options, if this person and the company is promising, you can exchange some of your salary bonus for options to reduce the cost of the company. This is the relationship between the three. A full understanding of the relationship between salary, bonus and options is a CTO’s concern, which helps to build a good team atmosphere.

How to build a good team working atmosphere? There are a lot of things you can do to build a good team atmosphere. As a rational manager, I am not good at maintaining personal relationships, such as eating meals every day. I prefer to build a fair environment and lead a good atmosphere through perfect mechanisms and norms. In addition, the basis of a good atmosphere depends on the business. If the business is not up, basically what you do is a bad atmosphere.

Is it technology to do not go down to turn management? I think there is no such thing as transfer to management. For me, this process is just a process of finding the ability to work independently and finally realizing my dream with a sense of mission.

Are technical talents not suitable for management? I used to have such doubts. Later, I led a team and experienced some things. Gradually, I realized that everyone has his or her own management style, and there is no question whether it is suitable or not. Isn’t there a “five style management style” in management? Tiger, koala, peacock, owl, chameleon, none of these five is better or worse, but different styles will bring different team atmosphere. I guess a lot of tech students are tigers when they start leading teams.

Another question is whether new graduates should work for big companies or startups. I think it is necessary to experience A big company, because when you go to A big company, you will learn “good is good”. I can reach this position partly thanks to my working experience in B and A, and I roughly know how A team develops from 1 to 60 and then to 100. Experience in a large company, know what good is good, have enough vision and height to guide the team to go on.

This is one of the things I’ve found when starting a business. More than two years ago, a friend of mine asked me one day, “Yunlong, how much does it cost me to build a platform like Yiqixiu?” I told him that I knew a friend who needed a team of 20 or 30 people for two or three months, and it might cost two or three million dollars. He said the cost was so high that he ignored me. After two days to come to me, said to fix, I was very surprised, asked him how to solve, he said in taobao to buy a set of code, more than 100 yuan, but also with a large number of templates. It gave me a great shock, when you do technical decisions, especially start-ups, be sure to consider what industry can use directly, use company resources replacement, business procurement, bring them here to use, first finished group team to learn later, after you have learn form their own a set of things, is such a process.

The last question is how to demonstrate the value of the technical team. If a company is doing well in product design and operation, how can we know that technology is doing well? This is a key point that technology managers should be very clear about, so that the team can have a direction to follow.

Here I have summarized three main points: technical product quality, development efficiency and experiential performance.

There is a cartoon, when online services all normal, the boss back to “all is calm, I don’t know what I’m going to hire this group of research and development”, and when online an accident, the boss will want to “all day out of the question, I don’t know what to hire you this group of research and development”, this kind of phenomenon is very common, technical quality of the products is the foundation and stability trump all other concerns. The second thing that can reflect the technical value is to improve the development efficiency on the basis of stability, fast iteration, fast online, small steps and fast running. But to do the above two points, just basically meet the business requirements, not to be criticized, but to further reflect the value of technology, it is necessary to make an issue of performance.

The right picture is a concept proposed by Amazon. Every 0.1 second decrease in the opening speed of a website can increase the revenue of the website by 1%. Excellent teams need to work hard on the core performance indicators of the business to break the opening speed of the second level.

The last

Last but not least, I’d like to thank two people I’ve met in my career. The first one was zhu Xu, who was my first tutor when I just started working in Baidu. He was very indifferent to people. He worked in Baidu for ten years and was very low-key and practical. The second one is my boss in UC. After I left UC, we were both teachers and friends, giving me a lot of enlightenment on management, guiding direction and giving answers when I was leading people to do things in the most confused period.

Finally, thank you very much!