Java Programmers earn 30000 a month , What level of technology is needed ?
When I was at a party with friends recently , A question was asked , say Java How can programmers earn 20000 a month , What level of technology is needed ? People said that this can only be obtained by engineers of large enterprises or Internet enterprises . Maybe it is , It's not likely that small companies or non internet companies will get 20000 yuan , It should have been transferred to management . There are also regional issues , This is not in my consideration , Because in addition to the north, Shanghai, Guangzhou, Shenzhen and Hangzhou , Other places are hard to reach .
Others mentioned that this level is more than that 2w, In fact, salary is related to interview performance , It is also related to other comprehensive levels , For example, you are 985,top10, Or graduate education , Or understand node, Understand big data and so on , Or the ability to express , Hit the interviewer pain points will be added points . If you reach the level I said , The starting salary is 2w, There are other excellent performance will be added on this basis . But pure JAVA The treatment is quite consistent . also SSH I really don't want black ,2w Level interviews are rarely asked SSH Knowledge of , There are also technologies such as design patterns and underlying principles . for example mybatis How to manage it session and cache Of .spring What design patterns are there that you are familiar with , How do you understand and apply it .
In fact, Internet related knowledge is easy to access after going to Internet companies , It's not that difficult . If you're in the first line of business , I said a few points almost always accompany you , Don't worry at all that you won't . Many new college students in our company can understand some middleware systems in half a year , It's not about how hard it is , It's just less contact , I'm afraid and confused about the unknown .
I'm here to provide an advanced roadmap for programmers who want to reach this level or even higher , Mainly for 2 reach 5 Years and above working experience Java Developers , From breadth to depth, things are relatively comprehensive , The technology includes it Java High concurrency , Microservices , Source code analysis , High performance , Distributed technology , In fact, we must have been exposed to these technologies , So let's take a closer look .（ Pictures can be saved ）
First of all, a monthly salary of 20000 yuan BAT It's so common , Usually senior engineer and senior engineer position , In Ali, yes p6~p7 about , Baidu is t5 about , Tencent is t2-3 about , Jingdong is t3-1, Meituan is p6 about , I don't understand the rest . This level is their main level , More overtime , It can solve most problems , However, the overall architecture ability of the system and the ability of in-depth analysis of bottlenecks still need to be cultivated .
Secondly, there are three aspects of the skill tree ：
The first is the foundation . For example, for the collection class , And contract ,IO/NIO,JVM, Memory model , generic paradigm , abnormal , reflex , And so on , It is best to read the source code to understand the underlying design . For example, the general interview will ask ConcurrentHashMap,CopyOnWrite, Thread pool ,CAS,AQS, Virtual machine optimization and other knowledge points , Because these are absolutely important to Internet companies . And most people can't pass it , It's no use talking about it , Why interview . Take an example , When using thread pool , Because unbounded queues are used , In the case of remote service exception, the inner layer soars , How to solve it ? If you connect, Cheng Chi doesn't know , How do you play ? Take another example , Because of the right ThreadLocal Misunderstanding , Use it for thread safety control , This leads to the failure to achieve true thread safety . So as a person who gets 20000 yuan JAVA Programmers need to have this foundation .
Second, you need to have a comprehensive knowledge of Internet technology . From the bottom , You need to know more about it mysql,redis,mongodb,nginx,tomcat,rpc,jms Etc . You have to ask what you need to know , I can give you a big sigh . First of all, for the MySQL, You need to know the common parameter settings , How to choose storage engine , You also need to understand common indexing engines , Know how to choose . Know how to design tables , How to optimize sql, How to tune according to execution plan . Advanced you need to do sub database sub table design and optimization , Generally, the databases of Internet enterprises are read-write separated , It also splits vertically and horizontally , So there's also an element of experience in this . then redis,mongodb It's all about understanding the principles , You need to adjust the parameters , and nginx and tomcat Almost all of them JAVA Internet is a must , In fact, the selection of Alibaba's technology stack has a little relationship . as for rpc If there are many related ones , Various network protocols are required , Serialization technology ,SOA wait , You need to have a deep understanding . Now it is widely used rpc frame , At home dubbo 了 , You can search by yourself . as for jms At least we have to understand the principle , Generally speaking, it is not specialized in developing middleware systems and supporting systems, and it is not necessary to know too many details , Domestic enterprises commonly used are activeMQ and kafka. What you can say to me is more in-depth research , Ali p7 It's not a big problem , Of course, it also depends on your interview performance in terms of architecture ability .
The third is programming ability , Programming ideas , Algorithm capability , Architecture capability . first 2W I think the programmer's requirements for algorithms are still relatively low , No matter how advanced, it's the most red and black trees , But the basic algorithm of sorting and query must be able to . Programming ideas are necessary , Ask you a question AOP and IOC You know, at least , Every design pattern is not used , But there are a few . I don't think it's good to evaluate the programming ability , But take one 2000W Users can sort them by name and age . Finally, architecture capability , This is not to say that you are required to design a system with high concurrency , At least let you do a second kill system , The design of anti weight request can be done quickly without pit .
You don't have to master all the technology , But there are a lot of things that interviewers have to ask , So you can't help but know , I hope to help those who need this information . Those who question me go to the interview and see if I'm right , If you have a chance, you can share it again , Let's talk about the Internet JAVA Interview questions , I can put 90% I'll give you all the questions . In fact, I don't doubt that I can get these skills trees 25K perhaps 30K+ The possibility of , But now the Internet is still relatively frothy. .
That's what I said 2w standard , If you're lucky , Good interview performance ,3w+ It's also possible
In view of these technologies , I got a friend to record some videos , It includes Java High concurrency , Distributed , Microservices ,JVM, Source code analysis and other videos , Some are BAT Wait for the Internet interview video , Here to share with you , Those who are interested in these technologies can add mine Java Back end technology exchange group |：854393687.