Meituan architects talk about development: What skills do you have for a 30K high salary in a small company?

Preface

The job-hopping interview season for Jin Jiu Yin Shi is coming soon. When I was gathering with friends recently, I asked a question, saying that the salary range of Java programmers for 1-3 years is roughly 15-25K. Is it possible to reach 30K in advance? What about his salary? Some people say that this can only be obtained by engineers from large companies or Internet companies. Maybe it is. Small companies or non-Internet companies who get 30K are unlikely to be junior developers or code farmers, and they should have been transferred to management. There are also regional issues. This is not within my consideration because it is difficult to reach other places except Beijing, Shanghai, Guangzhou, Shenzhen and Hangzhou.

First of all: What are the corresponding levels of 30K?

A monthly salary of 30K is too common in BAT and other big manufacturers. It is generally a position of senior engineer and senior engineer. It is about p6~p7 in Ali, t5 in Baidu, t2-3 in Tencent, and t3- in JD.com. 1. Meituan is around p6, I don't know the others.

Secondly: What are the main aspects of the mastered skill tree:

The first is the basics. For example, you have an in-depth understanding of collection classes, concurrent packages, IO/NIO, JVM, memory models, generics, exceptions, reflections, 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, virtual machine optimization, etc., because these are absolutely important to Internet companies. Moreover, most people can't pass this level, and they make noises saying 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, true thread-safety has not been achieved. Therefore, as a JAVA programmer with 30,000 yuan, this foundation is necessary.

Second, you need to have a comprehensive knowledge of mainstream Internet technologies. Speaking from the bottom, you must at least have a deep understanding of mysql, redis, mongodb, nginx, tomcat, rpc, jms, etc. You have to ask how much you need to understand, and I can give you a big deal. First of all, for MySQL, you need to know the common parameter settings, how to choose the storage engine, and you also need to understand the common index engines and know how to choose. Know how to design tables, how to optimize SQL, how to tune according to the execution plan.

For advanced users, you need to design and optimize the sub-database and sub-tables. Generally, the database of Internet companies is separated from reading and writing, and it will be split vertically and horizontally, so this is also an experience component in it. Then redis and mongodb need to understand the principle and need to adjust the parameters, and nginx and tomcat are almost necessary for the JAVA Internet. In fact, it is a bit related to the choice of Ali's technology stack. As for the rpc related, there are many, various network protocols, serialization technologies, SOA, etc., you need to have an in-depth understanding. Now the widely used rpc framework is dubbo in China, 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. What you can tell me is more in-depth research, Ali p7 is not too big a problem, of course, this also depends on your interview performance in terms of architecture capabilities.

The third is programming ability, programming thinking, algorithm ability, and architecture ability. First of all, I think 30K programmers have relatively low requirements for algorithms. No matter how advanced they are, there are most red-black trees, but the basic algorithms of 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 understand a few. I don’t think it’s easy to evaluate programming ability, but it’s easy to sort a 2000W user by name and age. Finally, there is the architectural capability. This does not mean that you are required to design a system that is so powerful and highly concurrent. At least it allows you to build a spike system. The design of anti-requests can be quickly completed without pits.

So here I also provide a detailed advanced roadmap for those Java programmers who want to achieve this level of technology or even want to develop as an architect, mainly for Java developers with 1-5 years of work experience, ranging from breadth to The in-depth architecture diagram is relatively comprehensive. The technologies inside include Java high concurrency, microservices, source code analysis, source code analysis, high performance, and distributed content. These are also the more commonly used technologies by Internet companies, so let's take a closer look. (Pictures can be saved)

1. Analysis of the underlying source code

Learn the Java technology system, design patterns, popular frameworks and components, common design patterns, necessary for coding, Spring5, the latest framework essential for applications, MyBatis, essential components for playing databases...

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

2. Distributed architecture

High concurrency, high availability, massive data, no knowledge of distributed architecture is definitely impossible to play, you must understand the principle of distributed architecture, distributed architecture strategy, distributed middleware, distributed architecture actual combat, etc. content

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

3. Microservice architecture

Businesses are becoming more and more complex, services are layered, and microservice architecture is the only way to upgrade the architecture. For example: microservice framework, Spring Cloud, Docker and virtualization, microservice architecture

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

4. Performance optimization

Any ppt architect who breaks out of the details is a rogue, can plan upwards, and can solve first-line performance problems downwards, such as: performance index system, JVM tuning, Web tuning, DB tuning, etc...

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

5. Multi-threaded concurrency

From architecture design, to application layer tuning, and then in-depth understanding of the underlying principles, solid Java basic skills can turn oneself into a sweeping monk: memory model, concurrency mode, thread model, lock details, etc...

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

The techniques contained above are not for you to master all, but many things the interviewer must ask, so you have to know, and secondly, I hope to help those who need this information. Those who question me go to the interview to understand if I am right. If you have the opportunity, you can share it again. Let's talk about the Internet JAVA interview questions. I can list all 90% of the questions for you. I actually don't doubt the possibility that these skill trees can get 30K or 40K+, but the Internet is still relatively frothy now.

How to study together, are there free materials?

Recently I also collected dozens of interview questions from companies such as Alibaba, Toutiao, and Ant Financial for 19 years based on the above-mentioned technical system diagram, and organized the technical points into videos and documents (in fact, it took a lot more energy than expected) , Including knowledge + many details, due to limited space, here is a part of it in the form of pictures.

This information is particularly suitable for:

  1. Java programmers who are going to be interviewed recently should check for omissions and make up for shortcomings as soon as possible;
  2. Want to understand the latest recruitment needs/technical requirements of "first-line Internet companies", compare and find out their strengths and weaknesses, and evaluate their competitiveness in the existing market;
  3. I have been doing Java development for several years, but have not yet formed a systematic Java knowledge system, and lack a clear improvement direction and learning path programmers.
I believe it will bring you a lot of gains. (More complete content and information can be obtained at the end of the article) Repost this article, follow me and add VX: MXW5308 to get it for free

Meituan architects talk about development: Can Java programmers in small companies get 30K high salaries?

 

 

Repost this article and follow me to add VX: MXW5308 can get it for free

Guess you like

Origin blog.csdn.net/weixin_45132238/article/details/115081467