Android程序员秋招三面蚂蚁金服,高级Android都应该知道

我觉得是HR一面,结果是技术,没想到啊,没想到!git

  • 一、描述Activity的生命周期。程序员

  • 二、描述一个Activity启动另一个Activity的生命周期github

  • 三、Activity标签能够配置什么面试

  • 四、IntentFilter里面的标签能够干吗算法

  • 五、Service怎么启动编程

  了解IntentService吗?后端

  • 六、几大控件有服务器

  • 七、存储数据的方式有数据结构

  • 八、Intent能够干吗架构

  • 九、Sharedpreference里面的apply和commit有什么区别

  • 十、ContentProvider用过吗?为何要用这个

  • 十一、ASyncTask用过吗?知道是怎么实现的吗?

  • 十二、线程池知道吗?怎么建立?底层怎么实现?

  • 1三、Set、List、Map区别,Map底层怎么实现的

  • 1四、重写View怎么重写?

  • 1五、快排实现

  • 1六、实现两个链表表示的整数相加(空间复杂度要求很低)

看到还有不少程序员连面试流程都没有完全弄清楚,今天,咱们以阿里为例,来聊聊互联网大厂的面试流程和过程!

本篇主要仍是聊聊社招的面试过程!阿里以及其余的互联网大厂的技术类社招面试,一般状况是 4 个轮次。第1、第二面是技术面,第三面是主管面试,第四面是 HR 面试。对于目标级别在 P6+ 的候选人,咱们会增长至少一轮的跨团队 Review 面试,由于涉及招聘委员会(Hire Committee)的定级流程,因此要复杂一些。接下来的内容,主要针对一般状况下 P5~P6 的面试来介绍,大神请直接忽略。

01?技术面

1. 我的介绍和基础知识考查

这部分算是必备技能。我我的却是倾向于弱化基础知识的考查,毕竟每一个候选人的背景不一样,应该更看重聪明程度、学习能力、沟通理解力等,基础知识只能证实他不是一个优秀的工程师,却没法证实他是一个优秀的工程师。
2. 项目经历考查

从这个阶段开始就格外重要了,由于面试官以前并不必定完整浏览候选人的简历,因此聆听候选人对项目的介绍是了解候选人的最主要途径。在这个过程当中,面试官试图刨根问底,这跟各公司内部的技术评审很类似。几个关键点,但愿你格外注意:

  1. 对项目背景的了解程度,讲不清楚需求从哪里来是很是可怕的,这说明你更多只是一个执行者,不是负责人,且缺乏对于项目总体的思考。
  2. 对需求的合理性进行分析,一味遵从 PM,不能把控需求的研发是很可怕的。
  3. 对技术方案设计的调研和选型,咱们更但愿看到你的方案是通过充分思考、调研、对比、论证的,经过这个过程,能够看到候选人的系统设计功底,是否对业界技术有足够了解,对开源技术的掌握状况,是否愿意应用开源技术。哪怕你的项目只是一个简单的业务系统,那么仍然应该有不少亮点可寻,不然这段项目经历可能会减分。
  4. 取得的成效。不少工程师只看重过程,不看重结果,这是不可取的。

3. 编程技术考查
在个人团队中,我要求每一轮技术面,都至少要有 1 道编程题目。一方面,咱们很是看重侯选人的代码风格、优雅程度,还有对边界条件的考虑,这些都是好的程序员必须具有的素质。对于代码混乱、边界考虑不清的人,咱们会认为他没有足够的编程素养和追求,在逻辑思惟层面,也有所欠缺。这样的候选人进入团队,短时间可能形成 Bug 多、项目质量差等影响,长远来看,不利于合做开发、项目传承等。另外一方面,咱们很是看重数据结构、算法等的高效实现。可以快速设计出高效的程序,这体现了候选人平常的深厚积累,还有对编程的极致追求。前不久就有一个典型案例,咱们的运维同窗发现一个后端模块上线后处理性能只有几十 QPS,很不理解为何性能这么差。直到咱们从新 review 代码后,才发现是个“经典”问题,即 for 循环里调用 sort(虽然是隔了几回函数调用),简单优化后,性能就能够提高 1~2 个数量级。优秀的工程师,必定会尽量规避这类问题,几行代码的优化,就能提高用户体验、下降服务器成本、方便代码维护、减小兄弟们的工做量。
4. 逻辑题目或数学题目

这类题目的核心不在于它有多复杂,须要多少经验背景,而在于,只要逻辑清晰,认真思考,大多能得出结果,虽然不必定是最优解。我举几个例子:

  1. 一个六位数字,逆时针旋转 180 度后与以前彻底相等的几率是多少?
  2. 边数是 3*4 的网格,从左下角的 A 点走到右上角的 B 点,一共有多少种不一样的走法?

这类题目其实很简单,能够用编程的思路解决,好比递归(固然还有不少其余方式),也能够用几率论、组合数学的方式解决,甚至一个一个“数”也是能获得答案的。在思考问题的过程当中,能够看出候选人的思惟习惯,也能够看出候选人的逻辑能力。另外,这类题目其实有不少变化,若是候选人很轻松完成了回答,面试官就能够适当加大难度,好比 3*4 的网格有一个点不能通过,那么会是什么结果?这类题目看似简单,实则分辨率很高,能够充分挖掘候选人的潜力。除去上面的介绍外,候选人还应该对行业状况有所理解,包括竞品、开源项目等,这能够体现一我的的眼界和行业洞察能力,也能够看出一我的的学习态度,他是否在持续更新本身的知识储备。

02??主管面

相对于技术面而言,主管面试不会过多考查基础知识、数据结构及算法,但由于技术主管大多具有很强的技术背景,因此仍然会针对技术面过程当中的一些遗漏点(多是面试官没有考查到,也多是候选人的回答不够完善),着重补充考查。除此以外,主管面的核心就是判断候选人除了技术能力外的其余维度,是否与团队相匹配。第一类维度,软素质能力。软素质的维度很丰富,每一次面试过程不会面面俱到地考查,但一些重要的维度必定会被照顾到。

1. 逻辑思惟。
与技术面的逻辑题目相似,团队能够接受不足够聪明的人,但没法接受逻辑不清晰的人。在这个环节,能够提出一些进阶的题目,好比给候选人一个很复杂的问题,但愿候选人能够尝试分析、分解,让看起来一团乱麻的问题变得清晰可实现。或者,让候选人阐述一个经历过最有挑战的问题,是如何定义问题并分析解决的。固然这类问题,通常初入职场的同窗都很难回答完美;不过对于工做 2 年 + 的同窗,我以为问题的分析、分解、设定目标、规划、执行都是必备素质。这个能力很难在工做中迅速培养,它更可能是经过候选人过去一二十年的学习和工做经历,一点一滴积累的,因此对于社招而言,但愿候选人已经具有很好的逻辑思惟能力。
2. 沟通能力。
不能有效且高效地沟通,对于团队项目是场灾难。在平常工做中,常常会看到几个同窗针对一个问题争论得不可开胶,但其实他们每每没有理解对方所讲的主旨是什么,甚至对于一些名词和概念的理解都不一致,就更不要说同理心了,这种无效沟通是致使会议冗长的最主要因素。这类的面试考查,通常会依附于项目介绍或者设计题目等。

若是候选人已经具有不错的沟通能力,咱们通常还会考查进阶能力:说服和影响。这是成为技术 / 项目负责人的必备能力。面试官可能会和候选人进行一个简短的虚拟沟通或辩论环节,但愿候选人能够说服面试官接受某个观点或技术方案。固然,在这个过程当中,面试官扮演的反派可能会用一些偏激的词汇和行为,这一方面是看候选人的沟通说服和影响他人的能力,另外一方面也是压力测试,看看候选人在受到刁难时的反应,是否足够职业。创新能力。

在过去的项目中,请讲述一次发现传统方法的不足,尝试新的解决问题的方法,并得到成功的经历。这类题目很是开放,但遗憾的是,在我面试过的候选人中,近半数都是在思索一下子后回答“没有什么”。

固然,一方面可能候选人很谦虚,另外一方面,则极可能是候选人确实没有尝试作过什么创新。

互联网行业,创新是一切之源,若是真的“没有什么”,如何给 Offer 呢?

第二类维度,文化价值观。

工程师文化是务实、自驱、Follow Through(跟进到底,善始善终)。一个浮夸,不思进取,凡事不肯承担责任,不能将项目跟进到底的候选人,很难成为咱们的伙伴。这类维度,其实没有太多经验可谈,每一个公司都有它的文化基因,而候选人是否与之匹配,是基因和环境使然。我只说下从我我的角度,最为看重的内容,不然我会一票否决。乐观积极。不得不认可,每一个人都有积极的一面和消极的一面,职业化的思惟在于将积极的一面展示出来,尽可能弱化消除消极一面的影响。

在平常工做中,每一个人都不但愿遇到一群愁眉苦脸、满腹牢骚的同事。善于合做。一位同窗加入到咱们的团队,他不只须要具有优秀的我的能力,同时也须要能和其余人协同合做,起到 1+1>2 的效果。咱们会考查候选人在过去的经历中,对待合做的态度,有没有接触过比较复杂、跨越多个角色或团队的合做,遇到过的协做困难是什么,遇到这类困难是如何解决的。有些候选人常常会无心识地表达出,在项目研发过程当中,多人写代码,还要同步需求、设计、协商接口、联合调试,并且有 Bug 修复推进也很麻烦,若是我一我的开发早就解决了。这种思惟虽然无可厚非,但但愿每一个人能够看得更远,大型项目是一我的完成不了的,在多人合做的背景下,如何提高合做的效率和质量才是重点,而不是过多地看到负面。追求极致。这一条很难。在我发过的这么多 Offer 中,具有这个素质的候选人也是百里挑一,但只要具有这个素质,我几乎必定会给 Offer。固然,追求极致不等于钻牛角尖。

03?总结

面试的学问不少,不少方面我都没法讲到(好比 HR 面,我能讲的实在很少,请表现出你最积极的一面就好)。一家之言,做为参考,总之,你具有了这些,确定能从个人手中拿到满意的 Offer。

最后

因为文章篇幅缘由,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有?高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助你们学习提高进阶,也节省你们在网上搜索资料的时间来学习。

须要的朋友能够私信我【答案】或者点击这里免费领取

相关文章
相关标签/搜索