Java Android development! These technical aspects of this year’s Android interview must be asked, share the high-definition PDF version

basic situation

I am an ordinary undergraduate, Android development post.

This article is mainly a summary of autumn recruitment interview experience, and finally got offers from Baidu and Tencent.

It mainly includes three sides of Ali, four sides of Tencent, three sides of Baidu, three sides of Netease, and one side of Meituan.

I thought it was the HR side, but the result was technology. I didn't expect it, I didn't expect it!

  • 1. Describe the life cycle of Activity.

  • 2. Describe the life cycle of an Activity starting another Activity

  • 3. What can be configured on the Activity tag

  • 4. What can the tags in the IntentFilter do?

  • 5. How to start the Service

Know IntentService?

  • 6. Several major controls are

  • 7. There are ways to store data

  • 8. What can Intent do?

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

  • 10. Have you used ContentProvider? Why use this

  • 11. Have you used ASyncTask? Do you know how to achieve it?

  • 12. Do you know the thread pool? How to create it? How to realize the bottom layer?

  • 13. The difference between Set, List, and Map, and how the bottom layer of Map is implemented

  • 14. How to rewrite View?

  • 15. Fast row realization

  • 16. Realize the addition of integers represented by two linked lists (the space complexity requirement is very low)

I saw that there are still many programmers who have not even thoroughly figured out the interview process. Today, let's take Alibaba as an example to talk about the interview process and process of major Internet companies!

This article mainly talks about the interview process of the agency recruitment! There are usually 4 rounds of interviews conducted by Alibaba and other major Internet companies in technical social interviews. The first and second aspects are technical aspects, the third aspect is the supervisor interview, and the fourth aspect is the HR interview. For candidates with a target level of P6+, we will add at least one round of cross-team Review interviews, because it involves the Hire Committee grading process, which is more complicated. The following content is mainly introduced for the interview of P5~P6 under normal circumstances, please ignore it directly.

01  technical

1. Personal introduction and basic knowledge examination

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

It is especially important from this stage, because the interviewer does not necessarily scan the candidate's resume before, so listening to the candidate's introduction to the project is the most important way to understand the candidate. In this process, the interviewer tried to get to the bottom of the question, which is very similar to the internal technical review of various companies. A few key points, I hope you pay special attention:

  1. It is terrible to understand the background of the project and not know where the requirements come from. This shows that you are more of an executor, not a person in charge, and lack of overall thinking about the project.
  2. It is terrible to analyze the rationality of the demand, blindly obey the PM, and fail to control the research and development of the demand.
  3. For the research and selection of technical solution design, we hope to see that your solution has been fully thought, researched, compared, and demonstrated. Through this process, you can see whether the candidate’s system design skills are sufficient for the industry’s technology Understand the mastery of open source technology and whether you are willing to apply open source technology. Even if your project is just a simple business system, there should still be a lot of bright spots to be found, otherwise this project experience may lose points.
  4. The results achieved. Many engineers only value the process and not the result, which is not desirable.

3. Testing of programming techniques
In my team, I require at least one programming question in every round of technical aspects. On the one hand, we value the candidate's code style, elegance, and consideration of boundary conditions. These are the qualities that a good programmer must possess. For people with confusing codes and unclear boundaries, we will think that they do not have enough programming skills and pursuits, and they are also lacking at the level of logical thinking. **If such a candidate enters the team, it may cause many bugs and poor project quality in the short term. In the long run, it is not conducive to cooperative development and project inheritance. **On the other hand,** we attach great importance to the efficient implementation of data structures, algorithms, etc. The ability to quickly design efficient programs reflects the candidates' daily deep accumulation and the ultimate pursuit of programming. **There was a typical case not long ago. Our operation and maintenance students found that the processing performance of a back-end module was only dozens of QPS after it went online, and they didn't understand why the performance was so poor. It was not until we reviewed the code that we found that it was a "classic" problem, that is, calling sort in the for loop (although it was a few function calls). After simple optimization, the performance can be improved by 1 to 2 orders of magnitude. Excellent engineers will avoid such problems as much as possible. The optimization of a few lines of code can improve user experience, reduce server costs, facilitate code maintenance, and reduce the workload of brothers.
4. Logic problems or math problems

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

  1. What is the probability that a six-digit number is exactly the same as before when it is rotated 180 degrees counterclockwise?
  2. The number of sides is a 3*4 grid. How many different ways are there to walk from point A in the lower left corner to point B in the upper right corner?

This kind of problem is actually very simple. It can be solved by programming ideas, such as recursion (of course there are many other ways), probability theory, combinatorial mathematics, and even one "number" can be answered. In the process of thinking about problems, you can see the thinking habits of the candidate, and you can also see the logical ability of the candidate. In addition, there are actually many changes in this type of question. If the candidate easily completes the answer, the interviewer can increase the difficulty appropriately. For example, if there is a point in a 3*4 grid that cannot be passed, what will be the result? This type of topic may seem simple, but in fact the resolution is very high, which can fully tap the potential of the candidate. In addition to the above introduction, the candidate should also have an understanding of the industry situation, including competing products, open source projects, etc. This can reflect a person’s vision and industry insight ability, and can also see a person’s learning attitude, whether he is in Continue to update your knowledge reserve.

02   executives face

Compared with the technical side, the supervisor interview will not examine the basic knowledge, data structure and algorithm too much, but because most of the technical supervisors have a strong technical background, they will still address some omissions in the technical process (maybe the interview The officer did not check it, or it may be that the candidate’s answer is not perfect), and focus on supplementary checks. In addition, the core of the supervisor's face is to judge whether the candidate matches the team in other dimensions except technical ability. The first type of dimension, soft quality ability. The dimensions of soft qualities are very rich, and every interview process will not be exhaustively examined, but some important dimensions will definitely be taken care of.

1. Logical thinking.
Similar to technical logic problems, the team can accept people who are not smart enough, but cannot accept people with unclear logic. In this link, you can put forward some advanced topics, such as a very complicated problem for the candidate, and hope that the candidate can try to analyze and decompose, so that the seemingly messy problem becomes clear and achievable. Or, let the candidate elaborate on a problem that has been the most challenging, how to define the problem and analyze and solve it. Of course, it is difficult for students who are new to the workplace to answer these questions perfectly. However, for students who have worked for more than 2 years, I think that the analysis, decomposition, goal setting, planning, and execution of the problem are all necessary qualities. This ability is difficult to develop quickly at work. It is more accumulated bit by bit through the candidate's study and work experience in the past ten or twenty years. Therefore, for social recruitment, I hope that the candidate already has good skills. logical thinking ability.
2. Communication skills.
Failure to communicate effectively and efficiently is a disaster for team projects. In daily work, I often see several classmates arguing over a problem, but in fact they often do not understand what the main point of each other’s talk is, and they even have inconsistent understanding of some terms and concepts, let alone the same. Be reasonable, this kind of ineffective communication is the most important factor leading to lengthy meetings. This type of interview test is usually attached to project introduction or design questions.

If the candidate already has good communication skills, we generally also examine advanced skills: persuasion and influence. This is a necessary ability to become a technical/project leader. The interviewer may have a short virtual communication or debate session with the candidate, hoping that the candidate can persuade the interviewer to accept a certain point of view or technical proposal. Of course, in this process, the interviewer’s villain may use some extreme vocabulary and behaviors. On the one hand, it depends on the candidate’s ability to communicate and persuade and influence others. On the other hand, it is also a stress test. Whether the reaction is professional enough. Creativity.

In the past projects, please tell us about the experience of discovering the shortcomings of traditional methods, trying new methods to solve problems, and gaining success. This type of topic is very open, but unfortunately, nearly half of the candidates I interviewed answered "Nothing" after thinking for a while.

Of course, on the one hand, the candidate may be very humble; on the other hand, it is very likely that the candidate has not tried to innovate.

In the Internet industry, innovation is the source of everything. If there is really "nothing", how to give an offer?

The second dimension is cultural values.

The engineer culture is pragmatic, self-driven, and follow through (follow up to the end, beginning and end). A candidate who is flamboyant, uninspiring, unwilling to take responsibility for everything, and unable to follow up the project to the end, it is difficult to become our partner. In fact, there is not much experience to talk about these kinds of dimensions. Every company has its own cultural genes, and whether a candidate matches with it is dictated by genes and the environment. I will only talk about the most important content from my personal point of view, otherwise I will vote against it. Optimistic and positive. I have to admit that everyone has a positive side and a negative side. Professional thinking is to show the positive side and minimize the negative side as much as possible.

In daily work, everyone does not want to meet a group of colleagues who are frowning and complaining. Good at cooperation. When a classmate joins our team, he not only needs to have excellent personal ability, but also needs to be able to collaborate with other people to achieve the effect of 1+1>2. We will examine the candidate’s attitude towards cooperation in the past experience, whether he has been exposed to more complicated cooperation that spans multiple roles or teams, what are the collaboration difficulties encountered, and how to solve such difficulties . Some candidates often unconsciously express that in the process of project development, multiple people write code, but also need to synchronize requirements, design, negotiate interfaces, joint debugging, and it is very troublesome to promote bug fixes. If I develop it alone, solved. Although this kind of thinking is understandable, it is hoped that everyone can see further. Large-scale 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 focus, not too much attention. To the negative. Pursue the ultimate. This one is difficult. Among the many offers I have sent, there are very few candidates with this quality, but as long as they have this quality, I will almost certainly give an offer. Of course, pursuing the ultimate is not the same as being stubborn.

03 Summary

There is a lot of knowledge in the interview, and there are many aspects that I can't talk about (such as HR, I can really not talk much, please show your most positive side). From a family perspective, as a reference, in short, if you have these, you will definitely be able to get a satisfactory offer from me.

For more learning and discussion, welcome to join our knowledge planet!

Click here to join us!

There are many first-line technical experts in the group, as well as code farmers who are working in small factories or outsourcing companies. We are committed to creating an equal and high-quality Android communication circle. It may not be possible to make everyone's technology advance by leaps and bounds in the short term. In the long run, vision, pattern, and long-term development direction are the most important.

%81.md)

There are many first-line technical experts in the group, as well as code farmers who are working in small factories or outsourcing companies. We are committed to creating an equal and high-quality Android communication circle. It may not be possible to make everyone's technology advance by leaps and bounds in the short term. In the long run, vision, pattern, and long-term development direction are the most important.

There are 2000+ friends here to make your study not lonely~·

Guess you like

Origin blog.csdn.net/fanzhang_vip0723/article/details/114260535