flutter instant messaging! The most popular computer network hierarchical detailed explanation in history, a full set of teaching materials

Salted fish turned over and kept on stage

In May 2018, in Beijing, in the so-called winter of the Internet, an ordinary second-book student, after working in a small company for a year, quit and got an offer from Baidu. His monthly salary changed from 9k to 17k, and the salary increase was close to 100%.

At the end of 2018, in Shanghai, a student with only a high school degree joined the IT industry through training. At the beginning, his monthly salary was only 6k. A year later, his monthly salary became 16k, an increase of nearly 167%.

In March 2019, in Beijing, an ordinary two-book graduated from xx Science and Technology College. After a small company stumbled for half a year, it suddenly opened at the beginning of this year and successfully got offers from Baidu, Xiaomi, Netease and Toutiao. In the end, he chose Duojin. In the headlines, I got a monthly salary of nearly 30k.

At the beginning of 2020, in Shenzhen, a graduate student who majored in physics received an offer with an annual salary of 500,000 after just two years of work. He is now a senior engineer.

There are many more examples like this, and it is impossible to list them one by one. It can be seen that without a prestigious school education and dazzling aura, one can still enter a big factory and get a high salary, but many people do not understand the essentials.

Blacksmith need its own hardware

In fact, for people with ordinary academic qualifications and no dazzling aura, there is only one thing to enter a large factory, and that is: technical strength. But many people are used to staying in small factories, and always use the standards of small factories to measure the requirements of big factories. They have been frustrated by interviews many times, so they come to a conclusion: interviews to build airplanes, and to screw the screws.

But in fact, big companies have larger platforms, more users, and naturally higher technical requirements, which cannot be completely described by screwing a screw. Even if big factories do ordinary things, but in many cases, the ultimate pursuit of stability, execution efficiency, and collapse rate of big factories is something that small factories cannot understand.

We know that for a seemingly simple thing, if it can achieve 80 points, it will be easy; if it can achieve 95 points or more, it will be very difficult; and if it can achieve 99 points or more, it will be difficult. Up. Many times in large factories, they have to achieve 95 points or even higher. This process of pursuing the ultimate is very technical. Do you understand?

How to enter the big factory, I summarized it as:

  • Get out of the thinking of a small factory and demand yourself in accordance with the technical standards of the big factory
  • Organize the core skill tree
  • Practice for a year

Readers who know me know that I have been to many big factories, I have been to Tencent Baidu Didi, and my technical level is not low. I was a technical expert several years ago. I know well the employment standards and skills requirement.

So how should Android development engineers face the current situation?

In fact, the current imbalance between supply and demand does not mean that there is no demand. There are too many junior Android programmers on the market who can only write xml and Activity and only use code heap requirements. Senior Android development engineers are still in short supply, and the salary is considerable.

Then, the question then becomes "how to improve your competitiveness in the Android market".

1. Improve general technical capabilities

The more things change, the more important it is to know the underlying principles.

A technology with a long half-life should lay a good foundation, that is, a more versatile technology.

First, common technologies such as data structures and algorithms, computer networks, operating systems, computer system structures, etc., are of great help to the deep understanding of technology, and second, these technologies are common when switching between different languages ​​and technical directions. .

2. Improve soft power

Soft power is actually a general skill, even more general than the first.

Good communication can shorten the length of meetings, save communication costs between each other, and make teamwork more enjoyable. Good document expression skills can save a lot of repeated communication.

Know how to plan your own time so that you can complete tasks more orderly when you go to work, and plan your spare time learning efficiently after get off work.

Know how to reflect: Why is this task expected to be completed in five hours, but it has become three days; why is this need to be done, is it the most reasonable way to do so, and is there a better way?

More thinking about problems, business and yourself will help you better display and demonstrate your technical prowess.

3. Choose a subdivision and continue to deepen

I personally think that a better way of learning is to first traverse breadth first, that is, to get a rough understanding of all aspects of knowledge in your own field, and then to first traverse in depth, that is, to choose a direction that you are interested in or feel worthwhile to dig deeper, and wait until this direction is studied. It's almost time to go deep into the technical knowledge of the next direction. E.g:

Advanced technologies such as plug-in technology, responsive programming, componentized framework, and system architecture support the basic framework of the business, which enables developers to react faster and be more elegant in the face of changes in requirements and functions Action.

With the increasingly mature business logic, user experience is becoming more and more important. Sudden software crashes or loading icons for 5 seconds are an obstacle to high-quality applications. Rendering speed, network request experience, I/O optimization, hot repair technology, and power consumption optimization are all points that need attention in performance optimization.

Android is now subdivided into many fields, reverse security, audio and video, Internet of Things, SDK development, etc., you can choose one of these fields and continue to deepen.

Considering from the perspective of the background of the times, we are currently in the information age, and the forms of users receiving and loving information dissemination all the way from text, pictures, audio, and video to today's live broadcast. Audio and video would be a good choice. It will involve audio and video codec and audio and video synchronization processing, special effects processing, synthesis and other technologies. It is also very helpful for the understanding of the underlying source code of Android.

Find the direction you are suitable and interested in, and then just rush forward. Now go and learn about those Android books or videos you have saved!

Learning welfare

[Android detailed knowledge point mind map (skill tree)]

In fact, there are so many knowledge points in Android development, and there are still a few things to ask in interviews. Therefore, there are no other tricks for the interview, just to see how well you prepare for these knowledge points. So, when you go out for an interview, it is good to see which stage you have reached in your review.

Although Android is not as hot as in previous years, the era of finding high-paying jobs with four major components has passed. This can only show that the positions below the intermediate level of Android are saturated. Now senior engineers are still relatively lacking . Many senior positions give very high salaries (you may not be able to find a suitable one if you have more money), so I strive to become a senior engineer. is the most important.

Attached here are dozens of sets of ByteDance related to the above-mentioned interview questions, interview questions from JD.com, Xiaomi, Tencent, Toutiao, Ali, Meituan and other companies in 19 years. The technical points are organized into videos and PDFs (in fact, a lot of effort was spent than expected), including knowledge + many details.

Due to limited space, I will show you a small part in the form of pictures.

The detailed arrangement can be seen on GitHub;

Android architecture video + BAT interview topic PDF + study notes

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

There are a lot of materials on learning Android, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and do not research in depth, then it is difficult to achieve real technical improvement. I hope that this systematic technical system will provide you with a direction reference.

Guess you like

Origin blog.csdn.net/CHAMPION8888/article/details/112945368