Some manufacturers to share the interview experience and knowledge

"  The author internship in the fall of 2019 and recruited more than 10 companies in the face, refuse to believe only tried once, to get the offer in some of these are very competitive ssp foreign and domestic manufacturers, and develop / offer algorithms there is worth mentioning that the author is not a CS undergraduate professional, so the content of this article is the students have a certain universality, highly recommended coming internship / job look! "

This spring and autumn trick trick, I conducted a number of field interviews in China, which aims to find a job and looking for a summer internship autumn move official work. This is my personal experience summary.

I have internships and recruit autumn face a number of domestic first-tier manufacturers (such as Ali, etc.) and several foreign companies (such as Google, etc.), received a rejection letter. After a period of preparation and interview several interviews experience, summed up some personal experience, for reference purposes only.

statement

All interviewing skills are built on a foundation: the interviewer already has a relatively qualified strength. I was in the second half of 2018, a startup internship, when autumn move also interviewed a number of candidates. In my opinion, the interviewer if their foundation is not solid, the strength is not enough qualified, then look through the so-called face, the so-called learning skills are of little significance: good interviewer can ask very easily through a number of follow-up interview questions real's strength. Interviewing techniques and surface course through meaningful, but the study skills and understanding through face, "can only assist potential interviewers greater play to their strength」 . "Learning is no short cut, nothing replaces hard work." I hope every interviewer can understand this as soon as possible.

On the other hand, I do have some of these side classmates: they were quite strong, but for various reasons could not show their full strength in an interview. In fact, different companies have different cultures of the interview, the interviewer such as Google hopes to become an interviewer he was willing to work with colleagues byte beating the interviewer may want the interviewer is a mathematical algorithm, coding, projects are good overall talent, so people are more likely to become a "can solve the problem of the people." However, as interviewing candidates, we really did not need to prescribe the right medicine for each company's culture: Responding to the interview should have some common points. In my opinion, the most crucial point is to interview the interviewer to realize that this is not only a test, "it is a need for full communication and exchange of conversation, let the interviewer that he / she is willing to become your colleagues" , I hope every interviewer can understand this as soon as possible.

In addition to the above-mentioned I think other than essential points, interview and some other relatively common interviewing techniques and points. I this article is to summarize some of this stuff, I hope to be able to help such students.

Programming experience part

During the interview, the interviewer will often give a few algorithmic problems, the interviewer needs to provide ideas or write the code. In most companies the interview, the performance of this part is very important, and for some foreign companies, this part of the performance is decisive (or even the only important performance). For the preparation of this part of the devaluation LeetCode other sites, not repeat them here. To mention a few words, some emphasis on algorithmic problems of companies such as Google, hulu, airbnb, Microsoft, headlines, etc., do not hold mentality may hit the original title to prepare, hard to hit the original title, for these companies, you need to do is to enhance their ability to practice repeatedly, and because the subject is difficult, the need for more training volume. While others are not very great importance to this problem companies like Ali, Tencent What, then brush some common topics are likely to hit the original title, but the difficulty is not in general. Therefore, depending on the target company may have different ways of preparation. The following are some other in the interview I think the more crucial point.

A very simple example

Here to give a very simple question, the following key points will be explained in conjunction with this problem. The problem is, calculate the height of a binary tree. Simple achieve the following:

int getHeightOfBinaryTree(TreeNode* root) {

if (!root) return 0;

int left_height = getHeightOfBinaryTree(root->left);

int right_height = getHeightOfBinaryTree(root->right);

return max(left_height, right_height) + 1;

}

Whiteboard exercise program

Programming is often part of the interview whiteboard programming: Either the interviewer asked to write the code in a place like Google Doc, or is simply write code on white paper. In this case the coding using the IDE with the usual experience is completely different experiences. To Google Doc example, many people (like me) can start even difficult to write the compiled code, not to mention it again to write bug-free code. At the same time, not the IDE, debug difficulty will be greatly increased. The difficulty of writing code on white paper then goes further. Methods adapt whiteboard programming is also very simple, only need a sufficient amount of exercise can be.

Ask what the topic

Ask what the topic is crucial. If you understand the interviewer could not be clearer on programming problems, then you should immediately ask some questions to help you understand. For example: the data range? The size range of the array is the number? Can you give examples? If the input is this, what, and so that the output should be. Above this simple question, a question can be asked is, what is the height of a binary tree (as far as I know, highly defined, not all textbooks are the same)?

Many interviewers during the interview, deliberately to throw a vague question. In fact, they want to be able to go through some interviewer asks understand the problem. In this process, the interviewer able to show their "ability to analyze problems," and "ability to communicate" . The importance of the former Programming Pearls see Chapter One: Identify the problem, the battle on the success of 90%. The latter is important because, ask the subject of the communication process with the interviewer is very similar to the form of the question under discussion after the entry with colleagues. Obviously, an interviewer can be difficult to communicate is difficult to be a good colleague communication.

If you do not ask questions, what would happen then? In the worst case, the interviewer may spend a lot of time to solve a problem completely wrong, interview results can be imagined. Or better luck, ran into a rather nice interviewer, to give some tips to tell the interviewer has entered a misunderstanding, but this will not only waste a lot of precious time of the interview, it will reduce the interviewer's assessment of the interviewer. I was in face of a company, the interviewer give me a title, the title sounds more difficult, need to use dynamic programming can be achieved. I thought, at the beginning of the interview to give a more difficult question, which for me is too unfriendly! So I asked a "what range of data is it?" The interviewer told me that the scope of the array is an integer of 0-10. In this case, the problem becomes a problem greedy only 6 lines of code can be resolved. If I do not ask this question, then, is clearly greatly increased the difficulty of the interview.

Confirm with the interviewer function signature

After confirming the title, I think a reasonable approach is to first confirm the interviewer and the function signature, that is what the input parameters, output parameters, and so what. This step is very low cost, and very important. First, you can tell the interviewer, you function signature design very seriously, and this is of great value in practical applications. Second, it can help you to further confirm their understanding of the meaning of the questions. A rational function signature might like LeetCode topic in the function signature. The above code signing is a reasonable signature.

Confirm with the interviewer ideas

In after she had an idea, and the interviewer must confirm this idea is reasonable. You can explain to the interviewer your ideas Why is reasonable, the interviewer may discuss with you some of the points of them. This has several advantages. First, in the process of interpretation, you will become more clear thinking (the interviewer acts as a small yellow duck). Second, it is also of great importance to show your communication. Third, and perhaps most important point is, if your idea is not correct, nice interviewer will prompt you to direct even pointed out the mistake, so at least you will not delay too much time on a wrong idea. "After thinking should not have, do not communicate directly with the interviewer to write code」 . In particular, it should be noted that, if you have any ideas on data assumptions, or need to "modify the input data" , it must be the interviewer and confirm this approach is reasonable.

If you think the problem is consistent with the idea of ​​a classic question, or you can use a classical algorithm, then directly point out. For example, calculate the height of the binary tree is actually a postorder traversal, you can point directly.

Confirm boundary treatment

Before beginning the process of writing code or write code, we must ponder boundary condition code. The most typical boundary conditions: whether the data will overflow? Whether the pointer may be empty? The list is not possible ring? Length of the array is not zero? Data entry will not be totally inconsistent with the requirements of the meaning of the title? In an example, when the boundary condition is that the node pointer is empty, the height should be zero. When you are aware of the boundary conditions exist, you can ask the interviewer treatment, or simply tell the interviewer what you think is a reasonable approach. Handling of boundary conditions is also extremely important in the development of software. Ignore a boundary condition, it will cause great impact on the robustness of the program, it may be directly caused huge economic losses and even casualties.

Code high readability variable and function names

When writing code, try using a high readability function names and variable names. For example, to calculate the depth of a binary tree, a function of the reference signature may be called root (not node) is int getHeightOfBinaryTree (TreeNode * root). Recursive, highly variable names left subtree can call left_height. And so on. The main purpose of this operation is to let the interviewer see your good coding habits.

Continue the process of writing code to communicate with the interviewer

During the implementation of the algorithm, should not mad, focusing instead on writing and not to communicate with the interviewer. In fact, writing some of the key code, you can tell the interviewer what features you achieve. Also as in the previous example calculated binary depth, then you can tell the interviewer, int left_height = getHeightOfBinaryTree (root-> left) in the calculation of the left sub-tree height (good function names and variable names in fact, to this line of code is not self-explanatory), and int root_height = max (left_height, right_height) + 1 is calculated according to the height of the root node of the current left subtree and right subtree height.

Of course, in this simple example, the exchange may seem not so important, but the exchange could be very important in a number of complex issues. For example, follow-up request is not an example of the same recursive function, or further, please perform the same function with a constant space. In this question (the code may have tens of lines), communication becomes critical. The interviewer needs to communicate with you to understand your ideas and state, you also need to sort out the exchange of ideas. This code is in the process of writing the exchange is also very important when formal work ability.

After writing the code active testing

After you have written the code, do not rush to tell the interviewer that you have finished. Best to manually run a / several simple examples. Note that this sample run of the process to make the interviewer can see and easily understand, which often requires some practice. For example, I ran samples on a Google Doc approach is to write intermediate variables in the current value on the screen, and then told the interviewer with your mouse cursor now ran the program which line of code, the current value of each variable is how much, etc. Wait. There are many benefits of active testing. First, it tells the interviewer that you attach great importance to the test, and the test in the actual production is very, very important. Second, a simple example can often find a lot of similar such a small typo error. Third, if your sample to the well, then you can even take advantage of this sample to find the bug in the program and correct it, which is always better than the interviewer and tell you there is a program bug. When active test, you can be sure that your program works well with boundary data.

I used to own in the face of a foreign company when I took the initiative to test gave a great return. At that time I wrote a not a complicated procedure (about 20 lines), but because of emotional stress, the program contains a relatively hidden bug. After writing, I habitually run a simple example, it took me about three minutes, but I noticed that bug. I quickly fixes this bug. Q & A session to the interview, I asked the interviewer in this field in the interview I am doing what is the best thing Yes. He told me: "You found your bug through a sample fact, part of the code you write when I noticed this bug, I was hesitant to remind you and you do not immediately start. test and found the bug. "the results of this interview is about half an hour at the end of the interview I received the news through an interview.

Initiative given the complexity of the algorithm

After the finished code should take the initiative to analyze their own space and time complexity of the algorithm. On the one hand, this can show their solid foundation algorithms. On the other hand, it can also tell the interviewer that they have this awareness. Of course, if the complexity of the analysis is wrong, and that this analysis may also be a reduced breakdown.

Discussion of trade-off algorithm

In some cases, there may be some solution subject trade-off. The most common is the time - space trade-off, of course, sometimes there are some other trade-off. If aware of the trade-off question head exists, you can take the initiative to talk with the interviewer trade-off, let him / her know your thought process and selection.

Computer Fundamentals experience

Through the use of surface

The computer includes a base portion of the content data structures, operating systems, programming languages, computer networks and the like. This part requires some preparation is largely a solid foundation, together with a number of companies interviewed by the surface. Some students want to see the face alone was to cope with the past, I can say that in most cases is unlikely. Level and experienced interviewer can easily be judged that the name of the candidate is not by plane out of the previous question was answered by a few follow-up questions. Of course, by plane for this content is still very valuable, but after reading the face of time to pay attention, and not just look at one-question answer enough, but look at this topic is examined which one knowledge, this piece of knowledge they have not forgotten, strange, not a solid, if any, to do the appropriate preparation. "Face by telling you what knowledge the company like the interview when asked, instead of telling you what they like to ask what specific problems" , although sometimes arise some problems may indeed high frequency in your interview.

Grab point the interviewer ask

Some students asked some basic knowledge of when they will be particularly excited, would like to seize this opportunity to express themselves, they will unavoidably answer a wave. I personally think that if the basics, then, in fact, not a particularly detailed answer, the interviewer would like to say some key points on it. Sometimes the judge may not be able to ask the interviewer points out, that does not matter, he said he thinks some of the key points, and then wait for the interviewer continued to ask follow-up on it. To give a simple example, if the interviewer asks the difference between process and thread, then simply said thread is the smallest unit of scheduling, shared the same address space of a process thread, likely to have thread-safety issues; resource allocation process is the most minimal unit, the address space of a process is independent, relatively few resources to security issues. The answer to this were almost enough, then wait for the interviewer continue to ask follow-up, without the need to explain why there is a thread safety issues. The reason why recommend it, because for some companies, the interview time is limited (such as Google, hulu, etc.), so the interview time is very valuable, you should use this precious time to show their strengths, rather than that Some people understand the vast majority of trivial knowledge. Of course, experienced / not nice interviewer may interrupt you, ask what he wanted to ask his own interest, but if you are unlucky interviewer lacks experience or just do not like to interrupt people, so that waste valuable time is a great pity.

Say their insight

If you have some of their original ideas, or is this knowledge in many textbooks may not see, a lot of students do not necessarily know, then tell yourself this insight when answering questions for a certain problem, of course, provided their argument is justified. To give a simple example, such as an interview question is, what can be used to queue data structure. The answer can be said is the list, then you can fill a queue but the list is not necessarily good for performance, because the address space list node is not continuous, to cache unfriendly (small problem:? So how to improve it yet). This knowledge actually have some experienced people or well-grounded people know, not what is the difficulty, but as graduating students, can directly say it may still make the interviewer feel good basis for this candidate.

Combined with his experience elaborated

If on some basic issues that they have some practical experience, they can combine their own experience to answer, so that will make the interviewer feel that the candidate is not only the basis of solid, experienced, and apply their knowledge, ability to analyze problems are also very strong of.

To give a simple example, such as the interviewer asked what the usual way hash table conflict, what advantages and disadvantages. You can answer commonly used linear exploration of the two methods and zipper. If they have appropriate experience, it can be combined with the experience to talk about the advantages and disadvantages, such as a linear probe when in actual use often requires a space larger than the opening, hash table load factor has been the need to maintain a relatively low state (for example 25% -50% so), otherwise performance will be poor, because the query and will be inserted into the long-distance line testing frequently. The zipper method of space utilization efficiency will be higher. While providing sufficient space, according to the experience of linear probe will be much faster than the zipper method, such as previously done projects in time to meet the spatial conditions of linear probing faster around 7 times (this is combined with experience talking) because linear probing more friendly than the zipper method to cache (which is the basis of knowledge).

This answer is similar to the way that allows the interviewer to leave a good impression, that the overall quality of the candidate is also very good.

Part of the project ideas

Brief project background

If the interviewer is very familiar with this field, people such projects, then you can make some assumption, that is, do not need to do much background information. Otherwise, it is recommended to briefly talk about what project their own background Yes. This is because in a different context, to achieve the same functions often have different choices. Such background information can help the interviewer better understand the project, and probably understand some choose to achieve. Including background scenes, problem definition, requirements, responsible for their own part of the role, and so on.

Introduce the project approach

After the introduction to the project background, need to briefly introduce their own solutions for this project. The main solution is to use what technology, what tools, how to achieve more. It should be noted that the best time to introduce solutions combine scenes together that otherwise lacks some convincing.

Here still cite a simple example. For example, do deep learning of the floor, deep learning framework of choice is Tencent ncnn, it is best to talk about because the scene is embedded arm device, and no graphics card, in this scenario, ncnn do a lot of instruction-level optimization, speed It will be faster.

He pointed out the difficulties in the project and point solutions

Difficult point for the project to be especially careful to talk about, why the need to introduce this point is a difficult point, the solution is roughly what kind of thinking, why should this go design solutions, have finally reached what kind of effect. If a candidate can demonstrate the exact pain points, bottlenecks analytical skills and the ability to be able to put forward a reasonable solution, then I believe the interviewer on his evaluation will be greatly enhanced.

Also here give a simple example. For example, do database implementation, the project has a database problem is too big, can not be placed in memory, but if the words are hard to put too slow, this is a difficult point in the project. The key point to solve the problem is to utilize the speed advantage and the advantage of the memory capacity of the hard disk, a design store hierarchical model. We do experimentally observed 90 percent against the database query concentrated in only 10% of the data. Then the solution is to design a model of the separation of hot and cold, only some of the heat stored in memory (ie frequently queries) data, and cold (ie, query frequency is low) of data on the hard disk, while setting certain strategy regular hot and cold data replacement. After such a design, database query speed improved 30 times.

Papers section experience

Brief background of their own research

With the project, the research background of many popular interviewer often do not understand, so I often need to do some relatively detailed background information.

Like to do the same talk again introduce their papers

Before the interview, you can prepare yourself look fine introduction paper. Assuming that the interviewer is not familiar with this field, how to make him understand in a short time this area of ​​research, probably understand the pain points of the field, and understand the idea of ​​your paper, solutions and the importance of it?

Mock Interview

It is strongly recommended before the interview to find someone to simulate it, and let the other side to give you some feedback. This can greatly reduce the tension, familiar with the interview process and improve interview performance. Of course, there is an important way to deliver a lot, they do not acquire some of the target company practice your hand, hone their interview skills and attitude.

Interview taboo

I also worked several times interviewer, also participated in some interviews and interview people to find out about other cases where it simply interview a few taboo, we must avoid making mistakes.

Budongzhuangdong

For what they do not understand (or even no Kazunari grasp things), be sure to say it honestly, do not pretend to understand. I put this on the front, because I, as the interviewer and usually when discussing technology and people, it is very annoying to others pretend to understand. The interviewer is often much higher level than you, all of a sudden you will be able to judge them are equipped to understand or really understand. So, they do not understand or did not come to grasp the problem, I propose to tell the interviewer asks this question I'm not sure, do not really understand. But if you have some ideas, you can then say, "Though I do not understand, but you can try to say something," which can be turned into a chance to show you solve the problem of the ability to analyze problems. And if your idea is very reasonable analysis, conclusions are big bad not bad, it can even enhance the interviewer's opinion of you to a large extent.

Arrogant

Interview, people have self-confidence, but attitudes must be calm and respect for the interviewer, must not be arrogant, arrogant. There are some companies that are very valued, if you give the interviewer left a bad impression of communication, it is often a veto. But the interview, the interviewer occasionally run into the situation is not very good to make mistakes (such as some domestic manufacturers), this time you'd better be calm and to discuss with the interviewer, if he refuses to admit that you are not going to seriously, otherwise you could interview hung up. There is a case to go with the interviewer purists, that is, you do not care for this company offer, this time you can let go of the contests ha ha ha. On the other hand, when you are a company or a group interview, the interviewer met pretend to understand and refused to admit its mistakes, you have to consider this group is not worthy of you to.

Mentality

Interview always have luck and chance, flat state of mind, not because of fear of rejection will not dare to deliver, and do not worry about the outcome because while very tense during the interview. In the interview try to make their natural, relaxed. Of course, some slightly nervous sometimes can allow himself to play better, but should be appropriate and must not be strained too far. A job interview even if some content is not good, do not crash the spot of mind to calmly deal with. When he did what ideas do not be too nervous, you can try to start from the basic analysis of place. For example, do arithmetic problems, you can analyze some toy example, you can sometimes get some ideas. CS answer basic questions, system design and other issues can also start from the place-based analysis, and even step by step together with the outcome of the interviewer. I myself participated in one interview, an algorithm entitled to ask questions, spent more than 10 minutes, and then more than 10 minutes no idea, but I give the interviewer still exert some pressure. To know the interview on a total of 45 minutes this performance belongs to the very poor. Fortunately, I was to stabilize the mind, the use of a toy example got the right idea, write bug-free code, finally let the interviewer quite satisfactory.

At last

It should be noted that each person has their own interviewing style, many hiring managers will have their own preferences, so there is no universal set of interview programs. What are some of the techniques mentioned herein, mainly applicable to sum up my own style and their own programs, the reader can be adjusted according to the actual situation and the feelings of their interview time. For example, part of the programming experience mentioned in this article, the main problem is part of algorithms such as Google's. I also had some experience interview, the interviewer did not like the candidates to communicate with him at the time of writing, or even yourself to do something else when you write the code :( This time you'd better shut up obediently, I can write the code :) So, I hope you whenever necessary, according to local conditions, combined with the actual situation to the interview. Finally, I wish everyone could have the satisfaction of offer ~

This article Source: Light dream fans Jin Ming https://github.com/conanhujinming/tips_for_intervie

Published 363 original articles · won praise 74 · views 190 000 +

Guess you like

Origin blog.csdn.net/sinat_26811377/article/details/104566998