Why is my salary lower than that of new graduates?

Preface

I don’t know if you have noticed it. Although everyone is saying that job hunting seems to be more and more competitive, the salary of fresh graduates has been getting higher every year. I remember when I graduated in 2016, 15K was already a very good offer. By this year, more than 20K offers were everywhere, and there were even 30K and 40K SPs. I can't help but wonder if I was born in the wrong era.

I remember very clearly that in 16 years, Huawei’s package price was about 9K, but in 2017 it rose directly to 15K. The same is true for Meituan. Two or three years ago, it was only around 17K, and this year it has risen to 20+. Obviously, the company's internal salary adjustment cannot keep up with such a drastic increase, so the inevitable problem is the upside-down, that is, those who have worked for one or two years or even two or three years are upside down by the newcomers. According to current trends, this situation may not change in three to five years.

To be reasonable, of course I myself have been hung upside down, which is naturally very uncomfortable. But being unhappy is useless, and the company will not give you processing capital just because you are unhappy. So in this situation, there are only two ways before you, either endure or go.

Android engineer: The salary is upside down by fresh graduates, and I don’t want to keep me.
So, where should we go and how should we choose? Today I will analyze and discuss this issue with you.

Frequency of job hopping

If you want to hop, you must first consider the frequency of job hopping.

Everyone should also know that employers, especially large factories, still value this. If a candidate frequently changes jobs, the other party often has to put a question mark in his heart, feeling that the person is impetuous, uncomfortable, and difficult to achieve long-term development. It will affect the HR or supervisor's view of a person, so seniors will suggest not to change jobs too frequently. Generally, it is reasonable to jump once every two to three years.

However, this is only a theoretical situation, and there is a lot of room for maneuvering during operation. For example, fresh graduates who just graduated changed jobs after one year of employment. Is this situation desirable?

Normally, a year’s time for job-hopping is a bit short, but for newcomers in the workplace, the first job they just graduated is both exercise and trial and error. If they find it inappropriate or don’t like it, there is no way to stop the damage and change the environment in time. questionable. As far as my personal experience is concerned, I won't be too much blamed by HR. I and many of my friends around me changed jobs in a year, which is understandable in itself.

But this is not entirely without problems. The potential problem is that one year is not enough for us to get a huge growth in some aspect. Although we will accumulate some experience, the gap between itself and the freshman is not too big. This will cause us to start again as a blank sheet after we quit, and return to the same starting line as the freshman, which is more embarrassing.

In other words, it is completely meaningless to change jobs without getting growth or technical improvement, and it is particularly "injury" to the resume.

Job-hopping and salary increase

Many people in the workplace say that it is useless to rely on qualifications, and that you need to change jobs to get a promotion and raise your salary.

To some extent, there is some truth, and this is also in line with the principle of minimizing the cost of the employer. For employees who are already in the company, they only need to "steady" and don't need to pay too much. For employees recruited from outside, they will be relatively generous due to the need to compete with the market. How to say this, although it is not reasonable, but it is understandable, after all, it conforms to the laws of economics.

But if you just want to change your job to raise your salary, it is actually a terrible thing for the company and yourself. Let's analyze it a little bit and we will understand. For example, Zhang Sangang got 12K after graduation, and Li Si got 15K better than Zhang San's offer. After working for a year, the company adjusted his salary. Zhang San was adjusted to 13, and Li Si was 16.5. Even Li Si was promoted and went directly to 20K. So obviously, how does it feel to be Zhang San at this time?

Of course I was very upset. Li Si and I came together. If I came, I would be less than him. I just gave him a chance to get promoted but didn't give me a chance. Isn't this bullying the honest person?

Android engineer: The salary is upside down by the fresh graduates, and I don’t want to keep me.
As Zhang San at this time, it’s obvious that I don’t want to keep my master here. Since the company doesn’t want to see me, I don’t need to stay. . It's very normal to have such an impulse when young and alive, and I understand it myself. But if we do the calculations, we will find that it’s actually a loss to go now, because if we quit with 13K not senior, the best we can get is probably 16, 17K, but it’s still not as good as Li Si’s. And it may not give you senior. Even in the best case, if you are given a senior, you are still at a loss.

why? Because Zhang San consumed an opportunity to quit, this is also a potential cost. If Li Si also quit at this moment, he must still get more than Zhang San. So you see, we tried our best to change jobs, and the best situation is just as good as Li Si. Even if we choose a big sweatshop like pdd and get more than Li Si, this doesn't explain the problem, because as long as we are willing to go, Li Si can get more.

This is very uncomfortable. If you don't quit, you've already lost money, but you're still at a loss if you quit. We can't choose no matter how, should we be pissed to death?

In fact, there is no way out, there is a way out after thinking about it carefully.

Resolution strategy

Whether it is a lower salary than others, or being upside down by others, it is already a helpless fact. Especially for newcomers in the workplace, there are too few elements to be able to ask for. They can neither have a good project experience nor may they have accumulated strong technical strength. Even if they have accumulated strength, it is difficult to prove it. If you don’t have a good title, you can only say that you are an engineer, not even a senior, and you are not embarrassed if you go out and introduce yourself.

then what should we do?

In fact, the whole problem is difficult to solve because our starting point is wrong. We all think with the purpose of raising salaries and not being upside down. In fact, we should change our thinking and how to do it is better for our long-term development.

First of all, we should let go of gains and losses and comparisons. If others take more or less, it does not affect our own value or future value, and it is meaningless compared to others. I know it's easy to say but difficult to do, but it doesn't matter. We can think about it in another way. Career development is a long-term affair. Since it is a long-term affair, it can be ensured that almost no one has a smooth career in their careers, and more or less always encounter some ups and downs or bottlenecks. In other words, without a bad start, where's the counterattack Shuangwen!

Android engineer: The salary is upside down by fresh graduates, and I don’t want to keep me.
So it’s not a big deal to start a weaker start, take a few K, or get promoted slowly. Most Internet companies have a "final elimination" mechanism. Even if they are "mixed" to high salaries without solid technical support, they will eventually fall. On the contrary, everyone will encounter bottlenecks in their development. It is normal to encounter bottlenecks for a few years. As long as we continue to learn and devote ourselves to improving ourselves, there will always be bright moments. We want to learn quietly, and then amaze everyone!

How to improve

I have been doing Android development by myself in the 5th year. In the second year after graduation, I was fortunate to join the big family of ByteDance. In the 4 years of Byte, I have witnessed too many people coming and going, and I am deeply impressed by a colleague who switched jobs to Ali and directly doubled his salary, but I also saw many people bumping into the wall with gold plated with "big factory". Technically!

I may be considered a successful example myself. I achieved 2-2 from 1-1 in 4 years. Of course, the "sorrowful tears" behind this will be discussed later. In general, thanks to my continuous learning, review and summary, and improve my skills! Let me share my specific study route and notes in the past 4 years, hoping to help friends who are interested in improving technology!

The necessary technology for the bottom development of the project

Android is based on the Java language, virtual machine as the core, through the Daivlk virtual machine and then to the Art virtual machine to evolve, so you need to learn two bottom layers, one is the Java language bottom layer, and the other is the virtual machine bottom layer. The java bottom layer covers Java serialization and generics. Detailed explanation of the principles of reflection, JDK advanced dynamic proxy, and Java advanced concurrency.
The bottom layer of the virtual machine covers the class loading mechanism of the virtual machine layer, the principle analysis of the Android virtual machine, the dex operating mechanism, the Android memory, and the advanced data structure and algorithm.

At present, the mainstream language for Android APP development is the Java language. The biggest feature of the Java language is to increase the possibility of software interaction. It can be said that almost all applications on Android phones are written in the Java language.

Knowledge points:

1. Java serialization, generics, reflection
2. The underlying principle of the virtual machine
3. Android memory principle
4. Detailed explanation of the principle of high concurrency in Java
5. Compile-time technology mastery and actual combat
6. JDK advanced dynamic agent
7. Advanced data structure and algorithm
8. , Java IO operations

Insert picture description here

Android R Frame Work source code and UI

In Android, Framework refers to the system architecture layer. Framework means "framework" in Chinese. In software development, it usually refers to the development framework. It is above the kernel layer in a system and provides interfaces for top-level applications. It is designed to help developers quickly develop top-level applications without having to care about the system. The kernel operating mechanism, usually Framework will hide the main function and other necessary components of the application, developers only need to focus on the realization of the function code. To put it simply, the specific work of Framework is to provide a series of services and API interfaces for developers of android application development.
UI does not simply refer to the effect the user sees. Because in Android development, there is a deep-level system behind each control. Naturally, UI does not simply refer to custom controls. We should also know the execution process behind custom controls, including from Activity Creation, analysis of XML, measurement, layout, and drawing of each control. Of course, there are also knowledge points such as animation, event distribution mechanism, and nested sliding mechanism. There are also some UI frameworks provided by Google that also enable us to grasp the objects, such as Jetpack component library, Material Design, etc.

Knowledge points:

1. FrameWork source code analysis

2. In-depth analysis of common Android components

3. In-depth analysis and customization of UI

4. Jetpack family bucket

5、Android R

6. RXJava reactive programming framework design

Insert picture description here

360° all-round performance tuning

Performance optimization is for the entire app development. When a good project is developed, not only is the product better, the developer also needs to know why the app I developed can run on most mobile phones, and why most mobile phones do not have bugs when users use it. Our apk file can be optimized to be very small. For example, if you make a project, it may be 10m after packaging, but after optimization, it may only be 8m or even smaller. In addition, how safe is the project we are doing? Why do we conclude that the app we made is safe? These are all involved in performance optimization.

1. Design ideas and code quality optimization

Whether an app’s performance is good or not, we need to work on two levels. The first level: you need to pay attention when writing code, make your own code high-performance and high-availability code, this process is to write high-performance code; the second level: check the code problem with tools for the already formed code , To guide us to delete and modify the code through the checked problems, this process is called tuning.

How to write high-performance code? Then we need to have a deep code knowledge, which is the basis of the code, such as: the data structure can be written according to the application scenario to meet the current scenario of the special structure, for example, Google developed sparseArray instead of HashMap for the characteristics of the Android platform. In addition, he has his own unique insights into commonly used algorithms. There are hundreds of questions on LeetCode, so that you can almost achieve the ability to be proficient in the most commonly used algorithms such as sorting and searching dynamic programming. Furthermore, if efficient algorithms and memory-saving data structures are matched with excellent design patterns that meet application scenarios, these provide a basis for high-performance code.

The other is to tune the written code. Then the direction of tuning is to use the Profiler tool to test and check to see where there are performance-consuming operations, and then analyze the problems with the code. The direction of tuning becomes how to optimize memory, power consumption, network traffic, and of course, there are reasons for startup speed, page switching effect and speed, boot white screen experience, and splash screen. Wait for analysis and tuning. Finally, add a screen adapter camera adapter.

2. Program performance optimization

Excellent startup speed and execution efficiency

Layout detection and optimization

Memory optimization

Power consumption optimization

Network transmission and data storage optimization

APK size optimization

3. Optimization of development efficiency

Distributed version control system Git

Automated build system Gradle

4. Project actual combat

Start-up speed, fluency, practice of Douyin in APK package size resource optimization, Youku responsive layout technology, full analysis, network optimization, mobile phone Taobao double eleven performance optimization project, revealing the source code dependence analysis of the entire link of AutoNavi APP, and completely eliminating OOM actual combat experience sharing WeChat Android Terminal memory optimization practice

Android engineer: Salary is upside down by fresh graduates, and I don’t even want to keep me

  • Benchmarking the necessary technologies for Tencent T3.3 architects

Android framework architecture (advanced UI+FrameWork source code) This piece of knowledge is currently the most users, and we call it the technology of Android from 2013 to 2016.

Android developers are often familiar and unfamiliar with this frequently "used" code because they are used to copying code online: the familiar is dealing with them almost every day, and copying the code every day; the unfamiliar is that although with these codes every day Dealing with codes, but I haven't studied the principles of these codes in depth and the connotations in the depths of the codes.

Key points of knowledge in this article:
1. Code design guidelines necessary for architects
2. Component-based architecture design
3. Plug-in architecture design
4. Hot fix design
5. Open source framework source code analysis and implementation

Insert picture description here

Advanced audio and video (audio and video series)

From the perspective of future trends, with the advent of the 5G era, audio and video have gradually become necessities in people's daily lives. In addition to online education, audio and video conferences, and instant messaging products that must use audio and video technology, other products also need to add audio and video elements.

It is precisely because of such a big trend that in addition to major factories, other small factories are also starting to look for audio and video talents.

A slightly better audio and video talent may now have 3-4 companies rushing to get it, earning it. The demand for audio and video talents has changed from a niche to the general public, which is more a result of everyone's expectations of the future market.

Why are audio and video talents rare?

Audio and video knowledge is complex, and there are very few easy-to-understand materials;

Online blogs and videos are filled with a lot of wrong information, making many beginners unable to climb out of the pit.

For example, according to the traditional audio and video learning method: first contact a large number of audio and video open source libraries, such as FFmpeg, MediaCodec, and often these APIs have already made your head bigger. Staying on the API will not allow you to adapt to changing needs. The first direction was wrong. No matter how hard I tried, I couldn't learn audio and video.

Key points of this article:
1. Basic syntax
2. H264 video coding
3. H265 coding principle
4. H265 coding application
5. MediaCode

Android engineer: Salary is upside down by fresh graduates, and I don’t even want to keep me

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. of.
Due to space reasons, if you need the complete study notes pdf above, you can like + comment support, join the Android exchange group to receive the outlineInsert picture description here

Guess you like

Origin blog.csdn.net/A_pyf/article/details/113519441