The material for this article comes from an iron fan who has followed me for more than a year
For many people who do not have the advantage of academic qualifications, it is very difficult to interview a big factory. For me, it is the same. I was born in the second school. I thought I would spend my whole life on a three-point line until life changes. , It gave me new ideas and goals, so my second scum scum also struggled and won Ali P6 post. Today I share this wave of experience, mainly in the hope that it can inspire technical people who are also troubled by academic qualifications, and can have a reference value for career and technical planning, thank you!
1. What is the difficulty of interviewing Ali P6? (Interview difficulty)
(1) The difficulty lies in the "mentality"
The first hurdle that needs to be overcome is actually my mentality. Because I was born in a second school and my base is relatively low, the interview with Ali is not a thing of great confidence, let alone a senior development post, so it is easier to have no confidence in my heart. Therefore, before preparing for the interview, adjustment of mentality has been done for a long time, so the difficulty is that the "mentality" is not wrong at all. If the mentality is not adjusted, the interview is almost useless.
(2) The difficulty lies in "requirements"
The second is the requirements. The so-called requirements are actually Ali’s requirements for the position, that is, as a developer, how much technology stack do you have?
First of all, you must know what you write on your resume. Second, you must have some highlights, that is to say, have a deep understanding of a certain technology, so as to give the interviewer a refreshing feeling.
So, how much do you need to master when interviewing Ali P6?
Java collections: HashMap and ConcurrentHashMap. It is best to read some source code at ordinary times. It is better to know why each parameter is set so large? what is the benefit?
The JUC package must be learned, even if the usual programming is not used at all, it must be learned. At least you need to know aba, cas, aqs, unsafe, volatile, sync, and various common locks, deadlocks, thread pool parameters, etc., and you must also understand spin, blocking, deadlock and how to locate it, how to locate oom The question is, how to locate the CPU is too high and other basic operations, you may not have production debugging experience, but it does not mean that you may not be able to ask things like top, jps, jstack, jmap. And possibly derived jmm model and mesi protocol.
Big manufacturers must ask JVM: garbage collection algorithm, garbage collector, JVM memory model, each area usage, various types of oom, jvm tuning experience, class loading process, parent delegation, etc.
Spring has to take the time to look at the source code. Generally, it will ask about the life cycle of the bean, how to solve the circular dependency, realize the transaction principle, and the dynamic proxy principle.
Dubbo must also ask about the design framework and load balancing.
Redis needs to understand more, single-threaded model, aof, rdb, rewrite, master-slave, cluster, which types? Contains some common cache problems such as breakdown, penetration, avalanche, and data consistency.
Mysql, transaction, lock, index, b+ tree, master-slave these you must know
Mq, I use rocketmq, you have to know why it is used, repeated consumption, sequential messages, transaction messages, high availability, message loss, squeeze scenarios, the entire message sending and consumption process, it is better to read the source code, and better to blow
For Netty, what about zero copy, bio, nio, aio, architecture design? Have used it and seen it better
Algorithm, it is recommended to go to the question, I am lucky, the simple algorithm made me come across, some quick sorting, stacking, binary tree related, linked list inversion, looping, ring nodes, jumping stairs and other conventional simple algorithms are recommended to brush , Dual pointer, dp, recursion, these are still more to find the feeling, the statistics of the scene with limited memory of big data, you can try some middle when you have time, if you can hand-write the red-black tree, then I guess the algorithm is stable.
Network, http, tcp, https, udp, 7-layer network protocols, etc., it is best to combine your own understanding, and you must memorize it.
There are also some distributed transaction implementations, architecture implementations, such as grab red envelopes, high-concurrency orders and other conventional scene design. You design, how do you design? Find some big cows or check on the Internet to help you find out what loopholes are there and what solutions are there? What are some good middleware in the industry?
Java architecture advanced mind map
2. Ali interview questions (5 in total)
Ali side:
Self-introduction, self-made projects and technical fields
Talk about the underlying implementation of sync, lock optimization, and comparison with lock
Talk about the detailed process of JVM parameter tuning
Why is this set? What are the benefits? Describe the gc scene, how to analyze the gc log?
Redis data structure, usage scenarios, how to use redis in Weibo scenarios to design user relationships?
Thread pool parameter setting, why is it so set and effective? 7 parameters
How to solve the circular dependency of spring? Why do we need a three-level cache?
The underlying principle of priority queues?
Ali two sides:
Introduce yourself
Chat project
In combination with your project, how do you design and raise loopholes, how do you solve them? How to improve, in case it hangs? Is there any problem with adding a machine? What if I have to have no problems?
How to design a high-concurrency order deduction inventory scenario
RocketMQ architecture design principle
Principles of Dubbo Framework Implementation
What books have you read recently? How do you usually study?
Can you tell me how to use commonly used load balancing?
Ali three sides:
This side mainly asks about the project, it gives you a stronger sense of pressure
Combined with the project, why is it designed like this? Let you optimize, how do you optimize, guide you to optimize in a reasonable and better way, database design, etc.
What did you do in the company, what did each system business line do, your performance, the handwritten algorithm linked list reversed?
Ali on all sides:
The main components of JVM and its role?
What is included in the JVM runtime data area?
JVM garbage collection mechanism, when to trigger MinorGC and other operations
JVM garbage collection algorithm:
JVM tuning tool?
Commonly used JVM tuning parameters?
The difference between stacks?
Tell me more about the CMS garbage collector?
How to judge whether the object can be recycled?
What are the new generation garbage collectors and the old generation garbage collectors? What's the difference?
java class loading process?
Tell me about the middleware you know (I was confused for a moment)
HR surface:
Why come to Ali?
Haven't you considered Ali before?
After graduating for so long, what do you think is your biggest change?
Summarize yourself in one sentence
3. What preparations did I do before interviewing Ali.
(1) Prepare resume
Resume is a facade, but also a stepping stone. Whether you can get an interview opportunity from Dachang depends on your resume. Regardless of academic surprises, Dachang most values whether there are bright spots in your resume. Therefore, we must be prepared for the content of the resume. Your own outstanding points, including technical and personality highlights, should practice expression and avoid temporary organization of language.
(2) Improve skills
In fact, I have a friend of Ali who told me a long time ago that many people think that big factories value academic qualifications, but the actual situation is not entirely. Ali only talks about heroes by ability. Therefore, in daily life, it is necessary and an inevitable trend in the future to improve one's abilities through continuous learning, and strive to narrow the distance between oneself and the target value.
Regarding improving the breadth and depth of my technology stack, my approach is:
①Read the actual documentation
②Read some source code
③Read some technical notes
(3) Swipe the interview questions
For people who are not very good at base, interviewing questions is actually the most "first aid" method. Therefore, before interviewing Ali, I brushed up a lot of interview questions. The purpose is not to be asked during the interview. Go to the original question, but have a corresponding understanding of the interview with the big factory. It is clear what Ali will ask in the interview and which technology stacks are involved.
①Compiling of Java core interview knowledge points
②Algorithm part (LeetCode+ fun of algorithm)
③The real BAT interview questions + special training
Make a summary
Many people with poor academic qualifications may not have much confidence in themselves. In fact, "miracle" can happen to everything, and the key to this "miracle" is to create it on their own. No matter if you are a little cabbage bird or a great technologist, you can't afford to learn this thing daily.
Opportunities are reserved for those who are prepared. Only with sufficient preparation can oneself stand out among the candidates.