This is the first day of my participation in the August Text Challenge.More challenges in August

The introduction

Alibaba these four words for a technical person, is a pilgrimage to the place, is a manufacturing dream to the place. After watching the lecture videos and documentaries of Teacher Ma for many times, I was amazed by his business vision and also had a desire to see what kind of company Alibaba is. This paper mainly describes how the author got the offer from Alibaba through three months of preparation in his busy work, hoping to be of benefit to students who want to enter Alibaba. The interview prep experience is suitable for fresh graduates looking for their first Java development job out of college, as well as experienced drivers who have been working for several years.

Why change jobs

The most important work experience of the author is working in a company that ranks the first in the world in the field, but this company is based on hardware and software is only supporting. Although has been seeking breakthroughs in software path, forming new profit growth point, transformation is bitter, but the author through the whole of the process of transformation, but the more the more find themselves and bottlenecks in the development of technology, is gradually entering a state of the comfort zone as well as the warm water boiled frog, so change had quit job development ideas. Due to my blind yearning for Alibaba, I set myself the goal of going to Alibaba, so I started my three-month interview preparation journey.

Interview preparation

The technical post of big factory, still need to prepare well, had better not fight without preparation. Because every interview has an interview record, if you are not prepared for the interview, it is likely to leave a bad interview record, and then when you interview with other departments, the interviewer will refer to the previous interview record to make a preliminary judgment on you, which will affect the subsequent interview. Therefore, if you want to interview a large company, you must prepare well for the interview. In addition, when preparing for the interview, we should not only look at it, but also learn to summarize it by ourselves. We should force input with output instead. Whether writing articles or mind mapping, we need to summarize and settle by ourselves. I divided the interview content into three parts, including technical knowledge, project experience and HR interview. Below, I will elaborate on these three parts.

Technical knowledge

1. Java skills

Solid basic knowledge is the foundation of everything, so whether fresh graduates or old drivers need to have it. When preparing for the interview, this part should not be lazy, because the first part is usually from the basic knowledge of the interviewer’s technical background. Java’s basic data structures, like List, HashMap, and ConcurrentHashMap, are familiar with the source code. The common question is why HashMap is not thread safe. Can you describe the principle of Volatile from the hardware level?

2, the JVM

The JVM is the foundation on which Java programs run, and therefore a very important foundation. And I suggest that when you’re preparing, you can draw a picture to understand it. Actual JVM tuning experience is even better. A flow chart like the one below can be drawn from memory. How to analyze OOM? We have to be very skilled in fullGC analysis.

3, concurrent

We all know that large factories often have high concurrency scenarios due to their large business scale. Interviewers also value a candidate’s precipitation in high concurrency. The first thing we need to understand is what makes concurrency safe? What is our solution? How to solve concurrency security problems in distributed scenarios?

Concurrency security analysis

4. Spring Framework

The Spring framework is a development framework we use every day, so we need to be familiar with its principles, design ideas, and how to extend it. How does AOP and IOC work? How are Bean creation flows and loop dependencies resolved? What are the design patterns? What are the extension points?

The middleware

Middleware is a necessary basic component in distributed system. As an excellent engineer, we not only need to be familiar with the principle of each middleware, but also know their application scenarios and how to select and compare. For example, with MQ middleware, why do you use RabbitMQ in your project and not Kafka? What is the type selection thinking involved? These are common in job interviews, and interviewers are more interested in hearing what you think. In addition, it is recommended that we prepare some production problems and small cases to solve problems before the interview, so that when the interview can be handy rather than think on the spot, to avoid the interview process may be due to the tension of a sudden can not remember the embarrassing scene. Of course it has to be a high quality case.

The database

Although various databases emerge in an endless stream, in practice, most of our business data is stored in relational databases. Therefore, the database is very important to the interview. Take Mysql for example, we can first comb according to the following structure, Mysql storage structure we have to know, a SQL execution process we can describe in our own language, how much data in the actual project? How to divide database and table? How is the index designed? What are the design rules? Have YOU optimized SQL? How is it optimized?

Index analysis

Redis

Redis, as the most commonly used caching infrastructure component in current distributed systems, is also the focus of the interview. In the process of preparation, we need to sort out what problems we have encountered in the process of using Redis. For example, after data caching, how to ensure the consistency of Redis data and database data? How to ensure the high availability of Redis in the project? Are you using master-slave mode or Sentinel mode? Why is that?

MQ

MQ is the essential base middleware for microservices architecture, so it is important to prepare well. What is the role of MQ in microservices architecture, primarily? What is the comparison of Kafka, RabbitMQ, RocketMQ and other messaging middleware? How are messages stored? How can messaging middleware be highly available? How is the network communication module of MQ implemented?

From the above description, do you know how to prepare for the middleware interview? If you learn a new middleware, you can also follow these steps to prepare. In what scenarios is middleware used? Have you done selection comparison? Why RabbitMQ and not Kafka? How is the high availability of middleware guaranteed? How is high-performance middleware implemented?

Project experience

Before the interview, you must reorganize the projects you have done. The key part is the part you are responsible for, and you must be very familiar with it. At the same time, you should connect your upstream and downstream services to form a complete closed loop of business. Distilling down the most technically challenging questions from your project and preparing them before the interview is a must-ask question. Prepare what is the biggest technical challenge in the project (clearly describe the problem), how do you analyze the problem (your own analysis process), how do you solve the problem (the actual solution process), and what is the result of the solution (what is the result of the solution). This is the problem answer formula SUMMARIZED by me. W(What)A(Analysis)H(How)R(Result) Follow this methodology in interview preparation and your answers will be amazing.

algorithm

There is nothing to say about this is to practice and write more, even with white paper to write basic fast sorting algorithm, LRU and so on. Leetcode is recommended here. Be sure to familiarize yourself with common topics. If the scene can not write out, but at least their own ideas to have the corresponding.

The HR interview

After going through the previous rounds of technical interviews, congratulations on finally reaching the final HR interview. Although it is not a technical interview, it is a very important round of interview. In a big factory like Ali, HR has a veto right. The HR interview will usually ask you to introduce your own experience, if you are a student, your study experience, what projects you have done. If it’s social, focus on your work experience and why you’re changing jobs. HR interview questions mainly include the following types, and you can prepare according to your own situation. 1, self-introduction, as brief as possible rather than simple, the whole paragraph of introduction to memory points, so that HR has a basic impression of you. 2. My current role in the team and current situation. 3. Why do you want to change your job? Is it not going well or is there any other reason? 4. Show your willingness to work hard and take on challenges, preferably with a short story. 5. Why do you want to XX? Do you have other offers?

conclusion

Interview preparation is a practice, which is a comprehensive summary and sorting of one’s knowledge system, technical system and own value. No matter how it turns out, I think I’ll get a boost. Take myself as an example. In the process of preparing for the interview, I summarized the methodology of sorting out knowledge, got rid of the habit of sleeping late, and got up at 6:30 every day. All these small but beautiful changes were achieved through cultivation in this process. At the same time, WE hope that one thing is clear, interview preparation is not to recite Java eight-part essay, but to carry out technical thinking, technical thinking is a very important quality of big factory, ask yourself a few why? I think you’ll get more out of it.

Finally, I would like to share a word with you. A true master always has the heart of an apprentice. Only by keeping a humble heart and keeping an empty cup can you gain more. Efforts may not be rewarded, but there will be no return without effort. I wish everyone can find their favorite job.

PS: As an advertisement, Alibaba has started the largest campus recruitment in history. Please contact me for internal promotion. In addition, the team is also carrying out social recruitment, and students in need can contact me for internal promotion.