Is the cold winter really coming? Maybe, because in recent years, we have been talking about the cold winter every year, which really makes people anxious. However, the overall Internet environment is indeed not as good as in previous years. Even if I don’t say it, I think everyone can vaguely feel it. As a once popular Android engineer, I am now facing the following problems:
From the above points, it is no exaggeration to say that Android engineers are surrounded by enemies. This article will analyze from the following aspects, please be gentle.
1. Resolving misconceptions about Android There are obviously some misunderstandings about Android, both among Android peers and other technical fields. As an Android developer, if there is a misunderstanding about Android, it may affect subsequent development and decisions, so I need to dispel this misunderstanding. 1.1 The future of Android Android system is the root, without it, Android engineers will not exist. As far as I can remember, there were comments as early as 2011 that the Android system was going to die. Seven years later, the Android system is still strong. At present, the only threat to it is Google's Fuchsia. Google's real intention may be to make an alternative rather than a replacement, because the difficulty of replacement is too great. Now Android has been widely used in mobile phones, tablets, car networking, Internet of Things, smart TVs and other fields, and is a veritable terminal overlord. Let's not talk about mobile phones, let's talk about relatively niche smart TVs and smart projectors, which have long been widely used in various families. Do you want developers to redevelop these customized systems and applications just by making a new system? It really won't sell, let alone mobile phones. Android is not Symbian, how can it be replaced just by wanting to replace it? The difficulty is like redeveloping a PC operating system to replace Windows. So the Android system will survive for a long time. It is difficult to predict how long it will last, but it should be longer than most people's programmer career. Recently, Google seldom mentioned Android at its developer conferences. Many media outlets have been claiming that Google no longer values Android. This is because Google has many new products to promote, and Android, as Google's eldest son, has long been deeply rooted in the hearts of the people and does not need too much promotion. This does not mean that Google no longer values Android, and the Android system will continue to improve. 1.2 Future employment trends of Android Although the current employment situation of Android is not very good, the employment trend in other technical fields is not optimistic either. This is because a large number of training personnel are now pouring in from colleges and training institutions. When I went to college in 2005, the software engineering major was not very popular. I learned some conventional technologies, such as algorithms and data structures, C++ programming, object-oriented methods and programming, etc. After graduation, I just worked on C++, Java Web and .NET, etc. Now, IT-related majors are simply hot. Everyone thinks that this industry has a lot of development and makes a lot of money. Therefore, more and more students apply for related majors. Many universities have mobile Internet application technology majors and artificial intelligence colleges. Every year, a large number of university graduates and training institutions come out and pour into the market. Chinese Internet companies obviously do not need so many talents. The final result is that there are more wolves and less meat. We can probably predict that the number of Android developers will grow slowly in the future. Considering the future positions of enterprises, the future employment trend of Android will rise slowly, but it is hard to say for other technical fields. After all, no field can withstand the influx of so many people. 1.3 The ceiling of Android development Many people think that Android technology is not deep, the technology stack is not large, and the career development of Android is limited. This is a big misunderstanding. Let's talk about technology first. Android's technology stack has become larger and larger over time, and there are more and more subdivisions, mainly including Android application development, reverse security, audio and video, car networking, Internet of Things, mobile phone development and SDK development, etc. Each subdivision is composed of many technology stacks, and the depth is deep enough. Take the underlying source code of the Android system that is common to all subdivisions, for example, it will make you feel worse than death when learning it. In terms of career, it is indeed difficult for Android application developers to be promoted to CTO. Generally, CTOs are mainly backend developers. There are two main reasons for this: The back-end technology stack matured very early. When I switched to Android development 8 years ago, the group of Java developers in their 30s were already very capable. As time goes by, the number of back-end technology experts is far greater than that of Android experts, and they are more powerful. When they were technical managers, we were still moving bricks. The backend can indeed coordinate the overall situation and plays an important role in the company's business. However, we have overlooked the most important point. If we are working on the backend, can we definitely become CTO? I think it is also difficult, so don’t just focus on the high places. Think about what level you can reach first. It is not reasonable to say that the scenery below the mountain is not open when you are standing halfway up the mountain. 2. Do you want to change careers? Android is not popular anymore. Many Android developers have changed their careers. Some are on the way to change, while others are still hesitant. Should they change their careers? Let's analyze it. 2.1 What to transfer Everyone's own situation is different, and the direction of transfer will also be different. It is definitely the best to transfer to artificial intelligence related development. After all, pigs on the wind can fly, and there is nothing wrong with following the wind. It's a pity that artificial intelligence-related education and algorithm requirements are very high. At least you have to be a master's degree, and this is only the low-end. Then most Android developers can transfer to the front-end, back-end and python, etc. Let me talk about it: 1. Transfer to the front-end, which is the best direction I think. Many front-end concepts are similar to Android, and can also be used as an extension of Android to develop towards the big front-end. If you are interested in the interface, you can try to transfer to the front-end. 2. Transfer to the back-end. The back-end is a complete career change. It seems that everyone knows Java, but the back-end technology stack is not only Java. Various frameworks will definitely make you feel overwhelmed. Many people emphasize that the back-end technology is deep, and various high-concurrency processing seems to be very technical, but only a few companies are doing it. If you want stability, you can try to transfer to the back-end. 3. Transfer to python. Python has been very popular recently because it is related to artificial intelligence. In fact, most people who learn python are not doing anything related to artificial intelligence. They are basically doing crawlers. Those who pursue the trend can try to transfer to python. 2.2 Don’t change careers easily. Change as soon as possible. I think there are two normal ways to change careers. One is that the industry disappears or declines, and the individual cannot display his talents. The other is that he is not interested in the industry, so he changes to one that he is interested in. Now most people change careers just to follow the trend and make a little money, but ignore long-term development. Let's take a look at the picture below. As can be seen from the figure, most people are in the acceleration period before the age of 35, and in the rising or declining period after the age of 35. For example, if an Android developer switches to the front-end, assuming that an Android senior student A switches to the front-end, he will become a front-end junior. At this time, people engaged in the front-end are accelerating, and it is impossible for student A to catch up with the people in front with the same acceleration. This makes him extremely passive in the early stage of the career change. Student A must ensure that he becomes a front-end expert or leader before the age of 35 in order to avoid entering the decline period after the age of 35. Of course, at this time, student A's Android is basically abandoned and it is difficult to become an expert. If you still want to go further in the field of technology, don't change your career easily. If you want to change, the sooner the better, the faster the better, because other competitors are accelerating, and no one will stop and wait for you. 2.3 Most career changes are not qualitative changes A qualitative change in development can be understood as a significant improvement in one field, or a crossover to an unrelated field. For example, one can change from a senior developer to an expert in the Android field, or from a senior developer to a leader, or cross over to do some technical-related training, speeches, books, etc. and become well-known. Anything that can help people enter the rising period after the age of 35 can be regarded as a qualitative change, and changing careers is rarely a qualitative change. It is more like going back to the starting point and starting over. To put it in a figurative way, it is just changing a different brick and continuing to move bricks (except for high-tech content). Therefore, we should pursue qualitative change rather than parallel or retrogression. One retrogression can be tolerated, but multiple retrogressions will make it difficult to enter the rising period after the age of 35. 3. How to improve competitiveness If you still want to change your career after reading this, don’t read on. Let’s talk about how Android can improve its competitiveness. 3.1 Choose a niche Android now has many subdivided fields, including application development, reverse security, audio and video, Internet of Vehicles, Internet of Things, mobile phone development, SDK development, and smart TV box development, etc. You can choose one of these fields and keep going deeper. For example, audio and video, when I first got started with Android 8 years ago, audio and video was making a lot of money (on the PC side), and the salary was staggeringly high. Now on the mobile side, audio and video is even better than before, and it is a very good choice. If you want to get started, you can read He Junlin's "Android Audio and Video Development". 3.2 Try to learn knowledge with a long half-life The half-life of knowledge refers to the period of knowledge becoming obsolete as the knowledge update cycle becomes shorter and the speed of knowledge fission accelerates. Occupations with long knowledge half-lives are more valuable as they age, such as English teachers and surgeons, whose knowledge is updated slowly and rarely becomes obsolete. We programmers are absolutely incomparable to this. Most of our knowledge has a relatively short half-life, and a framework may be eliminated in just a few years. This also leads to the need for programmers to constantly learn new knowledge, and each of us has limited time and energy, so it is particularly important to learn strategically according to the half-life of knowledge. The half-life chart above is not completely accurate, but it is worth referring to. If you are in other technical fields, you can also refer to this half-life chart. This chart does not tell us not to learn RN and small programs, but to learn as much knowledge as possible with a long half-life in combination with our own work. 3.3 Do subtraction and try to specialize in one technology In today's society, the division of labor in technology is becoming more and more detailed. The more detailed it is, the more specialized talents most companies (except small workshops) need (the best is to be proficient in one and proficient in many). You will find that most of the technical people who stand out around you rely on one technology, but you rarely see people who know a lot of technologies but are not proficient in any of them. It's like in the world of martial arts, when masters fight, they all use their signature martial arts at the same time. If you are not proficient in your signature martial arts, you will be abused in minutes, and there is no need to use the rest of your martial arts to make a fool of yourself. The real version is that you go to a big company to interview for Android, but you don't know much about Android technology, so you are abused in various ways. The interviewer is not interested in the rest of the front-end technology, back-end technology, Python, etc. So it's not that the more technologies you know, the better. You must do subtraction well, specialize in one, and then learn other technologies. 3.4 Talk about the recent hot technologies in Android In recent years, hot Android-related technologies have emerged frequently and have been all over the screen. Let me share my thoughts on these hot technologies. Kotlin, from the perspective of the half-life of knowledge, this language is very worth learning, but it is still very difficult to popularize it, because Kotlin has not yet demonstrated its competitiveness that makes it a must-have. In addition, the cost of using it in many companies is relatively high, and most leaders do not seek to make any contributions but only to avoid mistakes, and will not put in the effort to promote it. Flutter, judging from the half-life of knowledge, this framework will not exist for a long time. Currently, only some companies with technical reserves are experimenting and trying it. If your company does not have enough technical reserves, it is obviously not wise to rashly become a guinea pig. It is recommended that everyone learn these two technologies, but don’t expect them to increase your competitiveness to a great extent. If Li Si can learn them in a week, Zhang San can also learn them. 3.5 What should we learn in depth? According to the half-life of knowledge, the most important things to learn for Android application development are Java, App development related technologies, Android system underlying source code, data structure, design pattern, network related, etc. However, in most actual development, algorithms are the least commonly used and are often learned for interviews, so the rest of the content needs to be studied in depth. |
>>: The evolution of super APP content
From launching the live streaming function to the...
If you ask southerners what season they fear the ...
As a marketer , we must always pay attention to t...
What? You’ve finished watching the Spring Festiva...
In recent years, new consumer brands have risen c...
Driven by Tesla, the market value of new energy v...
Apple has expanded its cooperation with Samsung D...
When we usually use a search engine, we will ente...
Recently a group of children who made creative bi...
Just like all novels about domineering CEOs, befo...
Online education has developed rapidly in 2020 an...
Today, I was eating noodles in a restaurant when ...
Some time ago, Desert Platinum Camel Milk was doi...
Dependency Management Dependency management is wh...