"After joining the company for one year, the Android developer who was dug up by a high salary was dissuaded from leaving."

In fact, in the ideas of many small partners, they hope to achieve salary increases through job-hopping, but job-hopping is not an impulse decision, so you should be cautious~

01

My younger brother recently complained to me that he joined a company in the first half of 2020. At that time, he was poached with a high salary. The so-called money is in place and his work is full of enthusiasm. In less than a year, he participated in many projects.

But I was tired of coping, filled a lot of technical "pits" , and didn't have time to improve.

As a result, it was more difficult to complete the work given by the company in the later stage, which delayed the progress of the project, and was actually dissuaded!

When I left the job, I asked me to do a string together, and told me with emotion that I still have to climb out of the pit and learn continuously. Although I have been busy filling in the pit and not idle, the leader thinks that your ability is not good and it will only fill the pit. Now being dismissed, I don't know where to go next.

We always hope to change jobs to achieve salary increases, but we must constantly update our core competitiveness. Otherwise, if the company squeezes out the final value, we face the risk of being "eliminated"!

02

Because I have been in the IT circle all the year round, I met many programmer friends. One of them is a programmer from an Internet company. He has been a client for 4 years, and his salary increase is only 500 yuan per year. I saw a new hire by chance. The salary of a colleague found that his colleague’s job was 75% higher than him.

At the moment he was very unacceptable, and he was doing the same job. Why was the salary so much higher than him, so he decided to quit.

But in the process of reapplying for a job, Ali's interview gave him a heavy blow...

"When I was asked by the interviewer, I was dumbfounded. I found that the technical knowledge and abilities I have are only the tip of the iceberg in the Android field. I have too much professional knowledge and ability to improve."

He told me that when he walked out of the Ali Park, he secretly made up his mind to study systematically to deal with interviews and future job requirements.

03

In the Internet industry, everyone will gradually come to a consensus that if wages are to rise quickly, they still have to change jobs...

It is really difficult for the old employees of the company to increase their wages, and it is more common to be upside down by the newcomers...

So how can we jump well and have a satisfactory salary? My suggestions:

  • Look at opportunities.
  • Job-hopping is not a blind jump, especially it is not recommended to look at job-hopping across industries and directions on the temptation of high salaries.
  • Enhance its core competitiveness.

When it comes to core competitiveness, how can it be improved?

When adults want to change their lives and reverse their state, they will do one thing at the same time, that is, systematic learning.

04

As an Android developer, next I want to share with me some generalizations and summaries of the technology over the years, and share with my notes on those skills that I need to master as an Android senior developer, hoping to help me with the technology Friends who walked all the way to the dark on this road!

1. Essential skills for architects

The development language of Android phones is Java (Kotlin is also an encapsulation of java), and the Android Framework also uses the Java language by default. Familiarity with the Java language is an essential skill for Android developers.

This article contains knowledge points:

1. In-depth Java generics
2. Annotations in simple language
3. Concurrent programming
4. Data transmission and serialization
5. Java virtual machine principles
6. Reflection and class loading
7. Efficient IO

2. Advanced UI

The knowledge of UI is currently the most users. The Android introductory training that was so popular that year, you can find a good job by learning this little piece of knowledge.

However, it is obviously not enough now. Reject the endless CV, go to the actual project, read the source code, and study the principle!

Three, Framework refined kernel analysis

As we all know, Android is an operating system based on Linux. But for the Linux kernel, Android is just an application running on the kernel, and there is no difference from other applications running on the kernel.

Therefore, Android also needs a running environment, and the Linux kernel needs to load the resources needed for the Android Framework to run after the startup is complete. Only after the Framework is initialized can the corresponding APK application be started.

The main content includes:

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

Four, 360° overall performance tuning

In the hands of development engineers at different levels, because of the uneven technical level, even if many mobile phones are running with very high software performance, there will still be lag when opening applications.

In addition, with the iteration of product content, the functions become more and more complex, and the UI pages become more and more abundant, which also becomes an obstacle to smooth operation. In summary, the performance optimization of APP has become a comprehensive quality that developers should have, and it is also a guarantee for developers to complete high-quality application works.

main content:

  • 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. Development efficiency optimization
    Distributed version control system Git
    automated construction system Gradle

  • 4. Project actual combat
    Start-up speed and
    fluency
    The practice of Douyin's APK package size resource optimization practice
    Full analysis of Youku responsive layout technology
    Network optimization
    Mobile Taobao double eleven performance optimization project Secret AutoNavi
    APP full-link source code reliance analysis to
    completely kill the actual combat of OOM Experience sharing
    WeChat Android terminal memory optimization practice

Five, Android third-party framework

With the continuous development of Internet companies, there are more and more modules in product projects, and user experience requirements are getting higher and higher. It is becoming more and more difficult to achieve the purpose of small steps and fast iterations, and the interaction between applications The application of plug-in technology was born for issues such as calls.

Today's Android mobile development will not be hot-fixed, plug-inized, or componentized, and more than 80% of the interviews will not pass.

Key points of this article (page 1042)

  • Hot repair design
  • Plug-in
  • Componentized framework design
  • Picture loading frame
  • Network request framework
  • RXJava reactive programming framework design
  • IOC architecture design
  • Android architecture component Jetpack

Six, NDK module development

NDK is a native development kit. This set of tools allows Android to use C/C++ code and provides numerous platform libraries.

The main content includes:

  • NDK module development
  • JNI module
  • Native development tools
  • Linux programming
  • Low-level image processing
  • Audio and video development
  • Machine learning

Seven, Flutter learning advanced

2019 is undoubtedly a year in which Flutter technology is in full swing.

Every mobile developer is crazy about the features and concepts of "rapid development, expressive and flexible UI, native performance" brought by Flutter, from super apps to independent apps, from pure Flutter to hybrid stacks, developers We are enthusiastic about exploring and applying Flutter technology in different scenarios, and we are also facing a variety of different challenges.

Key points of this article:
1. Overview of Flutter cross-platform development
2. Flutter development environment construction in Windows
3. Writing your first Flutter APP
4. Getting started

with the Flutter Dart language system ...

Flutter learning

8. Interpretation of Android related source code

As long as it is a programmer, whether it is Java or Android, if you don't read the source code and only look at the API documentation, it will just stay on the skin. This is not good for the establishment and completeness of our knowledge system and the improvement of actual combat technology.

Interpretation of Android related source code

Interpretation of part of the Android-related source code

Due to space reasons, if you need the complete study notes pdf above, you can like + comment to support me as a worker, and then click here to pick it up for free !

Guess you like

Origin blog.csdn.net/weixin_52217015/article/details/114701635