This article is shared by crossoverJie, a blogger in the cloud community.


The following is the full text:


Recently, some friends are interviewing Ali, and some friends have discussed with me the reasons for the Java-interview project. Recently, I am also in charge of the recruitment of the department, which reminds me of the three-month Interview experience at the beginning of the year. I wasn’t gonna say it, because it didn’t work out.


However, due to the experience of those months, I have a new understanding of the working mode of dACHang, the focus of the examination of candidates and the routine of interviewers, etc.


Of course, the most important thing is that this period of time to make up for the leakage of their own progress.


A little background:

From December last year to the end of March this year, I went back and forth with three departments of Ali.


Two of the departments passed the technical interview, and one was kneeling on three sides.


The results were good, but the process was tortuous.


Below I will try to describe the process and the general outline of the interview questions, hoping to bring some inspiration to the students who want to change jobs and are interviewing, help may not be, but inspiration can still have.


The following content is longer, please prepare the melon seed bench again.


A department


First of all, I had my first opportunity. In December last year, a big man joined me. Later, I found out that the technical Leader of a department saw my blog on the Internet and asked me if I wanted to try ali.


It had been more than a year since the last time I had met Ali, so I agreed.


A week after the recommendation, I received a call from Hangzhou. Coincidentally, AT that time, I was waiting at the airport with about an hour to check in. I thought I had enough time.


It was my first interview in more than a year, in a noisy environment like the airport. I was more or less nervous.


Side 1.


Here are some of the things that impressed me:


Interviewer:

Tell me about a project you have done that impressed you deeply or that you think you have done well.


Blogger:

I think I did a good job in XX. I used XX requirements to achieve XX functions, and the performance was improved by N times.


Interviewer:

You said you used AOP, can you talk about its implementation principle?


Blogger:

It relies on dynamic proxies, which are divided into JDK and CGLIB…


Interviewer:

Well, can you talk about their differences and their strengths and weaknesses?


Blogger:

While the JDK is based on interface implementations, CGLIB inherits proxy classes…


That’s the way it goes on and on, and if you get to the end of the conversation you start asking random questions:


  • How is the JMM memory model divided? What is stored separately? Thread safe or not?
  • Class loading mechanism, when we talk about the parent delegate model we ask what violates the parent delegate model? Why is that? Why parent delegate? What are the benefits?
  • How do I use multithreading? What are the benefits? What do the core parameters of the thread pool mean?
  • How do threads communicate?
  • How does HashMap work? ConcurrentHashMap ConcurrentHashMap ConcurrentHashMap ConcurrentHashMap ConcurrentHashMap
  • How to design sub-database sub-table? Vertical split, horizontal split?
  • What are the rules for generating service ids?
  • SQL tuning? What should I pay attention to when using the database?
  • How to optimize when an application starts slowly?


It was all of those things, but by the time we got to the last one, I was already on the plane. Finally, I had to hang up in advance and told me that I would change another colleague to communicate with me before the end. It should be too much on one side after hearing such a reply, which was confirmed later.


2. 2


About a week later, the second interview came.


I recognized the voice, so I tried to ask if it was the same interviewer I had interviewed before, and it was.


Because the interviewer of the second interview had something unexpected, he came to take the place. So I quickly asked him if he could repeat the bad answer before? I got a positive response and started my performance.


Had the experience for the first time this time natural also easy road, originally feel everything is in master but be told to need written test suddenly excited wake up.


The written test is an online platform that requires writing code in a web page and will have a clear question:


Logs are read from a log file by keyword, the number of occurrences is recorded, and finally printed in order of occurrence.


In this process, it is important to communicate with the interviewer more, because the written test has a time limit, do not find the question in the end to understand the wrong, which is the same as the college entrance examination composition found the wrong direction.


In addition, it shows how you think about solving the problem, even if the final result is wrong, but the process of thinking may be in line with the interviewer’s appetite. This is the same as this year’s college entrance examination; High marks for correct process, low marks for results.


3. On three sides


After another week or so, I received calls from three people, who were usually technical leaders.


This process is less about technical details and more about software capabilities, such as teamwork and learning ability.


  • But I remember also asking the following technical questions:
  • What is your understanding of the HTTP protocol?
  • What do you understand about TCP? Three handshakes? Sliding Windows?
  • Basic algorithm, Base64, etc.
  • Java memory model, understanding Happen Before.


A week later I got a call from the HR assistant to set up a video interview with HRBP and the head of product technology.


But I did not face down, specific reasons have to look down.


B department of


After finishing the three aspects of department A, I waited for almost A week, during which TIME I received an email.


Basically, he saw me on GitHub, and their CTO was very interested in me (I couldn’t believe my eyes) and asked if I wanted to try Ali.


After comparing the differences between A and B departments, I found that B department was indeed more attractive in what it did. Then I expressed my concern that an interview was in the process. The other side said that they could have three interviews with me quickly in private, and I would make my own choice if everything was ok. At least it’s a win-win for both parties.


I thought it would not be a loss, and the other party was very sincere, agreed to try; Hence the following interview:


Side 1.


Interviewer: Understanding Java locks?

Blogger:

I talked about the use of the Synchronize Lock interface.


Interviewer: What are their differences and strengths and weaknesses?

Blogger:

Synchronize (previously known as a weight lock in JDK1.6) synchronizes by moving in and out of an object monitor. After 1.6, XX optimization was made…

ReentrantLock is implemented using a clever data structure, and locking is explicit…

After that, we talked about distributed locks for almost half an hour.

Then I talked about my open source project:

  • How did you want to do this project?
  • There’s been some concern about what’s going on?
  • What is your future study plan?
  • What books do you read?

I didn’t talk much about technology, but I talked a lot about personal development.


2. 2


After almost a day’s interval, the second interview came soon.

It’s not very much:

  • Multiple ways to communicate between threads?
  • Traffic limiting algorithm? Single-machine current limiting? Distributed traffic limiting?
  • Guava Cache was mentioned. Do you know how it works?
  • How to locate an online problem?
  • High CPU load? OOM check?

After the chat said the next day should have three.


3. On three sides


The interviewer for the third interview should be the director mentioned in the previous email, who used to be a technical powerhouse at the front line. Not many questions:

  • Talk about your understanding of Netty?
  • Netty’s threading model?
  • Write an LRU cache.


4. A written test

I thought I had finished the technical interview, but I was informed that all the interview procedures would have to have a written test, so I took the written test again:


Print odd and even numbers alternately


This is relatively simple, lock-based, wake-on-wait mechanisms are ok. Finally, I was informed that I had passed the written test.


Later, with the help of the big man who recommended me, I passed the whole technical round in A dramatic way (I really appreciate his recognition), and I was informed of this news just after I had scheduled A video interview with department A.


Which means I have to turn down a department!


That’s right. I’m turning one down. It was really hard for me. I didn’t even think there were two more opportunities in front of me.

Finally, based on my personal interests and the enthusiasm of DEPARTMENT B, I was embarrassed to reject department A…


HR side


I have never met the HR process of such a big factory before, so I frantically searched, hoping to make up for some experience.


Maybe that’s how happiness begets sorrow. I did guess most of the questions asked by HR, but unfortunately I still failed in the end.


Then I wondered if I hadn’t rejected A, would the outcome have been different?


But that’s the way it is, there are no assumptions and everyone is responsible for their own choices!


The general question is:

  • Why do you want to come to Ali?
  • What is the most successful and challenging thing you have done?
  • Most memorable experience on the job?
  • What are your expectations for joining our team?


C department


Not long after I passed HR, I received an invitation from the third department.


To be honest, I refused. I was devastated that I couldn’t get my wish after nearly two months.


I expressed my idea to the boss who contacted me, but he thought that the reason why I was finally passed was a small problem. If I tried again, I would have a great chance to pass.


After I told my friends about it, they supported me to try again. There was nothing to lose and the interview was still going on.


So I was beaten chicken blood again, just have the following interview:


Side 1.


Interviewer: Selection and differences of servitization frameworks?

We discussed the differences, advantages and disadvantages of SpringCloud, Dubbo and Thrift.


Interviewer: How does a consistent Hash algorithm work?

Hash the data into a ring of 0 ~ 2^32-1…


Interviewer: What do you understand about Zookeeper?

Blogger: As a distributed coordinator…


Interviewer: How do you handle MQ repeat consumption?

Blogger: Business idempotent processing…


Interviewer: Client load algorithm?

Bloggers: polling, random, consistent Hash, failover, LRU, etc.


Interviewer: Are long assignments atomic?

Blogger: No…


Interviewer: How does volatile work and what does it do? Happen Before?

Visibility, consistency.


2. 2


About a week later, I received a second call:

I thought I would enter the written test directly as before, but THIS time I talked briefly first:

  • What is your understanding of microservices, their benefits and drawbacks?
  • Distributed cache design? Hot cache?

After that, the written examination process was officially entered:

This is about design skills, which is understanding design patterns, right? Whether it can cope with subsequent expansibility.

After finishing the written test, I communicated with the interviewer. I thought it would be an algorithm test, but later I learned that he could see the written test of the previous rounds, so he chose a direction that he had not done before.


So we do not have to deliberately go to the topic, there is always you can not think of, usually more accumulation is the hard truth.


3. On three sides


About two weeks later, I was informed by HR. I hope to attend the on-site interview in Hangzhou. And Ali paid for the round-trip tickets, hotels, etc.

Ali can be seen to be eager for talent or willing to pay the cost.


Since all this, as a travel so went to hangzhou.


The in-person interview is different from other interviews in that there are two interviewers:

Give a scenario and talk about the way you frame it.

This is higher to the usual accumulation requirements.


There is also a deep impression:

The entire process of clicking a button on a web page to the server is as complete as possible.

In fact, I have seen it before. It seems to be an interview question for Google.


After that, let me go back and wait for the notice. I knew I was cold before I saw HR.


conclusion


I’ve compiled most of the interview questions mentioned above on GitHub:

Github.com/crossoverJi…


Finally, summarize the interview experience of nearly four months:


  • Must actively promote themselves, like in the A department of three, because the basic answer is not very good; Therefore, I finally expressed my attitude and enthusiasm for work and technology. Show the interviewer that your potential is worth an HC place.
  • In the interview process, you can take the initiative to put forward what you don’t know. You can’t pretend to know what you don’t know. You can direct the interviewer to your area of expertise. For example, I was working on locks at the time, so half an hour with the interviewer was a plus.
  • Always take the initiative to accumulate knowledge. Blogging and working on open source projects are great ways to do this.
  • Blog can record the pits I have stepped on to deepen my impression, and in the process of writing, I can check and fill in the gaps, and finally consolidate the whole knowledge system. Good content can also get unexpected harvest, such as my first interview opportunity.
  • GitHub is a calling card for developers, and being actively involved in open source projects can be a great way to brainstorm with global moguls, and a great plus in the interview process.
  • Interviewers usually end up asking, “Is there anything you want to ask me? Don’t ask about company benefits. May I ask about the performance of this interview? What else needs to be improved? So that you know how well you answered and you can complete yourself.
  • Another point: do not deny yourself after a failure in an interview, sometimes it is really not their ability. This is also about fate.



Although I failed to enter Ali in the end, I am now the technical director of a department in the company. I still have a nest in our city, a sweet home, and strive for the life I want with my girlfriend.


Follow public accounts

【 Pegasus Club 】


Pegasus AI/big data/technology management and other personnel learning exchange park

Previous welfare concerns about the pegasus public number, reply to the corresponding keywords package download learning materials; Reply “join the group”, join the Pegasus AI, big data, project manager learning group, and grow together with excellent people!

Microsoft Danniu artificial intelligence series of lessons

(Scan or subscribe)




RSVP number “2” machine learning & Data Science must-read classic book with resource pack!

Into AI & ML: Learning machine Learning from Basic Statistics (PDF download)

Reply number “12” small white | Python + + machine learning Matlab neural network theory + practice + + + depth video + courseware + source code, download attached!


Reply number “13” big data technology tutorial + books +Hadoop video + big data research newspaper + science books

Reply number “14” small white | machine learning and deep learning required books + machine learning field video/PPT + large data analysis books recommend!

Reply to the number “16” 100G Python from beginner to Master! Complete video tutorials + Python Classics for self-study!

526 Industry reports + White papers: AI, Artificial intelligence, robotics, smart mobility, smart home, Internet of Things, VR/AR, blockchain, etc. (download)

Reply number “19” 800G ARTIFICIAL intelligence learning materials :AI ebook +Python language introduction + tutorial + machine learning and other limited time free access!

17 mind maps for machine learning statistics

Ten years ago on This day on Machine Learning Projects.

Machine learning: How to go from beginner to Never Giving up? (With benefits)

Respond to digital “24” flash download | 132 g programming data: Python, JAVA, C, C + +, robot programming, PLC, entry to the proficient in ~

Reply number “25” limited resources | 177 g Python/machine learning/TensorFlow video/deep learning algorithm, introduction to cover/intermediate/project each stage!

Reply | digital “27” Wu En of Stanford CS230 deep learning course a full range of information release (download)

FMI Artificial Intelligence and Big Data Summit Guest Speech PPT

Top 10 AI Jianghu Fields

Machine Learning Practical Experience Guide

More than 100 Papers on deep Learning

Top ten Classic Algorithms of Data Mining

6.10 Ele. me & Pegasus Project Management Practice PPT