preface

I had prepared for the interview for quite a long time. At that time, I planned to talk with the company about raising salary after almost preparing for the interview. If we could not reach an agreement, I would directly find another company after the New Year. Who thought that the wedding leave has not been finished, the boss announced the decision to withdraw from Shanghai in the company, willing to go to Shenzhen to go, do not want to find their own work, to a more than a month of time to find a job, there is no compensation, anyway, the company has no money. Sad… .

Fortunately, I have prepared in advance, but it is intermittent. Today I will watch this and tomorrow I will watch that. This is good, directly to the worst, there is no way, heart preparation.

I thought it was HR, but it turned out to be technology. I didn’t expect it. I didn’t expect it!

  • 1. Describe the Activity lifecycle.

  • Describe the lifecycle of an Activity that starts another Activity

  • 3. What can be configured with the Activity tag

  • 4, IntentFilter inside the tag can do

  • 5. How to start Service

Do you know anything about IntentService?

  • 6, several major controls have

  • 7. There are ways to store data

  • 8, Intent can do what

  • 9. What is the difference between apply and commit in Sharedpreference

  • 10. Have you used ContentProvider? Why are we using this

  • 11. Have you used ASyncTask before? Do you know how to do that?

  • Do thread pools know? How do I create it? How is it implemented at the bottom?

  • 13, Set, List, Map difference, Map underlying how to implement

  • 14, Rewrite View how to rewrite?

  • 15. Fast platoon implementation

  • 16. Add integers represented by two linked lists (very low space complexity requirements)

See there are many programmers even the interview process have not been thoroughly clear, today, we take Ali as an example, to talk about the interview process and process of the Internet giant!

This article will mainly talk about the interview process of the recruitment agency! Ali and other big Internet technology companies recruit interviews, the usual situation is 4 rounds. The first and second are technical interviews, the third are supervisor interviews, and the fourth are HR interviews. For P6+ target candidates, we will add at least one round of cross-team Review interviews, which is more complicated because of the Hire Committee’s grading process. The following content is mainly for the usual P5~P6 interview to introduce, please directly ignore.

01 technical

1. Personal introduction and basic knowledge examination

This part is an essential skill. Personally, I tend to weaken the examination of basic knowledge. After all, each candidate has a different background and should pay more attention to intelligence, learning ability, communication understanding, etc. Basic knowledge can only prove that he is not an excellent engineer, but cannot prove that he is an excellent engineer. 2

This is especially important from this stage, because interviewers don’t necessarily have to read a candidate’s resume completely, so listening to what the candidate has to say about the project is the most important way to get to know the candidate. In this process, the interviewer tries to get to the bottom of the matter, much like a technical review within a company. Here are a few key points that I want you to pay attention to:

  1. Knowing the background of the project and not being able to articulate where the requirements are coming from is a terrible sign that you are more of a doer than a person in charge and lack the overall thinking of the project.
  2. It is terrible to analyze the rationality of requirements, blindly follow PM and fail to control the research and development of requirements.
  3. For the investigation and selection of technical scheme design, we hope to see that your scheme has been fully considered, investigated, compared and demonstrated. Through this process, we can see the candidate’s system design foundation, whether he has enough understanding of the industry technology, the grasp of open source technology, whether he is willing to apply open source technology. Even if your project is just a simple business system, there should still be a lot of shine to it, or the project experience could be a minus.
  4. The results achieved. Many engineers only care about the process, not the result, which is not desirable.

In my team, I require at least one programming question for each round of technical questions. On the one hand, we value a candidate’s code style, elegance, and consideration of boundary conditions, all of which are essential qualities of a good programmer. For the person whose code is chaotic and boundary is not considered clearly, we will think that he does not have enough programming literacy and pursuit, and in the level of logical thinking, he also lacks. Candidates like ** joining the team may cause bugs and poor project quality in the short term, but in the long run, it is not good for cooperative development and project inheritance. ** On the other hand, ** we attach great importance to efficient implementation of data structures, algorithms, etc. The ability to design efficient programs quickly demonstrates the candidate’s deep daily experience and passion for programming. ** There was a typical case not long ago. Our operation and maintenance students found that the post-processing performance of a back-end module was only tens of QPS, and they couldn’t understand why the performance was so poor. It wasn’t until we reviewed the code that we found a “classic” problem where the for loop called sort (albeit after a few function calls) was simply optimized to improve performance by 1 or 2 orders of magnitude. A good engineer will avoid these problems as much as possible. A few lines of code optimization can improve user experience, reduce server costs, facilitate code maintenance, and reduce the workload of the brothers. 4. Logic questions or math questions

The core of this kind of problem is not how complicated it is or how much experience background it requires, but that, with clear logic and careful thinking, most of the results can be obtained, although not necessarily the optimal solution. Let me give you a few examples:

  1. What is the probability that a six-digit number will be exactly the same after being rotated 180 degrees counterclockwise?
  2. On A 3 by 4 grid, how many different ways can you go from point A in the lower left to point B in the upper right?

These are simple problems that can be solved programmatically, recursively (and in many other ways), by probability theory, combinatorics, or even by “numbers”. In the process of thinking, you can see the thinking habits of the candidate, and also the logical ability of the candidate. In addition, this kind of question actually has many variations, if the candidate easily completed the answer, the interviewer can increase the difficulty appropriately, for example, 3*4 grid can not pass a point, then what will be the result? These may seem simple, but in fact they have a high resolution and can fully tap the candidate’s potential. In addition to the above introduction, candidates should also have an understanding of the industry, including competitive products and open source projects, which can reflect one’s vision and insight into the industry, as well as one’s learning attitude and whether he is constantly updating his knowledge reserve.

02  Head of surface

, compared to the technical director interview not too measure knowledge base, data structure and algorithm, but because most technical director has a strong technical background, so, according to the theory of technical process could still be some missing point (may be the interviewer didn’t check that may also be candidates answer not perfect), supplementary examination. In addition, the core of leadership is to judge whether the candidate is a good match for the team in other dimensions besides technical ability. The first dimension is soft competence. There are many dimensions of soft quality, and every interview process will not examine everything, but some important dimensions will certainly be taken into account.

1. Think logically. Similar to technical logic questions, teams can accept people who aren’t smart enough, but they can’t accept people who aren’t logical. In this link, some advanced topics can be proposed, for example, give the candidate a very complicated problem, and hope the candidate can try to analyze and decompose it, so that the seemingly messy problem becomes clear and feasible. Or, ask the candidate to describe a problem he or she has experienced as the most challenging, how the problem was defined and solved. Of course, this kind of question, general students are difficult to answer the perfect workplace; However, for students who have worked for more than 2 years, I think problem analysis, decomposition, goal setting, planning and execution are all necessary qualities. It is difficult to develop this ability quickly in work, and it is more accumulated bit by bit through the candidate’s study and work experience in the past 20 years. Therefore, for social recruitment, it is expected that the candidate has good logical thinking ability. 2. Communication skills. Failure to communicate effectively and efficiently is a disaster for team projects. In daily work, often see some students argue for a problem does not glue, but they often do not understand what is the main idea of each other speak, even for some terms and concepts of understanding are inconsistent, let alone the empathy, the ineffective communication is lead to the most important factor in the long meeting. This kind of interview examination, generally will be attached to the project introduction or design questions.

If the candidate already has good communication skills, we also typically look at more advanced skills: persuasion and influence. This is an essential skill to be a technical/project leader. The interviewer may have a short virtual communication or debate session with the candidate, hoping that the candidate will convince the interviewer of an idea or technical solution. Of course, in this process, the villain of the interviewer may use some extreme words and behaviors, partly to see the candidate’s ability to communicate, persuade and influence others, and partly as a stress test to see if the candidate’s reaction to being hecked is professional enough. Innovation ability.

In a past project, tell us about a time when you found a traditional way to solve a problem and succeeded. This type of question is very open, but unfortunately nearly half of the candidates I’ve interviewed have answered “nothing” after thinking about it for a while.

Of course, on the one hand, the candidate may be modest. On the other hand, it’s quite possible that the candidate really hasn’t tried anything new.

In the Internet industry, innovation is the source of everything. If there is really “nothing”, how to Offer?

The second dimension is cultural values.

The engineer culture is pragmatic, self-driven and Follow Through. A candidate who is grandiose, unambitious, unwilling to take responsibility for anything, and unable to follow through on a project will not be our partner. In this dimension, there is not much experience to talk about. Every company has its cultural DNA, and whether a candidate matches it is determined by genetics and environment. Let me just say what I personally value most, or I’ll vote it down. Be positive. It has to be admitted that everyone has both positive and negative sides. The professional thinking lies in showing the positive side and minimizing the negative side.

At work, no one wants to run into a group of sullen, grouchy colleagues. Good at cooperation. For a student to join our team, he should not only have excellent individual ability, but also be able to cooperate with others to achieve the effect of 1+1>2. We will examine candidates’ past experience in dealing with cooperation, whether they have been involved in complex cooperation that spans multiple roles or teams, what difficulties they have encountered in collaboration, and how they have solved such difficulties. Some candidates often unconsciously express that in the process of project development, multiple people write code, need to synchronize requirements, design, negotiate interfaces, joint debugging, and it is troublesome to promote Bug fixing, which would have been solved if I had developed alone. This kind of thinking is understandable, but I hope everyone can see further. Large projects cannot be completed by one person. In the context of multi-person cooperation, how to improve the efficiency and quality of cooperation is the key, rather than focusing too much on the negative aspects. Pursue perfection. This one is hard. In so many offers I have sent, there are few candidates with this quality, but as long as they have this quality, I will almost certainly Offer. Of course, pursuing perfection is not the same thing as obsessing.

03 summary

There are a lot of knowledge of interview, many aspects I can not talk about (for example, HR, I can not speak much, please show your most positive side). As a reference, in a word, you have these, will certainly be able to get a satisfactory Offer from my hands.

conclusion

Finally, in order to help you deeply understand the principle of Android related knowledge points and interview related knowledge, here are 14 sets of relevant interview questions I collected and sorted out for Tencent, Bytedance, Ali, Baidu, etc. I sorted out the technical points into videos and PDF (actually much more energy than expected). Package knowledge context + many details.

There is a lot of information about Learning Android online, but if the knowledge learned is not systematic, and problems are only tasted, no further research, then it is difficult to achieve real technology improvement. Hope thisA systematic technical systemI have a direction reference for you.