Some people mentioned that this level is more than 2W, in fact, the salary is related to the interview performance, but also related to other comprehensive level, such as you are 985, top10, or graduate degree, or know some node, know some big data and so on, or strong expression ability, hit the interviewer pain point will be extra points. A: If you reach my level, the starting salary will be $20,000, plus additional points for other outstanding performances. But the pure JAVA aspect of the treatment is more consistent. SSH is not my fault. 2W level interviews rarely ask about SSH usage, but also about architecture and design principles. For example, mybatis manages session and cache. What are the design patterns you are familiar with in Spring, how do you understand and apply them, how to pass through parameters in the application, etc.
First of all, the monthly salary of 20,000 yuan is too common in BAT, which is usually senior engineer or senior engineer. It is about P6 in Alibaba, T5 in Baidu, T2-3 in Tencent, T3-1 in JINGdong, AND P6 in Meituan. I don’t know anything else. This level is their main coder level. They work overtime and can solve most problems. However, they still need to cultivate their ability of overall system architecture and in-depth analysis of bottlenecks.
Secondly, there are three aspects to master the skill tree: the first is the foundation. Such as collection classes, and package, class loading, IO/NIO, JVM, memory model, generics, exceptions, reflection, and so on have a deep understanding, 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 the Internet enterprise. Besides, most people can’t get past that, and then they make a scene and say it’s useless. Why interview? For example, when using a thread pool, the inner layer of the thread pool will surge due to the use of unbounded queues in the case of remote service exceptions. How can you play if you don’t know the thread pool? Another example is the failure to implement true thread-safety because of a misunderstanding of ThreadLocal and using it for thread-safety control. There are memory leaks how to plug the problem, how to optimize the system performance. So as a $20,000 JAVA programmer, you have to have this foundation.
Second, you need to have a comprehensive knowledge of Internet technology. Starting at the bottom, you should have a deep knowledge of mysql, Redis, Nginx, Tomcat, RPC, JMS, etc. You want to ask what you need to know, I can give you a big idea. First of all, for MySQL, you need to know the common parameter Settings, how to select the storage engine, also need to know the common index engine, know how to select. Know how to design tables, how to optimize SQL, and how to tune according to the execution plan. Advanced you need to do sub-database sub-table design and optimization, the general Internet enterprise database is read and write separation, but also vertical and horizontal split, so there is experience in this component. However, Redis is almost a required skill, while Nginx and Tomcat are almost mandatory for JAVA Internet. As far as RPC is concerned, you must have a deep understanding of various network protocols, serialization technologies, SOA, etc. At present, the RPC framework widely used in China is Dubbo, and there is open source SpringCloud related technology stack, which can be searched by yourself. As for the JMS related at least to understand the principle of it, generally not specialized in the development of middleware system and support system do not need to know too many details, domestic enterprises are mainly used to activeMQ and Kafka. Everything you can say to me, Ari, p7 is not a problem.
The third is programming ability, programming ideas, algorithm ability, architecture ability. First of all, 2W programmers on the algorithm requirements I think is still relatively low, and then the most advanced red black tree bar, but the sorting and query of the basic algorithm will. Programming philosophy is a must. Ask you about AOP and IOC and you have at least a clear understanding of design patterns. You have not used every one, but you can understand several. Programming ability this I feel bad to evaluate, but take a 2000W users according to the name and age of the sort of questions can also be handy. The last is the architecture ability, this is not to say that you design a high concurrency system, at least let you do a second kill system, have a clear idea and direction. This is what I said 2W level, if you are lucky and perform well in the interview, 3W + may also oh (ಡωಡ) welcome to comment, welcome to small series (#^.^#)