In fact, in many people’s thoughts, they hope to achieve salary increase through job-hopping, but job-hopping is not impulsive decision, should be cautious ~

01

My junior student recently joked to me that he joined a company in the first half of 2020. At that time, he was lured away by a high salary. The so-called money is in place and he is full of energy.

However, I was too tired to deal with the work and filled in many technical “pits”, so I had no time to improve.

As a result, it was difficult to complete the work assigned by the company in the later period, which delayed the progress of the project, and I was persuaded to quit!

Leave the time invite me to masturbate together, quite have the feeling ground to say with me, still want to climb out from the pit continuously study, before although always busy filling pit not idle, but the leadership think your ability not good can only fill pit, now be persuaded to retire, next how should walk all don’t know.

We always hope to job-hopping to achieve salary increase, but we should also constantly update our core competitiveness, otherwise, the company will squeeze the last value, facing the risk of being “eliminated”!

02

One of them is a programmer in an Internet company. He has been working as a client for 4 years, and his salary increase is only 500 yuan per year. Once by chance, he saw the salary slip of a new colleague, and found that his colleague’s work is 75% higher than his.

At the moment he is very unacceptable, the work is the same, why the salary is so much higher than him, so the heart decided to job-hopping.

But in the process of re-applying for a job, Ali’s interview hit him hard…

“I was speechless when asked by the interviewer. I found that my technical knowledge and ability were just the tip of the iceberg in the Android field, and I had too much professional knowledge to learn and ability to improve.”

He told me that when he walked out of ali Campus, he secretly decided to systematically study to deal with the interview and future job requirements.

03

In the Internet industry, there’s a growing consensus that if you want to get paid fast, you have to change jobs…

It’s really hard for older employees to get a raise, and it’s quite common for new employees to get paid upside down…

So how to dance well, salary satisfaction? My suggestions:

  • Look for opportunities.
  • Job-hopping is not a blind jump, especially not recommended to see the temptation of high salaries on the cross-industry cross-direction job-hopping.
  • Enhance their core competitiveness.

How can we improve our core competitiveness?

When adults want to change their lives and reverse their status, one thing they do all at once is systematic learning.

04

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. Essential skills for architects to build foundations

The development language of Android phones is Java (Kotlin is also a encapsulation of Java), and the Android Framework uses Java by default. Mastering Java language is a necessary skill for Android developers.

This article contains knowledge:

1. Dig deep into Java generics 2. Data transfer and serialization 5. Principles of Java Virtual Machine 6. Reflection and class loading 7. Efficient IO

Advanced UI

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!

Three, Framework refined kernel analysis

As we all know, Android is an operating system based on Linux implementation. But to the Linux kernel, Android is just another application running on top of the kernel, no different than any other application running on top of the kernel.

Therefore, Android also needs a runtime environment, which requires the Linux kernel to load the resources required by the Android Framework after startup. The appropriate APK application can only be started after the Framework has been initialized.

The main contents include:

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

Iv. 360° overall performance optimization

In the hands of development engineers at different levels, due to the uneven technical level, even though many mobile phones have very high performance of scoring software, there is still a lag phenomenon when opening applications.

In addition, as product content iterates and features become more complex, the UI pages become richer, which can become 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.

Main Contents:

  • 1. Design ideas and code quality optimization

  • 2. Program performance optimization

Startup speed and execution efficiency optimization layout detection and optimization memory optimization power consumption optimization network transmission and data storage optimization APK size optimization

  • 3. Optimization of development efficiency

Git automatic build system Gradle

  • 4. Project practice

Start speed fluency Douyin in APK package size resource optimization practice Youku responsive layout technology full analysis network optimization mobile Phone Taobao Double eleven performance optimization project revealed Autonavi APP full link source code dependency analysis completely eliminate OOM actual experience sharing wechat Android terminal memory optimization practice

Fifth, Android third-party framework

With the continuous development of Internet enterprises, there are more and more modules in product projects, and the user experience requirements are getting higher and higher. It is more and more difficult to achieve the purpose of small steps and quick iterations. There are also problems such as mutual calls between applications, and plug-in technology is applied.

Today’s Android mobile development is not hotfix, plug-in, componentized, and 80% of interviews fail.

Content of this article (1042 pages)

  • Thermal repair design
  • pluggable
  • Component frame design
  • Image loading frame
  • Network Request Framework
  • RXJava responsive programming framework design
  • IOC Architecture Design
  • Android architecture component Jetpack

Vi. NDK module development

The NDK is a native development kit that allows Android to use C/C++ code and provides numerous platform libraries.

The main contents include:

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

Seven, Flutter learning progress

2019 is undoubtedly the year that Flutter technology is in full swing.

Every mobile developer has been fascinated by the features and ideas that Flutter brings with it: “rapid development, expressive and flexible UI, native performance”, from superapps to standalone apps, from pure Flutter to hybrid stacks, Developers have been exploring and applying Flutter technology in a variety of scenarios and are facing a variety of challenges.

Build your first Flutter development environment in Windows. Write your first Flutter APP. Get started with the Flutter Dart language.

Eight, Android related source code interpretation

As long as programmers, whether Java or Android, if not to read the source code, only to see API documents, it is just stay in the skin, which is detrimental to the establishment and completion of our knowledge system and the promotion of actual combat technology.

Because of the length reason, the above complete study notes PDF if necessary, you can like + comment support me this worker, and thenClick here to get it for free!