Jump out of your comfort zone, see through the nature of technical strength, master these seven popular technologies, and you can also advance to an annual salary of 20 to 60+!

What do I need to have an annual salary of 60+?

Programmers with an annual salary of 200,000+ in the first-tier cities can be killed by a brick, but very few of them are 600,000+. If you want to advance from an annual salary of 200,000 to an annual salary of 600,000+, what is the most important ability to master? I believe that different people have different answers. I think that if you want an annual salary of 60+, you need to have the following three points:

1. Excellent technical strength

Although the skill level is not the only factor that determines salary, it is relatively easy to get a high salary after the skill reaches a certain level.

2. Strong communication skills

As a programmer, you need to communicate with product managers and testers. A good communication will reduce a lot of communication costs and improve work results.

3. High-quality platform

Can give 600,000+ companies, in addition to major companies, there are also some financial companies, star companies, Internet companies, etc., so sometimes it is better to choose a good job.

Speaking of this, you may have started to figure it out for yourself, and feel that you don't have strong skills and can't go to a high-quality platform. Therefore, you really have to learn, jump out of your current comfort zone, and make a good career plan.

So what is the nature of technical strength?

Today, let’s discuss a question: What is the nature of technical strength?

At work, you may encounter, why he is not as strong as me, but he can be promoted?

In the interview, you may encounter, I optimized the system performance by 10 times, why the interviewer still looks down on me?

why? Why on earth?

If you have the same confusion, or can't sleep all night, I think you need to stop and think.

It may be that your learning method is wrong. It is not that you are not working hard, but the direction of your efforts is wrong.

Sometimes it does not mean that you will succeed if you work hard.

Not to mention that we as programmers have so much knowledge to learn. Take Android as an example. Do you really only need to learn Android itself? Do you want to learn Java? Do you want to learn data structures and algorithms? Do you want to learn kotlin?

There are so many things to learn, can you learn it? You can't learn to study all night long.

So, what is the essence of technical strength?

I think the essence of technical strength is the ability to solve problems, or to put it another way, technology comes from business, and technology serves business.

So, how can we enhance our technical strength?

I think it is divided into the following steps:

First of all, understand the business and guide the business. You can learn some DDD ideas and apply them to your business. This can help you quickly clarify the business boundaries and even guide the future direction of the business.

Secondly, learn general knowledge technology + technical reserve , learn some general knowledge in your field, and reserve some technologies that can help you solve business problems now and in the future.

Among so many technologies, I think the most important thing is to learn general knowledge in your field.

What is general knowledge?

Because I have been developing Android for 6 or 7 years, so let’s take Android as an example. Android actually has many directions, such as APP development, performance optimization, NDK audio and video development, and so on. Let’s take a look at this. What to learn in several directions:

  • Essential skills for architects to build foundations: in-depth Java generics + annotations in simple language + concurrent programming + data transmission and serialization + Java virtual machine principles + reflection and class loading + dynamic proxy + efficient IO
  • Android advanced UI and FrameWork source code: advanced UI promotion + Framework kernel analysis + Android component kernel + data persistence
  • 360° overall performance tuning: design ideas and code quality optimization + program performance optimization + development efficiency optimization
  • Interpretation of open source framework design ideas: hot repair design + plug-in framework interpretation + component framework design + image loading framework + network access framework design + RXJava responsive programming framework design + IOC architecture design + Android architecture component Jetpack
  • NDK module development: NDK basic knowledge system + underlying image processing + audio and video development
  • WeChat Mini Program: Mini Program Introduction + UI Development + API Operation + WeChat Docking
  • Hybrid development and Flutter: Html5 project combat + Flutter advanced

So how do you make a good technical reserve next?

You can prioritize and learn these technologies one by one. However, it does not mean that each one has to reach the level of source code. You only need to master which underlying technologies they use, which scenarios are suitable for them, and what are the advantages and disadvantages. , What are the pitfalls? A simple use case. I think it is enough to master this level. When you really encounter a scene that requires this technology, you can just feel it at your fingertips, and then go to in-depth study.

In fact, there has been a lot of research. For a new technology, it uses only those underlying technologies, and almost all frameworks will use it.

So, can you study the technologies used in these frameworks, and can they become a new general knowledge?

If your current learning has no direction or system, and you always forget that it has no effect after learning, then you can refer to my following learning route, as well as supporting learning materials, if you need it, you can pick it up at the end of the article:

The shared system learning resources are mainly based on detailed explanations of common Android interview questions of major Internet companies. From the perspective of the interview, we will introduce you to the necessary knowledge points and the practical application of the knowledge points in the project .

Help you to reorganize and establish the knowledge system of Android development on the basis of the present. Whether you want to improve Android's internal strength in the short term, break through the bottleneck of your own work capabilities, or prepare to participate in an Android interview, you will have some gains in this information.

It is divided into 6 parts in total:

  • Java basics (★★)
  • Java Advanced (★★)
  • Android basics (★★★)
  • Android Advanced (★★★)
  • Android project (★★★)
  • Frequently Asked Questions of Project Interview (★★★)

1. Java basics (★★)

  • Object-oriented thinking
  • Polymorphism
  • Exception handling
  • type of data
  • Java IO
  • set
  • Java multithreading

Java Advanced (★★)

  • Reflection in Java
  • Dynamic proxy in Java
  • Design patterns & recycling mechanisms in Java
  • Java's class loader

Android basics (★★★)

  • Basic knowledge of Android
  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider&Database

  • Layout in Android
  • ListView
  • JNI & NDK
  • Network access in Android
  • Intent
  • Fragment

Android Advanced (★★★)

  • Android performance optimization
  • Android screen adaptation
  • AIDL
  • Custom control
  • Event handling in Android
  • Android signature
  • Animation in Android
  • Network protocol
  • other

Regardless of the industry, as long as the technology is strong, there is no need to worry about food. Those who are anxious are those who are not learning enough and not enough. We have no other shortcuts to enhance our own technology through continuous learning.

Read the source code, look at the actual combat notes, and learn the ideas of God

"Programming language is the way the programmer expresses, and the architecture is the programmer's cognition of the world". Therefore, if programmers want to quickly understand and learn the architecture, reading the source code is essential. Reading the source code is to solve problems + understand things, and more importantly: to see the ideas behind the source code; programmers say: read ten thousand lines of source code, and practice ten thousand kinds of practices.

Mainly contains WeChat MMKV source code, AsyncTask source code, Volley source code, Retrofit source code, OkHttp source code, etc.

Android architect interview questions related detailed compilation

The following screenshot is the catalog index of this PDF. You can read it quickly to find out if there are any interests or weaknesses. It is good to check for omissions or in-depth study;

On the eve of the interview, sprint

Within a week before the interview, you can start sprinting. Please keep in mind that when brushing the questions, the technology is the first priority, and the algorithm is basic, such as sorting, etc., and the intellectual questions are generally not asked unless they are school recruits.

Regarding the interview questions, I personally prepared a set of systematic interview questions to help you learn from one another:

It can be said that if you are familiar with most of the knowledge points in this PDF (familiar, rather than in-depth understanding of the principle and architecture), it is very simple to go to any Internet company to interview for a mobile development position of more than 20k.

Android resume + social recruitment answers + classic HR interview analysis

The above is a summary of the real questions encountered in the Android intermediate and senior interviews. I hope it will be helpful to everyone. At the same time, many people often encounter many interview questions about resume production, career confusion, and HR classic interview questions. Similarly, I have also collected and compiled a full set of resume production, puzzles of recruitment by the Golden Three and Silver Four Clubs, and HR interviews. If you have any questions, I can provide professional answers.

Click here to see all content

A small summary:

The essence of technical strength is the ability to solve problems.

  • In terms of business, we should learn how to quickly understand business, which can be achieved through DDD and other means.

  • In terms of technology, we should learn the general knowledge in your field, and prepare technical reserves to cope with future changes in demand.

  • In terms of social interaction, we should continue to learn communication skills, expression skills, thinking skills, summarizing skills, and implement them in work and life.

Finally, continue to learn communication skills, expression skills, thinking skills, summarizing skills, and implement them in work and life.

So hurry up and improve your skills! ! !

The content of technical reserve learning is free to share with everyone, friends who need the full version, click here to see all the content

Guess you like

Origin blog.csdn.net/weixin_44339238/article/details/114894934