Summer vacation is coming soon, and many readers are still students. They want to find an internship. Strong company does not mean strong individual, small companies also have big bull, do not envy, not pretentious, down-to-earth, today, Muzi – warrior heart, exclusive authorization to share his experience of getting Tencent internship offer, because other platforms directly reprinted, can not claim original, if it is helpful, a little advertisement. Ps: Some people say that I have not updated ffMPEG series recently, to tell the truth, my blog, have been to the eighth, only the source process, few people interested. If there is a small case, I will synchronize to the public account at the first time. Let’s look at the sharing of muzi’s warrior heart.


Personal circumstances

I am a 2014 undergraduate in The School of Computer Science, Wuhan University. When I write this summary, I am a junior. Originally, our class had a fixed internship, but I still wanted to have an impact on the top Internet companies in China, so I took part in the summer internship recruitment of several companies (Tencent, Ali, Huawei) with the idea of trying. Tencent applied for the position of background development intern, Ali and Huawei applied for Java development intern.

The purpose of this article

Here I want to record a few companies summer intern recruitment process and some often asked questions, one is to summarize their experience for the future possible interview preparation, two is to give the future younger students a reference, in preparation for the interview and the written test can be targeted.

The results of

On April 16, 2017, I finished the HR interview with Tencent, and I am still waiting for the result (I don’t know if I entered the spare tire pool, and I haven’t heard from OTZ for a week). The message on wechat was “You have completed all the interview procedures, please keep your phone unblocked”. I finished the interview with Huawei on April 14. Today, I just received a short message from Huawei that HUAWEI had entered the signing pool and asked me to fill in a questionnaire. Alibaba’s internal application was early (probably started in March), and then received a call for an interview and turned it down. However, it seems that there will be a self-delivered written test on April 26, after which there will be an interview opportunity.

——— gorgeous update line ————

I received the email from Tencent today (April 24) and started to prepare for the summer internship

First, a brief introduction to Huawei and Alibaba

(Just skip this section if you just want to watch Tencent.)

Huawei:

Huawei’s internship interview in Wuhan is conducted in Huawei Wuhan Research Institute (a place far away from the Third Ring Road). In the early stage, you need to fill in your resume on huawei’s official recruitment website, and then you will be notified of the written test some time later (about two weeks).

Huawei’s written test is three programming questions with a total of 600 points, apparently worth 100, 200 and 300, and lasts a total of two hours. Personally, I don’t think the questions are very difficult, but it’s not so easy to get them all right. I was called for an interview about a week after I finished the written test. (However, some students received the interview notice even without taking the written test, so they may be exempted from the written test due to the internal promotion of the department.) Personally, I feel that the written test of Huawei did not pass the examination, because all my classmates were qualified for the interview as long as they filled in their resumes.

After the written test, there was the interview. The place was far away, about two hours away from our school by bus. There were only two rounds of interviews in Huawei. The first round was for technical interviews, and the second round seemed to be for HR interviews. I finished the two rounds of interviews in the same day (maybe considering the remote place) in about 30 minutes. During the technical interview, questions are mainly asked about the project. The main questions are:

  • Which project impressed you most? Tell me about it

  • Can you draw the structure of hashMap for me

  • Have you ever used Linux? What do you usually do with Linux? What are the common commands

  • What databases have you used

  • Have you ever used a cloud server (I said I used Tencent cloud….)

  • Is there anything you’d like to ask him

Anyway, I feel that the technical aspect is relatively simple. If I have done projects and I am really familiar with my own projects, the problem should not be big. And it feels like the tech side doesn’t ask technical details (compared to Tencent and Alibaba).

The HR interview followed, and I was informed to go to HR for an interview before I sat down after the technical interview. The personal feeling of the HR interview is mainly to do some background checks. The main problems are as follows:

  • Tell me about your latest project

  • How about your grades, grade ranking, is your class a featured class

  • Where are you, high school in which school, high school results how (do not know why to ask high school….)

  • Does anyone in your family work for Huawei

  • What do you consider your greatest personal strength

I don’t remember the other questions clearly. Anyway, I generally felt that the interview of Huawei was relatively simple. There were not many technical questions, and I was asked to talk about things related to the project. Tencent and Ali’s technical side will involve a lot of technical problems, the following will be introduced.


Ali:

Ali’s internal push and interview started as early as March. And Then Ali had the most internal tweets, and I fell to my knees.

Ali also needs to register, fill out the resume and declare the position on the school recruitment website of Ali. And then after a while I would get an email asking me to complete a general competency assessment and programming test. The general Aptitude Test really measures everything: reading comprehension, logical reasoning, management coordination and all sorts of other things. It’s a comprehensive test of IQ and EQ, leadership and communication skills, and lasts about an hour. Then there was a programming test, 30 minutes per question (it took me 25 minutes to get a rough idea of the question, and finally I just wrote a few lines of code and submitted it to……) . But officials said the programming tests were for reference only and did not affect the results.

Then, about a week later, a call came from Hangzhou. I thought it was something I bought on Taobao, but when I answered the phone, I realized it was an interview. Due to the lack of preparation, the answer was not ideal. The official website status of the phone I received in the morning showed that I had rejected. The main questions are:

  • Tell me about the Dubbo framework you used in your project. (This is a project in my internship, I didn’t prepare well in advance, and I don’t know much about it, so I can only say THAT I don’t know…)

  • Explain how Hashmap is implemented

  • What were the weaknesses in your previous projects and how did you resolve them

  • How would you optimize your previous projects if you were given enough resources and skills

  • How is quicksort implemented

  • Make sure your resume is very clear. Go over any projects you’ve worked on before the interview, what you were responsible for, what innovations you had, and what problems you had. These are all things that need to be reviewed.

  • Some basic algorithms and data structures to know, such as quicksort ideas, linked list structures, hash principles, etc., are likely to be asked by the interviewer.


tencent

Finally speaking of Tencent, Tencent’s recruitment to my feeling is proud. It seems that Tencent hired a whole hotel (Optics Valley Kaiyue Hotel) for the interview, and it seems to be the same hotel every year, it is said that the hotel is five-star.

Let’s start with resume delivery. Tencent’s intern recruitment is known from our grade group. It was about the middle of March, when an upperclassman recommended me. I sent my resume to the upperclassman’s email and filled in my resume and various information on Tencent’s official website, but no one called me for an interview until April 4. (This is usually the case when the resume is rejected in the promotion stage. Two of the talents in our class received the phone interview in March and got the offer successfully.)

The push stage was brushed I only honestly do pen test, Tencent pen test seems to be two hours. There will also be a practice exam before the formal pen-based exam to familiarize you with the type and context of the exam. Tencent’s exam questions are divided into multiple choice questions, short answer questions and programming questions. The range of multiple choice questions is quite wide, the number seems to be 30, and there seems to be a time limit to finish in an hour. The content includes c++, Java, data structures, networks, Linux, computing problems and some I don’t remember very clearly. Anyway, I feel that there are a lot of questions I can’t do, but I personally feel that sometimes I can’t really do the hard calculation when doing this kind of test paper. Sometimes I can use the method of reasoning and elimination to do it, otherwise I feel that it is basically impossible to finish the calculation in the limited time. Then there are four big questions, two short answer questions and two programming questions. One is about disk space calculation, I don’t think I did it, I just wrote it out. And then the second problem is a simple algorithm problem, and I just wrote the code on it. The third question is a sort balanced binary tree problem, but at that time seemed to read the problem wrong, and then did not write out. The last question seems to be a question of formatting the output string. Quite sure is 2, 4 two questions, 1, 3 questions literally wrote a few words to hand in next.

Although I felt that I did not do well in the written test, I still got the notice of interview a week later. (It seems that the written test is not very good, most of the students I know seem to take the written test and get the interview). The interview is divided into three rounds, the second round is technical, and the last round is HR interview. The interview of Tencent was held in a hotel next to Huake. What was humanized was that there would be staff guidance in each place and staff would help to press the floor of the elevator, which made people feel very intimate. After arriving at the hotel, I checked in by scanning the QR code on wechat in the lobby, and then waited in the rest area. There will be text messages and wechat messages when you arrive. When I went up for the interview, I found that each interviewer had a room, that is, the room they lived in, and then different people conducted the interview in different rooms, giving people the impression that Tencent is so rich.

The interviewer on one side is a man who personally feels like a leader because he is dressed formally, but usually he is a technical person. First of all, I was asked to introduce myself, and then asked me how to implement a C++ polymorphism. Because I usually use Java, I don’t know much about C++, so I casually said something about multiple inheritance, and then told the interviewer that I don’t know much about C++, and I mainly use Java. The interviewer then started asking me questions about Linux: the difference between Linux processes and threads, how Linux processes communicate with each other, the Linux file system, the creation of Linux processes, and what happens between parent and child processes after they are created. After Linux, he asked me about Java: LET me introduce Java garbage collection mechanism; Write a sample application for Server communication on paper, including a class for handling threads, and a condition flag to terminate the application (I have a feeling that the interviewer might value you for being thorough); I was then asked about the implementation of hashMap in Java (which seems to come up a lot). Then I asked some networking questions: the TCP three-way handshake and four-way wave draw and explain, say the four properties in the Http header, say what methods Http has, what is the difference between POST and GET (anyway, I answered this question on my knees and saw the interviewer draw a cross). It took me about 20 minutes to ask those questions, and then I was asked to write a factorial program on a piece of paper in 10 minutes. My first reaction was to be sure that common data types would overflow, and THEN I asked the interviewer if there were any limits to the data input. He said no. I thought, “I can’t just print int or long, I can print string,” and I wondered for about a minute how to do it. Then I suddenly thought of a program that I had written to add large numbers, and I wanted to convert all the factorials into an addition loop. For details, see the following code. (There should be no problem after the test)

#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; String addString(string sa,string sb) {vector<int> a; vector<int> b; int small=min(sa.length(),sb.length()); For (int I =0; for(int I =0; i<sa.length(); i++) { a.push_back(sa[i]-'0'); } for(int i=0; i<sb.length(); i++) { b.push_back(sb[i]-'0'); } // reverse(a,b); // reverse(a,b); // reverse(a,b); reverse(b.begin(), b.end()); vector<int> result; Int jinwei=0; Int I = 0; for( i=0; i<small; i++) { int tem=jinwei+a[i]+b[i]; if(tem>=10) { result.push_back(tem%10); jinwei=1; } else{ result.push_back(tem); jinwei=0; {while(I <a.size()) {result.push_back((a[I]+jinwei)%10);}} if(I <a.size()) {result.push_back((a[I]+jinwei)%10); jinwei=(a[i]+jinwei)/10; i++; } }else if(i<b.size()) { while(i<b.size()) { result.push_back((b[i]+jinwei)%10); jinwei=(b[i]+jinwei)/10; i++; }} if(jinwei==1)// Result.push_back (1); reverse(result.begin(),result.end()); string rt=""; Return for(int I =0; i<result.size(); i++) { string tem=to_string(result[i]); rt+=tem; } return rt; } string function1(string in) { if (in == "") return ""; if (in == "0" || in == "1") return "1"; long long end = atoi(in.c_str()); string sum = "1"; for (long long i = 2; i <= end; I++) {/ / 3! =1*2*3= (1+1) *3= (1+1) + (1+1) + (1+1) =6 string tem=sum; for (long long j = 1; j < i; J++) // add loop to multiply e.g. 2*3=2+2+2 {sum = addString(sum, tem); } } return sum; } int main() { string in; cin >> in; cout<<function1(in); system("pause"); }Copy the code

Then, ten minutes later, I wrote most of the addString function, showed it to the interviewer, and explained my thinking in general. Later, I found that there was a more efficient way to do this problem. We used a vector to store data and then simulated manual computation to multiply large numbers. Specific code can refer to the large number multiplication algorithm example. I think I answered about 70% of the questions, but I don’t have much hope.

To my surprise, TWO days later I received a notice for a second interview. The second interview was a fat interviewer. According to the Internet, he is usually the leader of the department, but I think he is more easy-going like a front-line programmer. He gave me a piece of paper and told me to write a bidirectional linked list that removes a node. Reason in the paper to write code experience really poor, and I always feel so simple questions may have what pit….. The interviewer asks me to explain my code and then asks me if I have anything to add. Usually this means there is a bug in the code or something that hasn’t been taken into account. Sure enough, I only pay attention to the case where the deleted node is the head node and I don’t consider the case where the deleted node is the tail node. He added a judgment and explained it to the interviewer. Then he showed me a C language variable space allocation problem about the union has several int, double, char data, and then asked what sizeof (union) is. To be honest, I learned this question in freshman year and forgot it long ago. Then I repeated that I am not very familiar with C and C ++, and I usually write Java. The interviewer actually said that Tencent’s background is written by c++, there is no Java post. I think it’s “GG” now. He said it didn’t matter and then asked me to draw a diagram of the TCP three-way handshake and possible Timewait locations and the reason for setting this. I was stuck, but fortunately I carefully analyzed the correct answer. Then he asked the simplest dynamic programming question of all: “How many ways can you get to n steps when you can only go up one or two steps at a time?” The solution is here. Then ask me to introduce my most impressive project. I gave an honest introduction, then he asked some questions about the project, and finally he gave me some advice on the unresolved issues in the project. Finally, he said that I might need to learn C++ for some time in the future, and then consider my future technical direction. Now I feel like I still have a chance. And then the second interview is over. The general feeling of the second interview is very friendly, called my name without a family name, give a person a kind of cordial feeling.

Soon that evening, I received a text message informing me to go to HR for the second time. I really felt very lucky. The HR interview basically doesn’t involve any technical questions. It mainly asked me about other things: what are your strengths, what are your weaknesses, what have you learned from your projects, and are there any examples of the personal traits you just mentioned? Barabala talked a lot, then introduced me to Tencent’s culture and values, and gave me some advice and interview questions. In the end, he stood up and saw me out of the interview room, which moved me a lot. Oh, he also asked me if I had received any internship offer from other companies. I don’t know what is the best answer to this question, but I still answered truthfully that I had participated in the interview with Huawei.

To this Tencent interview is completed, the overall feeling to me is more humanized and more relaxed. Interviewers are also very kind, and the little details are really touching.

  1. Try to stay relaxed and show a little confidence during the interview. It’s best not to blacken yourself, belittle yourself, or even say “I won’t” when faced with a problem. When you encounter problems that you can’t solve, you should try your best to use your existing knowledge to think about them. If you really can’t, you can honestly tell the interviewer that I haven’t learned them and I don’t remember them clearly. Also don’t be overly indulgent or make fun of the interviewer. My roommate made fun of the interviewer and then hung up. After all, we were in the interview, not chatting over dinner.

  2. At the end of the interview, if the interviewer asks you if there is anything you want to know, if you really have no questions to ask, you can ask the interviewer to give their previous interview advice and suggestions, which is also conducive to their own improvement; Or ask the interviewer to guide you to a question that you didn’t answer before, so that you can show that you are learning. You can also ask the interviewer if there are any requirements other than technical skills to show that you are interested in the position and willing to work for it.

  3. As far as I’m concerned, most of the questions that interviewers ask me to write code on paper are not very difficult, but there may be some problems. For example, the overflow of large factorial, the special treatment of the first and last nodes of bidirectional linked list, etc. It feels like the interviewer is looking not only at your code and algorithmic skills, but also at how thoughtful you are and how robust your code is to a real-world development environment.

  4. The basic principles of Linux, data structure, TCP and UDP in the network, HashMap, Java garbage collection, Java memory model, Java multithreading security issues, HTTP related knowledge is almost a must. So you should review carefully.

  5. Another is to try to be honest with the interviewer, because once you are caught lying, it is impossible, so don’t pretend to know what you don’t know.

  6. The last is to maintain a normal mind, can pass the interview for the next to continue to work hard, can not pass also want to accept calmly. Then continue to try other opportunities, after all, there is not only one way in the world, opportunities are always for those who are prepared.

For a long time did not hand type so many words, this one-sided classics stop here, there may be some imperfect, and so I want to add. Hope to bring some help to the back of the students ~


The first time to get [not only personal original Android/audio and video technology drygoods, problem depth summary, FrameWork source code analysis, plug-in research, FFmpeg research, live technology, the latest open source project recommendation, and more workplace thinking], welcome to follow my wechat public number, Scan the qr code below or long press to identify the QR code