How do I feel that the whole world is persuading programmers who drop out of Android?

Preface

An Android technology exchange group I formed with my friends is very lively recently. Every time I read the news, it is 99+. In the past, I couldn't see such a grand occasion except for driving.

The head of the penguin flashed all the time, suffering from no time. After clicking in, I found that they were all talking about job hunting and interviews.

siege

The cause of the incident was that a young newcomer came to the group, a girl, first asked some technical questions with a sweet voice, and the group members were instantly active.

(Don’t ask, I’ve never seen a woman, 90% of the group members are men, and the remaining 10% are probably women’s elders)

At the beginning, I was still answering the questions seriously, but in the end everyone's topic became more and more crooked: I suggest you change careers; I wish you an early resignation; quit now...

I wanted to join the topic, but when I saw these, I started to fall into contemplation. I leaned on a chair and couldn't help lighting a cigarette. I remembered a sentence written by Mr. Qian Zhongshu in his works: Marriage is a besieged city. , People outside the city want to go in, people in the city want to come out.

This is also quite appropriate for our job: the job of a programmer is also a besieged city. People outside the city want to go in, and people in the city want to come out.

People outside the city want to go in

Enter the three words "programmer" in any browser. Take 360 ​​and Baidu as examples. Of the 20 recommended searches, five of them are related to "programmer introduction", "programmer self-study" and so on. The ranking is very high.

The above information is very straightforward and conveys a message: many people want to learn programming and want to become programmers.

In addition, in addition to popular searches related to "learning", another point that everyone pays more attention to is "salary". The average salary level of the programmer's job has repeatedly occupied the top spot, which is one of the reasons why everyone is so enthusiastic about the programmer industry.

In 2019, the IT industry's salary level steadily ranked first, with an average annual salary of 161,352 yuan; science and technology ranked second at 133459 yuan; and finance ranked third at 131,405 yuan.

Take a look at the following picture, it is more intuitive, 70% of programmers are paid more than 100,000.

The above reasons led to the emergence of three hundred and sixty businesses, and the grand occasion of the transformation of IT.

People in the city figure it out

I remember that when I was visiting chuhu, there were a few questions that often made the hot list:

"Is Android development cold?" "Where is the way out for programmers?" "It feels like the future of Chinese programmers is gloomy, isn't it?"

Under these topics, many programmers are complaining about themselves and the industry of programmers.

What is the truth?

In fact, most of the people who feel that the world is gloomy all day long are those who have just learned technology for a month or two and want to get a high salary without doing a project.

But the result was not as they wanted. The job was just typing some old codes every day, moving wheels on the Internet, sitting and waiting for a raise and waiting for a promotion, waiting for a car to buy a house, and the dream of buying a house fell through. So I was spit on something.

Most of the other people who have studied technology seriously and polished for four or five years have changed their names. They are called engineers, technicians, technical experts, and technical managers. Their prospects are bright, and their income from a part-time job for a month is higher than those of second-rate programmers who complain about life and work blindly, but do not work hard and do not change.

How to be a programmer with a bright future?

I'm not sure if the programmer industry depends on youth to feed on, but it must depend on technology to feed on it.

Many people do technology-intensive things with labor-intensive thinking.

How high can the added value of manual labor be?

And the emergence of the programmer industry has really saved many people who are not good at mixing in the workplace and are unwilling to deal with people. As long as you can solve the problem , even if you don't speak, your boss will still give you a raise.

But all of this is based on your "irreplaceability". If you can only knock on the basic code, move the wheel, and click on Baidu, you will be easily replaced. In this way, you have no confidence and no bargaining chips to talk about salaries, because these jobs are physical work rather than mental work, and the programmer should be an architect rather than a porter.

##How to improve yourself?

Here we can work hard from depth and breadth.

  1. Improve breadth

If you choose this direction, you can try to be a full-stack engineer, and the so-called full-stack engineer refers to a person who has multiple skills, is competent at the front and back ends, and can use multiple skills to complete the product independently.

To develop in this direction, you don’t need to learn how much technology in each direction. You can master about 80% of each language. You may not be able to solve many advanced technical problems, but you can solve most of the front-end and back-end problems alone. And because he is familiar with the overall situation of development work, he is the developer closest to the project manager.

  1. Depth of study

And if you choose the second direction, you need to thoroughly study one or two programming languages ​​in a certain technical field, so that all the problems in this technical field can be solved by you. Common technical fields include traditional fields such as front-end, back-end, mobile, and iOS development, as well as artificial intelligence, big data analysis, and the Internet of Things that have emerged in recent years.

What are the specific methods? (I only talk about Android programmers here)

(1) What to learn?

In the current era, 5G is spreading rapidly. In the general environment of the popularity of smart phones and the reduction of traffic prices, NDK technology is indispensable.

In addition, there are many technologies that are valued by major manufacturers. After summarizing, there are roughly the following technical requirements:

  1. Deep understanding of Android platform architecture, main components and working modes;

  2. Have experience in underlying technologies such as linux kernel, framework and jni, virtual machine, and security reverse engineering;

  3. In-depth understanding of design patterns, able to design a system framework with high cohesion and low coupling, and improve development efficiency;

  4. Have strong client system architecture design capabilities, and have a deep understanding of versatility, cross-platform and reusability;

  5. Have experience in large-scale software architecture design and refactoring.

Recommended reading here:

(2) How to learn?

Here to share with you my own learning ideas:

1. Learn the basics

Activity-related entity knowledge system

• Task startup principle and call stack kernel

• Life cycle and core management principles

• ViewGroup source code analysis

• View source code analysis and advanced custom View project actual combat

• The core mechanism of event distribution

• Handler communication principle and frame handwriting

• Intent data transfer principle and core

• Hook Resource source code implementation

Fragment core

• Fragment transaction management mechanism and principle of mixed application of controls

• Principles of Fragment transaction management

Service core principle

• Life cycle and AMS relationship

• Two start modes start principle

• Real-world application based on kernel

• Service process priority tuning and actual combat

• Service responsibilities principle

Communication scheme between entities

Data storage topics in entities

2. Read the source code + actual use

Regarding the reading and practical application of the source code, I have sorted out a note here, as well as a set of practical teaching videos compiled on the Internet.

Recommended reading: Niu breaking! Ali P7 tycoon exploded for half a month and compiled the Android source code analysis into a 508-page PDF

If you need it, you can like it, leave a message "111", support me, and then you can click here to directly enter the technical communication circle of our two thousand people. Get it in the group file or ask me to get it directly.

At last

Having said so much, I don't want to create anxiety for everyone, but I want to tell everyone: sticking to a goal is hard work, but your efforts will not be in vain.

Android is not cool, and it is impossible to be cool. After all, the current number of Android users is obviously a fact. It's just that the current Android requirements for practitioners have become higher, and the competition has become fierce. In this environment, we need to struggle more, don't we?

Finally, if you think this article is helpful to you, I hope you can like it, leave a comment, and support me, thank you.

Guess you like

Origin blog.csdn.net/weixin_49559515/article/details/113529155
Recommended