Home  >  Article  >  Backend Development  >  Alibaba interview experience and summary (data research and development, Java research and development direction)

Alibaba interview experience and summary (data research and development, Java research and development direction)

WBOY
WBOYOriginal
2016-08-08 09:27:37853browse

The position I applied for is "Software R&D Engineer". When I arrived at the interview site, I chose the Java language (with a corresponding interviewer). However, a cross-interview was conducted later and I was promoted to the "data research and development" position.

Side:

First of all, introduce yourself.

Me: "I have done two projects. I have written several papers and patents. I also participated in the Alibaba big data competition. At the same time, out of personal interest, I also read a little bit about HDFS Part of the source code, I understood the core idea of ​​HDFS, and implemented a very simple and incomplete HDFS. "

Interviewer 1: "Tell me a little bit. What is the innovation point in one of the papers you wrote? "

Me: "The articles or patents I write mainly follow one principle: applying existing theories or models to new scenarios. It’s biased toward applications. Let’s focus on this paper. First, let’s start with singular value decomposition..."

After about a few minutes. The interviewer 1 interrupted me: "The things you do are all in the direction of data mining. Why didn't you apply for data mining?"

Me: "Because, according to my understanding, the position of data mining requires I have in-depth research on machine learning algorithms. However, what I do is biased towards the application of data mining algorithms. Therefore, I want to invest in research and development, focusing on data mining and distribution, starting from the basics. ”

Interviewer. 1: "Actually, your advantage is that you have done data mining. Let me first find a data research and development interviewer to interview you. You can come back to me later."

Although I have also systematically studied machine learning algorithms, but the exposure time was too short (a few months) and the research was not in-depth enough. I have only used a few algorithms in competitions: LR, RF and GBRT. Its own advantage lies in the understanding of data, extraction of features, and application of algorithms. The algorithm derivation process is not clear, but the idea is understood. I was afraid of being asked too detailed questions, so I was reluctant. However, with the insistence of the interviewer 1, I finally agreed.

I breathed a sigh of relief when I saw the second interviewer’s sign saying “data research and development”; luckily it wasn’t “data mining”.

This year, there are quite a lot of job openings for “data research and development” positions, and many of them are going to small and micro financial services. After the interview, I think the job requirements for "data research and development" are as follows:

Proficiency in basic SQL statements; because there is a written test question. I think Alibaba should use its own ODPS-SQL (similar to Hive) for data research and development. Although this platform is quite complex, the requirements during the interview are not high. Just master the basic built-in functions and SQL statements: select, group by…. During the competition, I wrote tens of thousands of lines of SQL code (thousands of lines after deduplication), without using indexes or views; I often used built-in functions and occasionally UDF (user custom function). However, the code written does not include indexes, views and UDF. I didn’t take the optimization test (in fact, I don’t understand it either).

Have relevant experience in data research and development, the interviewer seems to attach great importance to this aspect. I participated in the Alibaba Big Data Competition.

I have some opinions on data research and development. This is very important, you must have a clear mind. I am mainly talking about the models in the competition: data preprocessing->training set, prediction set->feature extraction->further processing-> Ratio of positive and negative samples->training->prediction.

Of course it will be better if you can write MapReduce. Alibaba’s platform provides MapReduce, which is probably used in work. Here is a detailed introduction: Super long-winded versionODPS MapReduceGetting started

Then, start communicating with the second technical interviewer.

Interviewer2: "Introduce yourself."

Me: "I just introduced other experiences. Then I will mainly introduce my experience related to data research and development." Then, simply Let’s talk about the Alibaba big data competition that I participated in.

Interviewer2: "Okay. Let's do a question first."

The interviewer gave me a SQL question: Given a table with four columns: user_id, brand_id, time, cnt (Amount of money spent). Select the total amount purchased by user B for each brand brand from this table.

When I saw it, I was a little happy. It was so similar to what I made in the competition. After a brief communication with the interviewer, I quickly wrote it out;But I was still afraid of making a mistake, so I checked it for a long time before showing it to the interviewer2. By the way, if I need to process strings, I will use the UDF in ODPS-SQL. The interviewer looked at the procedure and put it aside without saying anything.

Later, we are mainly discussing the Alibaba big data competition: what did I do, what model and algorithm did it use, and what is the accuracy. (This section takes the most time to discuss)

Fortunately, I mainly discussed the understanding of business and data, and did not discuss data mining algorithms in depth.

The discussion went well. After it was over, the interviewer 2 took me back to the interviewer 1.

After I came back, I continued to discuss the paper I wrote with the interviewer1. Since I have summarized the paper I wrote before, my thinking is very clear. And talked about the experience and gains of writing the paper.

In short, the interviewer at the first interview was very kind and the conversation was fun.

Let me mention it again: Personally, I think there are two main types of interviewers. One type uses technology to question you to death, so as to judge the depth of your mastery of technology. The other type is to ask you to perform after simple technical questions and guide you to speak, so as to test your comprehensive qualities such as your thoughts, expression skills, and personal opinions.

Of course, if an interviewer sees that you are not good at expressing yourself, he can only keep asking you questions.

I’m honored that I met the second type of interviewer. Interviewing is as easy as chatting.

Finally, passed successfully.

The second interviewer:

The interviewer on the second interview is a developer of Java.

At the beginning, let’s discuss the competition and distribution. Later, I was asked a question about a large amount of text processing, "Find the Top3 strings in a large text." I have not done any research in this area, so the answer is not good.

JavaQuestion: "Tell me about the structure of JVM."

Network question: "Three handshakes and four waves of TCP/IP"

Then, Just start asking questions about JavaWEB.

I just learned about this aspect. The interviewer 3 said: "It's okay, just explain your understanding."

Interviewer 3: "Taobao user data ( Where does the shopping cart...) exist? How to meet high concurrency? "

I don't understand this aspect, and the interviewer allowed me to play freely; the answer was not good.

Interviewer3: "Then let's ask you an algorithm question. Input two integer arrays and return an array: the common value in the two arrays."

Actually, to this At that time, I was a little confused and a little nervous. I started writing the quick sort algorithm, and the method I used was not the best. The interviewer was not very satisfied.

When I was having lunch later, I thought that I could actually sort O(nlgn) and then O(m+n). When discussing with others, I thought that for some special situations, this can actually be done using the idea of ​​hashing. The complexity O(K), K is the maximum value in the array.

Interviewer 3: "Test your mastery of recursion. Write a function, input the type int, and return a string of integers in reverse order. For example: input 123, Returns "321". requires that recursion must be used, global variables cannot be used, the input must be a parameter, and a string must be returned. "

At that time, only reverse order output (printing) was done, and nothing was done. Return the string in reverse order.

After lunch, when discussing with others, I suddenly thought of some ideas that need to be used to recursively solve problems such as depth and number of leaves in a binary tree: each time a return is made, the previous return value is added.

At this time, the interviewer was not very satisfied, and it was time to eat. Then, the interviewer 3 said: "Let's do this. I'll help you find a data developer, and you go for an interview. Let him do the evaluation." Although he was reluctant, he still agreed. After all, the performance this time was too poor.

To avoid asking the same questions in the afternoon. After lunch, I discussed the algorithm problem with other students.

Then there is the interviewer 4, which is still in the second-person stage.

Interviewer4: "Just treat it as if we are chatting and discussing technical issues. Tell us about your relevant experience."

This will make you feel more relaxed. Like before, you can talk about irrelevant things. Experience summed up in one sentence. Finally, we focus on the Alibaba big data competition.

The interviewer4 is very interested in the competition, so he focused on the competition from beginning to end. Mainly discussed models, algorithms, and features. The discussion focused on my understanding of the data and was recognized by the interviewer 4.

I said: "During the competition, we have to stare at the data to extract features every day. If we just look at this as a number, it is really boring. However, we will treat it as a user behavior And analysis. This becomes very interesting. For example, after data cleaning, I saw that a user clicked on a certain brand every day, and he just didn’t buy it. It was obvious that he was a diaosi; some people kept buying it, obviously. Gao Fushuai. "

In short, I was talking about game-related matters and my understanding of the data very relaxedly.

Finally, passed successfully.

Three sides

I have long heard that many people who enter the HRinterview this year are still very likely to be eliminated. So, be more careful.

I found out later that it was not necessarily HR. Because, after passing several rounds of interviews, the interviewer will still have to discuss whether to admit the applicant; if the applicant is confirmed to be admitted, he will make an Offer. Some people who were dismissed may have been dismissed by the technical interviewer because of poor performance in the past, not HRjj. I heard that generally after HR is passed, data mining and algorithm candidates are more likely to be dismissed; for other positions, they are rarely dismissed.

However, the interviewer was so nice. As we chatted, I started talking about everything.

We talked about: how to improve our technical skills; our own strengths and weaknesses; Alibaba’s nickname, etc.

During the interview process, I mainly emphasized two points (using my own experience):

I like to discuss problems with others, so I will always get unexpected gains. Moreover, examples from projects, competitions and daily life are also given. I even said that I didn’t answer the technical interviewer’s question just now, but during private discussions with other interview students (who I didn’t know), I suddenly became enlightened.

Treat work as a part of life and work happily. This mainly talks about how I turned boring things into interesting things during the competition.

Finally, the interviewer asked me if I had any questions.

I said: "When I participated in the competition, I joined Aliwangwang's group. There are many internal employees in it, and I know a lot about Ali through them; so, there is nothing more to ask."

End

The interview is over. After I came out, I quickly checked my status, "Three passes"; after a while, it suddenly changed to "Interview ended." I heard from others that the end of the interview means they failed.

So, I asked the staff outside, and they said: "This means going back and waiting for notification." HRAfter the interview, the status is "passed in three aspects", "passed in four aspects", "interview ended", etc. . this is normal. Because they also have to screen based on the previous comprehensive performance. It doesn’t mean that all the “interview is over” offers will not be received, there is a possibility that they will not be received. I heard later that some even those who "passed in all directions" will not receive the Offer. After I returned to school, I waited until thirty-eight in the morning to receive the text message. Then, a night of excitement.

Summary:

For those who have a solid foundation, let the interviewer ask whatever they want. However, I think it's possible for anyone to stop asking because they want to see the depth of your mastery this way.

For me, the basic knowledge is average: I can write data structures, sorting algorithms and recursion; operating systems, I understand some basic theories; computer networks, I understand some basic concepts and theories. You can only give full play to the advantages of your own competitions, projects, papers and patents.

During the interview process, it is very important to grasp the interviewer's points of interest and bring the interviewer to your advantage. Of course, it would be better if your strengths are not in areas that the interviewer knows very well, but the interviewer is more interested in it. Regarding several of my interviewers, while chatting, I noticed that interviewer 1 was interested in my papers and patents, interviewer 2 and interviewer 4 were interested in Alibaba I am interested in the big data competition, the interviewer 3 is interested in my basic abilities, and HR is interested in my cooperation ability. The interviewer 3 only wanted to ask about my basics. Although I tried many times to bring him to my strengths (data mining and distribution), he was forced to take me back. For several other interviewers, I consciously changed the topic to the Alibaba big data competition. It just so happened that none of them had an in-depth understanding of this competition and had a certain interest in it; then, they spent most of the time discussing these contents.

In short, make the most of your advantages.

Get it for freeLAMPBand of BrothersOriginalPHPTutorialCD/ DetailsPHP》 Essential version, please contact the official website customer service for details: http://www.lampbrother.net

PHPCMSSecondary developmenthttp://yun.itxdl.cn/online/phpcms/index .php?u=5

WeChat developmenthttp://yun.itxdl.cn/online/weixin/index.php?u=5

Mobile Internet server-side development http://yun.itxdl.cn/online/server/index.php?u=5

JavascriptCoursehttp://yun.itxdl.cn/online /js/index.php?u=5

CTOTraining Camphttp://yun.itxdl.cn/online/cto/index.php?u=5

The above introduces Alibaba’s interview experience and summary (data research and development, Java research and development direction), including aspects of content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn