From time to time, some developers would ask me some career development questions, such as: Should I change jobs? How to break the professional ceiling? How do YOU become an architect? And so on. These questions, to put it bluntly, are all about how to choose a career path. So let’s talk about the career paths that are available, and remember that there isn’t just one path for everyone.

1. Development in depth

The so-called depth is the vertical development of technical depth, whether Android development, iOS development, front-end development, or back-end development, according to the technical ability can be divided into junior, senior, senior, technical expert/architect, senior technical expert/senior architect, chief technical expert/chief architect and other levels. At Alibaba, technical Specialist/Architect is usually P7, and Senior Technical Specialist/Senior Architect is usually P8. Android has Zhu Kai, Ren Yugang, Guo Lin, etc., iOS has Tang Qiao, Wang Wei (cat god), etc., ruan Yifeng, You Yuxi, etc., at the front end of the cattle are more, different segments of the field have different cattle.

There is no such thing as a career ceiling, a midlife crisis, a layoff or a $1 million annual salary. These diverse talents prove that it is possible to develop remarkable career paths even if you specialize in a specific field.

Deep development is also the preferred way for most program apes after graduation, but the deeper it will be more difficult, just like climbing, not everyone can climb the top of the mountain, can climb the top of Mount Everest and how many people?

In order to develop well in depth, especially to reach the technical expert level or above, there are several basic skills to develop:

  1. A solid technical foundation is a basic skill. Take running a marathon. If you don’t have enough stamina, muscle, lung capacity, any of those things, it’s hard to finish a marathon. The foundation of technology is nothing more than data structure, algorithm, language foundation, programming ideas and so on.
  2. To master the ability of efficient learning, improve the speed of technological progress. Why do programmers have midlife crises? Why older people are more likely to be laid off? Why is it harder to find a new job with more experience? If you have two people with the same technical skills (and the same salary), one with three years of experience and the other with 10 years of experience, which one do you think the interviewer would prefer to keep?
  3. We should develop the habit of “knowing what it is and exploring why it is”. Good programmers don’t stop at knowing how a technology works, they explore the rationale behind it. For example, many people use HashMap, but will they study the data structure and implementation principles behind HashMap? For example, we all know about MVC/MVP/MVVM, but have we delved into the pros and cons of each and the scenarios that apply?

In fact, no matter which path you choose, the above three basic skills must be developed.

A good programmer moves up a level every 2-3 years, and it takes less than 10 years to reach the technical expert/architect level, which I am currently at. But good programmers don’t tend to move in just one direction.

2. Horizontal expansion

The deep development is the deep cultivation in the technical depth of a particular field, while the horizontal expansion is to open up other fields and broaden their technical capabilities in breadth. For example, an Android developer can expand into iOS development, get into front-end development, and get into Java back-end development.

What are the benefits of horizontal outreach? We can look at the reverse, if only focus on the depth of development in one direction, what are the disadvantages? For the first risk, see Symbian. While Android and iOS may not suffer the same fate as Symbian in the short to medium term, the future is anyone’s guess. Also, as cross-platform frameworks such as Flutter improve and optimize, will the path to native development become narrower and narrower? The same goes for Java. With the development of blockchain technology and artificial intelligence, more and more companies and teams are choosing Golang and Python for development in these two fields. Will the Java ecosystem slowly decline?

As the saying goes, don’t put all your eggs in one basket, so it’s best not to focus on developing a single technology area.

Developers in each specific field can have different options for horizontal expansion. To be specific, each person should take their specific abilities, interests, long-term career planning into comprehensive consideration, and finally choose a suitable development path. Here are some suggestions for your reference only. If you are doing Android/iOS/Web front-end development, in addition to continuing to develop in depth in the original technology field, HORIZONTALLY I recommend the first Flutter to develop towards the big front-end direction, which is the inevitable trend of the front-end direction. As the second choice for Android personnel, I suggest that they choose to expand the Java back end and develop towards the direction of the full Java stack. The way to the back end will be much wider than that. Gradually, they can develop into architects and senior architects who understand both the front end and the back end, which will have more advantages than architects who only understand the back end. My second choice for iOS and Web developers is to start with Golang or Python. Golang, in particular, has the most potential to take Java’s lead in the future.

In the long run, horizontal development may not only expand in one direction, but gradually expand in multiple directions. However, it is not recommended to expand in multiple directions at the same time at the beginning. It is recommended to expand the technical field in the next direction after at least reaching the advanced or senior level in the second field. In my own case, I started out as a Java backend, then gradually expanded to Android, iOS, and Golang over the last year or so.

3. Management direction

Whether it is the development of depth, or horizontal expansion, are just constantly improving technology. Some of my former colleagues are tech geeks who are obsessive about technology and don’t enjoy or communicate well enough to be good at management. But many programmers prefer to move slowly into management positions, working their way up from supervisor to manager to director to CTO. Becoming a CTO, the top technical leader of a company, is the ultimate goal for most technical people on their career path.

However, the promotion of management is much more difficult than the promotion of technology, especially to become a CTO, except for some special cases, generally need to be familiar with the full stack technology, need to master the architecture design, need to have a global thinking, need to understand the business model, etc. Management is different from technology. In addition to managing teams, we also need to manage projects. In fact, we need to manage people and things. Management, the core is to manage people; The core of management is to do the right thing.

Most programmers work at senior development levels for four to six years before they have a chance to step into a management role as a technical director or manager. Before that, you may also take on the role of a group leader, mentoring some junior and senior programmers, from which you can practice management skills. In Ali, the supervisor is M1, corresponding to P6 of the technical post, the manager is M2, corresponding to P7, and M3 is the senior manager, M4 is the director.

Director level can be achieved in every vertical field, such as Android, and the highest level can also be achieved in Android. However, only large companies have such director position in the subdivided field, and there is basically no director position in small and medium-sized enterprises. The director of small and medium-sized enterprises generally refers to the technical director of the back-end. There are a lot of small startups where there’s only one CTO in the whole company, maybe a CTO or a CTO, but there’s no other CTO in the whole company.

If you want to be promoted to a manager, you need to be an outstanding programmer first. Otherwise, why should the leader promote you out of all the programmers? Low-level management, in fact, is more technical, but also the point of management responsibilities. Middle management is usually a 50-50 mix of technology and management. Senior management, more partial management, the technical requirements mainly lie in the breadth and overall view, the technical depth is not much requirements.

4. Transformation products

Transition from technology development to product design, take the route of product manager, is also the choice of some people. One of my friends was an iOS developer who became a product manager. Another Android developer has made the switch to products. Both friends are now self-employed.

Even Mr Ma has always positioned himself as a product manager. We all know that Ma Huateng, Zhang Xiaolong, Zhang Yiming, are the top product managers in China, but they are actually from the program ape. In fact, a lot of program monkey business leaders, although not hung product manager post, but are “product manager”. Therefore, do not narrowly define product manager as a specific position, no matter what position, as long as product thinking, leading or participating in product design, product decision-making, can be called product manager. For example, I work as a technical leader in the company, but I also position myself as a product manager, because the products in the company are mainly led by me, even though I don’t hold the actual product position.

I have been advocating that every technical personnel should learn how to make products and cultivate product thinking. It is not necessary to make products for transformation, but technical personnel who understand products are very welcome.

To learn how to build products, I recommend reading several books: Elements of User Experience, Revelation: Building Products that Users Love, Lean Entrepreneurship, and Tencent Method.

If it is to transition to specific product positions, it also needs to learn needs analysis, prototype design and so on.

5. Start a side business

I know some big guys, through the development of the sideline, when the stable income of the sideline exceeds the main business, resolutely resign, devoted to the sideline, let people envy unceasingly.

Most of them will choose to do “we media”. They can attract fans by writing articles, realize knowledge realization through charging community, paid content or writing books. Once realizing stable realization, they can generate compound interest growth. It is a long way to do “we media”. High-quality content needs to be output, and it may be difficult to realize for a long time. However, once certain popularity and influence are formed, various opportunities for promotion will beckon to you, for example, someone invites you to write a book, someone invites you to record a course, someone recommends you a good job, etc. The value of “we media” lies not only in knowledge realization, but also in many hidden values.

Many people also take on outsourcing projects from time to time, either doing some development work on their own or working with a team of several partners to complete the project. By outsourcing single income is relatively high some, but not always have outsourced projects for a long time to do, and more difficult to achieve, compound interest will occupy their leisure time, also often the problem of balance payment in arrears, tired and unstable, so most people are only occasionally after two single back to do it, or only some short-term, easy project. For people who receive projects for a long time, more cases are done to do their own outsourcing companies.

Others will develop their own small products, such as simple apps or websites, and then offer a fee service or sell the source code directly. For example, a friend of mine developed a recruitment website for foreigners in his spare time, charging companies for services. And then there’s another friend who will develop some blockchain games and sell them to people who want them.

Some of them also offer consulting services to companies or individuals, such as helping with architecture, solving technical problems, or giving career advice. There is a platform called Xing Xing, through which many experts provide consulting services.

Moreover, social e-commerce is very popular these days, so many people also join in and sell goods in the moments of friends and wechat groups.

Therefore, there are many options to develop sideline business, but I prefer to do those sideline business that can realize compound interest growth, that is, to make the time I invest can sell more, such as doing we media, selling courses, selling services, developing their own products, etc.

Finally, to develop a side business, I recommend two books: Knowledge Realization co-authored by Xiao Qiushui and a Fierce Cat, and The Road to Making Money from a Side business by An Xiaohui.

6. Quit therapy for a career

The last way, that is to give up the treatment to other businesses, such as opening a small restaurant, or open a cafe. China is the world’s largest consumer market, and with more and more people entering the middle class, there are plenty of opportunities to make money. Opportunities abound for consumption upgrading, infant food and clothing, and education.

I still have a friend to become insurance salesman from program ape, actually, also more and more people begin to notice to buy insurance now, basically still buy medical treatment insurance for family and oneself, especially for the child, many people buy all sorts of insurance to baby from the child birth.

I also have friends who turn to stock traders. Since last year, more money has been transferred from real estate to the stock market, and policies have been strongly supportive of the stock market.

Do you still remember the Peking University student who sold pork? Known as the “butcher of Peking University”, his net worth has already exceeded 100 million. The “No. 1 Local pig” founded by Chen Sheng, a fellow student at Peking University, has been valued at more than 4 billion yuan with an annual turnover of 1.8 billion yuan. Another, Liu Haoming of Minzu University of China, earns 130,000 yuan a month selling jianbing. And Songko Braised prawn, whose senior management team is 80% Huawei, including founder Xu Song.

I hope you get some inspiration from these cases.