Some interview suggestions for Android programmers

Source: Internet
Author: User

Some interview suggestions for Android programmers
Preface

At the invitation of everyone, I wrote a blog about Android interview. It should be noted that this article is only for Android Application Development, not for rom development and reverse engineering. I think the interview is a very important event for programmers. The quality of the interview results directly determines whether or not to enter a company and what level and treatment to enter a company. I have not had much experience in interviews, but I have had many interviews with others as an interviewer. So I can use these experiences to introduce how to better grasp an interview.

What are appropriate candidates?

Before introducing how to interview, let's analyze from the company's perspective: "What kind of candidates are the technical talents required by the Company? "As far as my interviewer experience in Baidu is concerned, an Android programmer with the following features is what we need:
1. Have a bachelor's degree or above (preferably a prestigious school)
2. Have at least 2 years of work experience (better enterprise name)
3.Solid technology, technical pursuit and passion for work
4.Good communication and collaboration

Among the above four items, 3rd are the most important, that is, technology, which is highly respected by Baidu, therefore, technology is the most important and direct reason for deciding whether to pass the interview. In general, the larger the company, the higher the technical requirements. Although some jobs do not need such good technologies, to distinguish candidates, the interview process will still involve some in-depth topics, and I believe everyone has some experience.

In addition to technology, good communication and collaboration skills are also important. Maybe many people think this is abstract and they will think: "How do you know if I have good communication and collaboration capabilities?" In fact, this problem is not difficult. The interview process is a communication process. If you cannot communicate well with the interviewer, it indicates that there is a problem in the communication between candidates. How can we communicate well with the interviewer? The following suggestions are provided:
-Courtesy and respect.
-Understand the interviewer's questions and answer them directly. Some candidates do not understand the interviewer's questions, and some interviewers do not answer questions directly, or maybe they do not. I think this is very bad, people have to bear the responsibility. Even if this problem does not occur, you can say it out loud, "Sorry, I am not sure." You can even ask the interviewer with an open mind, interview is not only a job search process, but also a process of self-learning and improvement. You need to know that not all the correct answers are required to pass the interview. As long as most of the questions can be answered and the candidates have a good attitude, such candidates can still pass the interview, of course, candidates with poor attitudes can pass the interview even if they have good technology.
-Modest, prudent, and friendly attitude. Some candidates are not cautious during the interview, giving them a casual feeling, such as a poor sitting posture and legs hanging. In other words, do not be too casual, the requirements of the interviewer company cannot be too casual. What's more, candidates! A casual move will give the other party a feeling of disrespect. You don't have to say much about modesty. You must be humble at any time. It is easy to be arrogant during the interview process (commonly known as "desse. A friendly attitude is to make the interviewer feel your sincerity so that everyone can communicate with each other comfortably and comfortably.

Next, I would like to explain my qualifications and work experience. The qualifications are not a hard requirement. Even if the candidate schools are not very good, they may pass the interview. This requires a solid candidate technology. The reason for working experience is more than two years. This is because social recruitment targets generally have some work experience, while one year's work experience is a little shorter. for Baidu, the minimum level of social recruitment is generally T4, which is about two years of experience.

The following is a summary. The ideal candidate should be like this.:
1. Solid technical skills and technical pursuit (required)
2. Good attitude, communication, and people (required)
3. About 2 years of work experience (basic required)
4. Schools, famous enterprises, and high education (not mandatory, plus points)
Basically speaking, meeting the requirements of 1 and 2 can pass the interview, and 3 and 4 are secondary conditions, but generally it is difficult to meet the requirements of 1 if not meeting the requirements of 3. Do not mention special cases. It is of reference significance.
It can be seen that technology is the deciding factor of the interview results. So to what extent can I easily pass the interview with the technology? Having said so much, it seems that it has nothing to do with Android. Next we will take Android as an example to analyze the technologies required for the interview process.

Skills required for the Android interview process

There is a process for an interview. for Android interviews, the interview content cannot be all about Android, and there should be issues related to programming basics. I classified the questions in the Android interview as follows:

Category Description
Data structures and algorithms Familiar with or familiar
Java Proficient
Android Proficient
Design Pattern and architecture Familiar

Generally, an Android Application Development job does not require too many data structures and algorithms. However, this does not mean that candidates do not fully understand data structures and algorithms, therefore, we need to understand the data structure and algorithm a little. Because it is not necessary, it doesn't matter even if the answer is poor during the interview, as long as the questions related to Java and Android can be answered perfectly. Some people reported to me that the interview was hung on the data structure and algorithm, which should be rare in social recruitment. Most of the reason is that the Android questions were not answered well, this is the difference between social recruitment and school recruitment. School recruitment depends on the foundation, and social recruitment depends on the technical depth and business.

As for the design mode and architecture, in fact, the requirements for the intermediate and senior interviews are not very high. If you are familiar with the common design modes, you are OK, such as the singleton mode, engineering mode, and observer mode.

Next we will mainly describe the requirements for Android technology during the interview. In my understanding of Android, I divided the technical categories of Android as follows:

Category Description Developer level
Basic knowledge point Proficient Preliminary and intermediate
In-depth knowledge points Proficient Medium and high level
Details of basic knowledge points Master Advanced
System Core Mechanism Be familiar with and master Senior
Trivial knowledge points Understanding All Levels

For most interviewers, the target positions should be intermediate and intermediate positions (Baidu T4) with knowledge points: basic and in-depth knowledge points; senior positions (Baidu T5) the knowledge points to be mastered are: Basic knowledge points, deep knowledge points, details of basic knowledge points, and the core system mechanism.
1.Basic knowledge point
For example, how to use four components, how to create a Service, and how to layout them. This kind of knowledge needs to be mastered, and it is not difficult.
2.In-depth knowledge points
Such as AIDL, Binder, multi-process, View rendering process, event distribution, message queue, etc. This kind of knowledge is also required for senior developers, But I believe many candidates are not familiar with these questions before the interview. These questions are common during the interview process and must be mastered by senior positions. Failure to solve these questions cannot meet the standards of Baidu's senior engineers, and thus cannot pass the interview.
3.Details of basic knowledge points
For example, there are many problems such as the startup mode and tag bit of the Activity, the Stop problem when the Service is in the start and bind statuses at the same time, the asynchronous synchronization problem of AsyncTask, and the limitations in use. This type of knowledge points will not be noticed during the development process. This will lead to a problem, that is, there is no problem with the development of applications. However, during the interview, the interviewer only needs to ask a little detail or special circumstances, you can't hold it anymore. This type of questions is also required by senior developers. Some interviewers like to ask questions that seem to be difficult to answer, but it is not good for candidates who cannot answer them.
4.System Core Mechanism
For example, the message loop of the main thread, how the main thread interacts with AMS across processes, how various services in the SystemServer process work, and how AsyncTask works. This kind of knowledge is also recommended for senior developers because it allows developers to understand the operating system of Android. Not all Android interviews involve such issues, but large companies with high technical skills may.
5.Trivial knowledge points
I have defined these knowledge points as important but not technically difficult problems, such as how to open a webpage, how to call, how to send text messages, how to locate, and how to touch multiple points, this type of problem is often hard to remember, but it can be done immediately when necessary. This type of problem basically does not appear in the interview process.

Based on your learning process and interview experience on Android, are all the questions you encounter during the interview included in the five categories listed above? I believe everyone has no problem with "1" and "5", but can we Cover the content in "2", "3", and "4? In other words, if the content in steps 2, 3, and 4 can be well grasped, will the questions during the interview be difficult for us? As mentioned in the previous analysis, technology is the key factor for determining whether the interview is successful. What we need to do before the interview is to improve the technology and pay attention to communication and attitude, in this case, it is not very easy to pass the interview?

How to Learn the technologies required for Android interviews

It mainly refers to the technologies in the three categories above, 2, 3 and 4. To be honest, this is not a very simple task. So how can we learn this? Let's talk about it first, and then we will have a series of blogs to introduce the learning process of these technologies in detail. First, you should read the source code, because you need to find answers to many questions during the interview from the source code. Second, you should take the initiative to learn some of the technologies that you encounter at work. Due to project reasons, it is impossible for us to remove all the important technologies of Android from the company's projects. Especially for some small projects, we should take the initiative to learn this time. Someone may ask, "How do I know what needs to be learned actively? "This is indeed a problem, but I made some examples in the previous classification. You can try to learn those technologies first, they are all important technical issues that often occur during interviews. In addition, you should pay attention to accumulation during the learning process, such as writing a blog or taking notes. At the same time, it is also a good choice to open source on Github.

In addition, to better learn the technologies required for the Android interview, you can read my book Android development art exploration. the book provides a detailed and in-depth explanation of the technical details in the previous 2, 3, and 4 categories. This book can achieve immediate results. Speaking of Android development art exploration, I have to say that the original intention of writing this book is to help Android programmers grow into senior engineers, until one day some readers and feedback from me, the content of this book is suitable for interviews. I suddenly found that the content of this book is really suitable for interviews. As for the content of the book, I will not introduce it too much. You can read the contents, sample chapters, and comments from readers. If you think it is not suitable for yourself, don't buy it.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.