In the early days of the company, there was a shortage of people and a lot of Android programmers, but none of them turned out to be suitable.

At the beginning, I aimed at the intermediate level, but I didn’t expect to be a big bull. The salary offered was in the range of 10-20K. Many people interviewed, but the average level was very disappointing.

See resume many are 3 years work experience, but the interview, not to mention algorithm logic, only basic technology of many also know is unknown, most of the number of years of work experience is just the similar products, with a large number of third-party regurgitated no depth, video and so on random individual for network database, all stay on the basis of some of the third-party service will only call method level, Algorithms are a dead question, cutting-edge technology is not the latest trends.

And these people are close to 20 k salary requirements are, and in the process of talking about smugness, especially there is a left a deep impression on me, your resume have 3 years experience, do all electricity class demonstration projects, the interview process has stressed how strong, and its technology in the original company how to reuse, asked some of the details, all is to use a third party, Almost nothing myself, asked some video processing, performance optimization property, directly told me that he used online evaluation ok, no problem for certain, said asked algorithm cannot solve that android does not need algorithm, after half scene very embarrassed, courteous to not directly over, and asked some rewriting control problem, also is not completely, Then he told me that there was no need to learn these things and only a third party could solve them all. I mentioned to him how to do these three parties did not include customization functions, and he told me that the company could change its requirements…

Finally recruited 2 this year’s unripe to cultivate period of time also calculate can helper.

I told some of my friends about this, and they also felt the same way. People are fickly, and few people are willing to do technology. Most of them just want to get high salary, and do whatever they can, rather than knowing how to do it.

Most companies have had to lower their expectations as the market has flooded in with unqualified, self-rated programmers, but the truly talented ones are largely unaffected and can easily jump ship.

If you are not satisfied with your current job and do not have enough experience, you might as well calm down and learn some more.

Contribute to the

As an Android developer, next I would like to share some of my generalizations and summaries about technology over the years, and share my notes on the skills needed to master as an Android senior developer, hoping to help those friends who are willing to go all the way to black on the road of technology!

1. Advanced UI, custom View

The UI piece of knowledge is the most widely used today. That year the popular Android training, learn this small piece of knowledge can casually find a good job.

But obviously now is far from enough, refused to endless CV, personally to project combat, read the source code, research principle!

2.NDK module development

Today, short video apps are booming. With the rise of short video, audio and video development is getting more and more attention, and the salary is rising. Taking first-tier cities as an example, the salary of audio and video engineering development is 40% higher than that of Android application layer development.

The content mainly involves the following aspects:

  • NDK module development
  • JNI module
  • Native development tools
  • Linux programming
  • Underlying image processing
  • Audio and Video development
  • Machine learning

3. Data structure and algorithm

Why study data structures?

This is because all programs are essentially data processing, how to efficiently process data, which depends on the structure of the data itself (such as type (integer, floating point, etc.), dimension, whether it is a complex type (structure type, class type, etc.) and the logical relationship between the data (linear, nonlinear, etc.).

The data structure is inseparable from the algorithm, the design of the data structure is to make the algorithm smooth and convenient implementation.

4.Java advanced and kernel principle

The content mainly involves the following aspects:

  • HashMap
  • ArrayList
  • LinkedList
  • Hashset source code analysis
  • The memory model
  • Garbage Collection algorithm (JVM)
  • The difference between garbage collection and calling System.gc()
  • Class loading process
  • reflection
  • Multithreading and thread pools
  • Design patterns
  • Java generics

And so on…

5. Advancement of Flutter technology

Knowledge points of this article:

Create your first Flutter APP. 4. Get started with the Flutter Dart language system

6.360 degree full performance tuning

As product content iterates, features become more complex, and UI pages become richer, it becomes a barrier to smooth operation. To sum up, APP performance optimization has become a comprehensive quality that developers should have, and it is also a guarantee that developers can complete high-quality application works.

1. Design ideas and code quality optimization

2. Program performance optimization

  • Optimization of startup speed and execution efficiency
  • Layout detection and optimization
  • Memory optimization
  • Optimize the power consumption
  • Network transmission and data storage optimization
  • APK size optimization

3. Optimization of development efficiency

  • Git, a distributed version control system
  • Automated build system Gradle

4. Actual project combat

  • startup
  • fluency
  • The practice of Douyin in APK packet size resource optimization
  • Youku responsive layout technology full analysis
  • Network optimization
  • Mobile Taobao Double 11 performance optimization project revealed
  • Autonavi APP full link source code dependency analysis
  • Complete the OOM experience sharing
  • Wechat Android terminal memory optimization practice

7.Framework refined kernel parsing

The main contents include:

  • In-depth analysis of Binder
  • Parsing Handler in depth
  • Dalvik VM process system
  • Parse WMS in depth
  • PackagerManagerService

8.Jetpack architectural components go from beginner to master

  • Android Jetpack – Navigation
  • Android Jetpack – Data Binding
  • Android Jetpack – ViewModel & LiveData
  • Android Jetpack – Room
  • Android Jetpack – Paging
  • Android Jetpack – WorkManger
  • Lifecycle for Android Jetpack architecture components
  • Jetpack Compose for Android

Due to the length of the above complete version of the PDF, if necessary, you can like + comment support me, and then[Click here]Free to read and download.