Some years later interview advice to Android programmers interview

Some years later interview advice to Android programmers interview

Foreword

Today wrote an article on Android related blog interview, should be noted that this article only for Android application development, not development and reverse engineering for rom. I would like to interview for programmers is a very important event, good or bad result of the interview will determine whether to enter a company and at what level and treatment to a company. I have not much experience for an interview, but the identity of the interviewer interviewing someone does have a lot of times, so I can combine these experiences to introduce a better grasp of how the interview.

What is the right candidate

Before describing how to interview, start here to analyze the company's point of view: "? In the end what kind of candidate the company needed technical personnel" as far as I experienced interviewer in some of Baidu, one has the following features Android program our staff is needed:

  1. With college degree or above (schools better)
  2. 2 years and above have work experience (corporate name better)
  3. Solid technology, technology and the pursuit of passion
  4. Good communication and collaboration

In the above four, where Article 3 is the most important, namely technology, Baidu technology is respected by everyone, and therefore determine whether technology is the most direct cause of the most important interview by. In general, the more large companies, their demand for higher technology, although part of the job does not require that kind of technology, but in order to make a distinction between the candidates, their interview process will still interviewing some of the topics a little deeper, I believe we have the experience.

In addition to technology, good communication and collaboration is more important. Perhaps many people think this is more abstract, and my heart will think: "how do you know if I have good communication and collaboration capabilities it"? In fact, this problem is not difficult, the interview process is a process of communication, and the interviewer if you can not communicate well, which shows the communication candidates in question. How well the interviewer and communicate it? To the following suggestions:

  • Courtesy and respect

  • Understand the interviewer's question and answer directly . Some candidates do not understand the interviewer to listen to the problem, and some interviewers do not always answer questions directly, or perhaps is not the reason, they begin to beat around the bush or even change the subject, I think this is very bad, people want to bear, even if the problem does not, it can also be said out loud, "I'm sorry, that I'm not good," even under can humbly ask the interviewer, the interview is not just a job search process, but also a self-learning and improve the process. We have to know that not all have to answer the question correctly to pass the interview, as long as it can answer most of the questions and good attitude candidate, then such candidates still pass the interview, of course, bad attitude candidate, even if the technology is good is also very likely to pass the interview.

  • Modest, friendly attitude . Some candidates during the interview imprudent, giving a casual feel, such as not sitting upright, tilted his legs, and so on, in other words, do not be too casual, as companies require the interviewer can not be too casual, not to mention candidates too! Move too freely give your partner a feeling of not being respected. About modest, this would not have to say, any time humble, arrogant interview process (commonly known as "Joseph"), is very easy to Beibi. Friendly attitude, is to make the interviewer feel your sincerity, so we communicate them only more comfortable and at ease. ,

The following description of the qualifications and do some work experience, education is not a mandatory requirement, even if the candidate is not very good school is also possible through the interview, which requires the candidate technology is very solid. And work experience, the reason is more than 2 years, this is because social recruitment objects usually have some work experience, and one year of work experience slightly short of the point, take Baidu, the club recruit the lowest level generally T4 almost exactly two years experience is about.

Here do the next summary, the ideal candidate should look like this :

  1. A solid technical foundation, technical pursuit (must)
  2. Attitude, communication and human are very good (must)
  3. 2 years of working experience (basic necessities)
  4. Elite, famous enterprises, higher education (non-essential, bonus items)

Basically, to meet the 1 and 2 will be able to pass the interview, 3 and 4 are secondary conditions, but in general it is difficult to meet the 1 3 does not meet, not to mention the special case, wood reference value.

Thus, the technical result of the interview is the determining factor. So in the end to what extent can master the technology relatively easily through the interview? He said so much, it seems, and nothing to do Android, following began to Android as an example to the analysis required under the interview process technology.

Android interview process required to master the technology

An interview there is a process to get Android interview, the content of the interview can not all be Android issue, there should be a basis for programming related questions. I did an interview on the issue Android in the next classified as follows:

Some years later interview advice to Android programmers interview

In general, an Android application development jobs are data structures and algorithms need not be too strong, but that does not mean that candidates can fully understand the data structures and algorithms, data structures and algorithms so we still have to understand a little lower, Since it is not necessary, so even if the interview process is not the answer does not matter, as long as the back of the Java, Android-related issues can be the perfect answer just fine. I have classmates and feedback, said the interview was hanging in the data structures and algorithms, which move in the community should be rare, it is mostly because Android is no good answer to the problem out, this is the club to recruit and recruit school the difference is, look at the foundation school recruit, recruit community to see the technical depth and business.

Design patterns and architecture, in fact, senior interview this requirement is not particularly high, become familiar with common design patterns basically ok, such as a singleton, engineering mode, observer mode.

Next describes the interview process under the requirements of Android technology, I do the technical category of the Android a bit divided as follows

Some years later interview advice to Android programmers interview

For most of the interviews are concerned, our goal should be a one senior, intermediate positions (Baidu T4) requires knowledge point is: basic knowledge, in-depth knowledge points; senior posts (Baidu T5) requires knowledge point : basic knowledge, in-depth knowledge, the details of the mechanism and system core basics of points.

1. Basic knowledge

For example, the four major components of how to use, how to create Service, how to layout. Such knowledge is required to master, and have no difficulty.

2. Slightly-depth knowledge

比如AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。这类知识对于高级开发者来说也是必须掌握的,然而相信很多候选者在面试之前并不能对这些问题了如指掌。这些问题基本都是面试过程中很常见的问题,也是高级岗位所必须掌握的问题,不搞定这些问题无法达到百度的高级工程师的标准,因此也不可能通过面试。

3. 基本知识点的细节

比如Activity的启动模式和标记位、Service同时处于start和bind状态时的停止问题、AsyncTask的同步异步问题以及使用时的限制等,这种问题还有很多。这类知识点,大家在开发过程中可以并不会去注意,这会导致一个问题,那就是开发应用没问题,但是在面试时面试官只要稍微问下细节或者特殊情况,就hold不住了。 这类问题也是高级开发者所需要掌握的,有些面试官喜欢问一些看似刁钻的问题,但是候选者如果回答不了也是不好的。

4. 系统核心机制

比如主线程的消息循环、主线程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式、AsyncTask的工作原理等。这类知识对于高级开发者也是建议掌握的,因为它们可以让开发者理解Android的运行体系。 这类问题并不是所有的Android面试都会涉及到,但是技术含量高的大公司有可能涉及此类问题。

5. 琐碎的知识点

此类知识点我把它们定义为一些重要但是没有什么技术难度的问题,比如如何打开一个网页、如何打电话、如何发短信、如何定位、多点触控等,这类问题往往不好记忆,但是需要的时候去查一下就能立马搞定。这类问题基本上不会出现在面试过程中。

大家结合自己对Android的学习过程以及面试经验,在面试中遇到的问题是不是都是包含在上面的5个分类之中呢?对于1和5相信所有人都没有问题,但是对比2、3、4中的内容,大家是不是都能很好地Cover呢?换句话说,如果2、3、4中的内容大家都能很好地掌握,面试中的问题还能难倒我们吗?在前面的分析中提到,技术是觉得面试是否成功的关键因素,那么在面试前要做的就是把技术搞好,同时注意沟通和态度,这样的话通过面试岂不是很简单的事?

然后在这里我放上一份学习Android的技术路线:

Some years later interview advice to Android programmers interview

如何学习Android面试中所需的技术

这里主要是指上面2、3和4这三个类别中的技术,说实话,这并不是一件很简单的事。那么到底如何学习呢,这里先大概说下,随后会有一系列博客来详细地介绍这些技术的学习过程。首先要阅读源码,因为面试中的很多问题需要从源码中找答案,其次要主动学习平时工作中遇不到的一些技术,由于项目的原因,我们不可能通过公司的项目来解除到Android中所有的重要技术,尤其是一些规模不大的项目来说,这个时候要主动去学习。也许有人要问:”我怎么知道哪些东西是需要主动学习的呢?“这的确是个问题,但是我在前面的分类中做了一些举例,大家可以先尝试学习下那些技术,它们都是很重要且时常在面试中出现的技术问题。另外学习的过程中要注意积累,比如写博客、记笔记都是可以的,同时在Github上做开源也是不错的选择。

另外,为了更好更快地学习Android面试中所需的技术,大家可以阅读《Android开发艺术探索》,书中对前面的2、3和4类别中的技术细节做了详细深入的讲解,通过这本书可以达到立竿见影的效果。说到《Android开发艺术探索》,我不得不说,这本书能够帮助Android程序员更好地成长为高级工程师,但是这本书的内容也很适合面试。至于书的内容我就不做过多介绍了,大家可以去看一看。

Android学习资源分享

Xiao Bian here to share a collection of dozens of sets of finishing above their own technology system diagram related to Tencent, headlines, Ali, the US group and other companies face questions 19 years , the technology has become a finishing point video and PDF (actually more than expected a lot of time), contains knowledge context + many details , because of space limitations, here in the form of pictures to show you part of it.

There are  advanced architecture technology Advanced Brain Mapping, Android interview with thematic development , advanced materials help you learn advanced architecture to enhance advanced, but also saves everyone time online in search of information to learn, you can learn to share with close friends.

Android video learning PDF + Architecture + + source code documentation interview notes

Android development of core knowledge [notes]

Some years later interview advice to Android programmers interview

[Android thinking brain map (skill tree)]

Some years later interview advice to Android programmers interview

[Android core advanced technology PDF document, BAT manufacturers interview Zhenti resolved]

Some years later interview advice to Android programmers interview

[Android] advanced architecture video learning resources

Android learn more succinctly video after you have received is even more powerful! Enter BATJ manufacturers, etc. (preparing for)! Now say the Internet winter, in fact, nothing more than you get on the wrong bus, and wear less (skills), and if you get on to the car, their technology is robust enough to replace the cost of large companies, how could be laid off, have Curd is out of the business end of it! Now flooding the market junior programmer, set of tutorials for the Android development engineers 1--6 years of staff, is in a bottleneck, after years want to break their own salary increase, advanced Android senior architect for you is themselves, and receive it as soon as possible!

Some years later interview advice to Android programmers interview

[Android Advanced Learning Video], [plus] Cheats Android full interview I wx: X1524478394 free access!

Guess you like

Origin blog.51cto.com/14332859/2463449