How can the monthly salary of Java development in "Beijing, Shanghai, Guangzhou, Shenzhen and Hangzhou" reach 2w and what level of technology is required?

Foreword:

Recently, some friends in the group have been talking about how much the monthly salary is. They said how to do java in first-tier cities such as Beijing and Shanghai can reach the level of 2w yuan. Today, I will chat on such a topic.

Insert picture description here

First of all, a monthly salary of 20,000 yuan is too common in BAT, usually for senior engineer and senior engineer positions.

It is around p6 in Ali, t5 in Baidu, t2-3 in Tencent, t3-1 in JD, and p6 in Meituan. I don't know the others.

I sorted out the real interview questions of the first-line Internet companies collected in 2020 (all organized into documents), there are many dry goods, including detailed explanations of netty, spring, thread, spring cloud, etc., there are also detailed learning plans, interview questions, etc. I feel The interview is very clear:

Friends in need can click here to get it for free, password: CSDN

I hope I can help you!
Insert picture description here

Insert picture description here
Insert picture description here

The 2w+ skill tree has three main aspects:

1. Java basics

Insert picture description here

For example, you have an in-depth understanding of collection classes, concurrent packages, class loading, IO/NIO, JVM, memory models, generics, exceptions, reflection, etc. It is best to read the source code to understand the underlying design.

For example, general interviews will ask about knowledge points such as ConcurrentHashMap, CopyOnWrite, thread pool, CAS, AQS, and virtual machine optimization.

Because these are absolutely important to Internet companies. And most people can't pass this level, and they complain that these are useless, why do they have to interview.

  • For example, when using the thread pool, because the unbounded queue is used, the inner layer soars when the remote service is abnormal. How to solve it? If you don't even know the thread pool, how can you play?

  • To give another example, due to a misunderstanding of ThreadLocal and using it for thread-safe control, real thread-safety was not achieved. There are also how to plug and socket problems when encountering memory leaks, and how to optimize system performance. Therefore, as a JAVA programmer with 20,000 yuan, this foundation is necessary.

2. Comprehensive knowledge of Internet technology is required

Insert picture description here

Speaking from the bottom, you should at least have a deep understanding of mysql, redis, nginx, tomcat, rpc, jms, etc.

You have to ask how much you need to understand, I can give you a big deal.

First of all for MySQL,

  • You need to know the common parameter settings and how to choose the storage engine.

  • You also need to understand common indexing engines and know how to choose.

  • Know how to design tables, how to optimize SQL, and how to tune according to the execution plan.

For the advanced level, you need to design and optimize the sub-database and sub-tables. Generally, the databases of Internet companies are separated from reading and writing, and split vertically and horizontally, so this is also an experienced component.

Then redis is almost a necessary skill, and nginx and tomcat are almost necessary for the JAVA Internet.

As for the rpc related, there are many, various network protocols, serialization technologies, SOA, etc., you need to have a deep understanding.

Now the widely used rpc framework is dubbo in China. There is also a spring cloud related technology stack that is open source, and you can search by yourself.

As for jms-related, you must at least understand the principle. Under normal circumstances, those who are not specialized in developing middleware systems and support systems do not need to understand too many details. Domestic companies mainly use activeMQ and kafka. All you can say to me is research, and Ali p7 is not too problematic.

3. Programming ability, programming thinking, algorithm ability, architecture ability

Insert picture description here

First of all, I think 2W programmers have relatively low requirements for algorithms. No matter how advanced they are, they are most red-black trees, but the basic algorithms for sorting and query must be good.

Programming thinking is a must. Ask you about AOP and IOC. You are at least clear. The design pattern does not say that you have used each of them, but you can also understand a few.

I think it’s hard to evaluate programming ability.

Finally, there is the architectural ability. This kind of system does not mean that you are required to design a system that is as powerful as possible. At least it allows you to build a spike system. You must have a clear idea and direction.

Some people mentioned that this level is more than 2w. In fact, salary is related to interview performance and other comprehensive levels. For example, you are 985, top10, or postgraduate, or you know some node, big data, etc., or express Strong ability, will add points to the interviewer's pain points.

If you reach the level I said, the starting salary is 2w, and other outstanding performances will add points to this basis. However, the treatment of pure JAVA is more consistent.

And SSH is really not what I want to black out. 2w level interviews rarely ask about the usage of SSH, but also ask about architecture and design principles. For example, how does mybatis manage session and cache. What are the design patterns you are familiar with in spring, how do you understand and apply them, how to pass parameters in the application, etc.

At last

Insert picture description here

In fact, Internet-related knowledge is easy to access after going to an Internet company, and it is not a difficult point. Many new college students can understand some middleware systems very well within half a year, not to say how difficult it is, but to have little contact, and they are afraid of the unknown.

Here I can recommend a few books to those who want to learn this area. These books can quickly get started and understand the panorama of Internet knowledge.

  • "Large Web Site Technology Framework - Core Principles and Case Studies" - Author: Li Zhihui
  • "Large-scale distributed site architecture - Design and Practice" - Author: Chen Kangxian
  • "Java middleware systems and large sites practice" - Author: Zeng Xianjie

Recommend a website concurrent programming network-ifeve.com. The knowledge of this website is definitely enough for you to interview an Ali P7, JD T3-2, and Tencent T3-1.

Hope to help those who need this information. Those who questioned me went to the interview to see if I was right. I actually don't doubt the possibility that the skill trees I mentioned can get 25K or 30K+, but the Internet is still relatively frothy now.
Insert picture description here

Guess you like

Origin blog.csdn.net/qq_41770757/article/details/110232401