For Android development to reach the level of Ali P7, it is harder than you can imagine. Why can someone enter a big factory? I finally became what others said

Write in front

Android development was very popular in the past few years. After the market is saturated, every Android programmer wants to advance, or even become an architect, but during this period, the hard work and effort required far exceeds our imagination.

In the past few years, I have investigated the Android engineers I have contacted: 97% of Android development technicians will face these dilemmas (maybe your confusion)

Main dilemma

  1. Outsourcing company/small team technology obstruction : If you work in a small software company or an outsourcing company for a long time, it is difficult to have the opportunity to experience the development of a complete and large-scale project. The overall technical vision will be relatively narrow, resulting in long-term salary stagnation;
  1. Repeat the same coding work : If you repeat the same coding work for a long time, the technical requirements of the project are those that will not let you develop according to your expectations. As a result, your own abilities will not be able to break through for a long time, and it is even more difficult for companies to accept new ones. technology;

3. Poor self-control and no time to learn : working during the day and working overtime at night, you can only rely on fragmented time to learn. If the self-control is poor, basically you will be fishing for three days and drying the net for two days, and you will not be able to learn systematically and settle down. Technical strength;

  1. The current resume is difficult to enter a big factory : the existing technical ability and project experience cannot pass the initial screening of the big factory's resume, let alone get a high-paying offer from the big factory.

These problems will become a stumbling block to your career development. If you don't want to solve them, anxiety may be like a boulder, weighing on you. Many capability system of job seekers and employment needs of businesses differ materially.

I believe that most of the small partners engaged in Android development are definitely not holding the grand goal of changing the world at the beginning. To put it bluntly, they make a lot of money. In the future, the technology is awesome, the annual salary is millions, and they will reach the pinnacle of life and marry Bai Fumei~

But after a year of work, you will find that your focus is to find various components and frameworks, drag and drop, and change the style . After a problem occurs in extreme cases (such as a crash on some models and slow loading of pictures), I don’t know how to solve it!

The reasons for this situation are: I don’t have enough awareness, the situation is limited, and there is no complete plan for upward improvement .


1. Career Development Plan

From the perspective of own planning, the technological advancement is divided into the following stages:

1. Do a good job of the business requirements . This is the ability that a junior programmer should have.

2. solve technical problems in extreme situations, such as performance optimization, OOM and so on . Companies of a slightly larger scale will definitely encounter this kind of problem. For example, the app mentioned above crashes on some models and the page cannot be loaded. It's just that most programmers find it difficult to reproduce, or they ignore it because of a small probability event.
In the process of ignoring these issues, it also gave up the possibility of further improvement . There are also some programmers who have seen these problems, but have never known how to solve them, because these problems are basically caused by the underlying framework, and usually only focus on the upper-level business logic code, so they have not studied the underlying ones. The principle leads to the lack of energy but the heart.

3. Make a fuss about the development framework and efficiency . For example, many programmers say that their energy is wasted in the tearing of the product, but have you ever thought that you can save yourself from the complicated and non-technical work through technical means? For example, whether it is possible to write the code only once, or to change a configuration parameter to be able to run on different platforms. A higher requirement is whether these solutions can be made into general frameworks or products.

In fact, most Android programmers who have not changed careers hope to continue to learn and improve in this area. In the stages listed above, we must first force ourselves to persecute ourselves constantly from the way of thinking, and don't be lazy. Secondly, if we want to develop in accordance with the above-mentioned stages, we also need to implement it and learn continuously in the specific technical system.

for example:

For OOM, you need to know what optimization tools are available (Lint, MAT, etc.), how to detect OOM, and the in-depth principles of garbage collection mechanisms. For performance optimization , how to reduce the size of apk, dynamic loading of resources, etc. are inevitable.


2. Systematic in-depth learning

In the systematic learning process, blogs, books, and video courses are all better learning methods.

In view of the fact that Android is also based on the Java language, many basics related to Java must also be mastered, such as "In-depth understanding of the Java Virtual Machine", "Effective Java" and other related books are also required .

Android-related books include **"Android Authoritative Programming Guide", "Android Development Art Exploration", etc., and further you can read Android-related source code, with "Android Source Code Design Pattern Analysis and Actual Combat"** and other books, read the source code Greatly helpful.

If you feel that your reading is too slow and it is difficult to understand everything, and your blog is not systematic enough, you can find a set of advanced video learning. If not, I can share a set with you for free


About the author

The author is currently in Shenzhen, and developed from Java to Android for 13 years. He has been in a small factory, and he has also been to Huawei and OPPO. He joined Ali in April last year until now. I have interviewed many people when I have been in a big factory. I know that most junior and mid-level Android engineers want to improve their skills. They often grow up on their own, and the learning effect of fragmented systems is inefficient, long and helpless.

This year we have compiled a complete set of learning materials for Alibaba P7-level Android architects , which are especially suitable for in-depth learning and improvement for small partners with more than 3-5 years of experience.

Mainly include Tencent, ByteDance, Huawei, Xiaomi, and other mainstream Internet companies such as mainstream architecture technologies. If you need it, just take it away.

1. Advanced UI

UI knowledge is the most users today. The Android introductory training that was so popular that year, you can find a good job by learning this little piece of knowledge.

However, it is clear that it is far from enough now, so many people will feel that the environment is not good and Android development will be cold.

If these people can reflect on their own; what is the point of the company asking you CV engineers?

You have to go to the actual project yourself, read the source code, and study the principles.

2. Performance optimization

If I were the boss, I hired you to write code, not bugs. If your code is too bad, various bugs. After I opened you, I recruited someone to take over the maintenance again, and even pushed it to do it again. Is the one who took over at the back wanted to curse?

If you are good at performance tuning, you can solve various performance problems in the project. So 20K is really not too much. You have to have a solid code foundation, in-depth study of source code principles and use tools for testing, inspection and tuning.

3.NDK development

Audio and video, artificial intelligence, these are the development trends that cannot be blocked in the future. I look at those recruitment positions on Liepin.com, and the salary required to be proficient in NDK is 30-60K. For small partners who pursue high-paying positions, NDK development must be mastered and dig deep

4.Flutter

It's been more than a year, and you don't have to use it for work. But if you go out for an interview (the junior level rarely asks for it), you will definitely ask.

Regarding whether Flutter is the future or not, I can’t tell you for sure. All I can be sure of is that you are going to interview for high-paying positions. You have to master this mainstream new technology. (The most important thing for major manufacturers is your basics and technical level. Learning ability.)

5. Mobile Architecture Practical Project

Architects are not born, they are honed in the project. Therefore, we need to combine the project for practical training when we learn the technology. Then the most commonly used architecture in Android is nothing more than MVC, MVP, MVVM, but if these ideas Mixed with modularity, hierarchy, and componentization, it is not that simple.

The number of architects, especially mobile development, is too small. Maybe many Android developers have never seen a mobile architect. What is the salary level of an architect?

Ali P6 is a senior engineer, with an annual salary of about four to five million yuan

Ali P7 is at a senior level with an annual salary of about one million

Ali P8 is an architect, with an annual salary of more than 1.7 million

Ali's standards and salary are very high, and other companies will have a gap, but not too much.

The following is my compilation, and fans share it for free;

Android learning PDF+architecture video+interview document+source notes

Have you ever dared to think that you can reach the level of an architect in the future, break through one million annual salary, and realize the freedom of wealth? If you think this is impossible or even ridiculous for you, then you are really out of reach.

Guess you like

Origin blog.csdn.net/ajsliu1233/article/details/110355986