Android 面试之如何准备技术面试

面试题库

1. 面试题

Android 面试重难点
Android Interview
技术面试基础知识

2. 笔试题

牛客网

工作机会

  • 拉勾
  • BOSS 直聘
  • 100 offer
  • 简寻
  • 哪上班

准备面试

技术面试的面试官问的知识,80% 会来自于你的简历,所以你至少提前除了准备自我介绍,还应该认真针对简历上的每个技术点,思考一下可能出现的面试题,并想一想如何去应对它。还有去面试前一定要花点时间了解下你面试的这家公司是做什么的。

对于面试者来说,往往觉得面试就是回答对面试官的问题,但从面试官的角度来看,面试其实就是要做一件事情:「如何区分面试者」。简单的说,就是把你和面试官面过的(或即将面试的)的人区分开来,并给你打上几个签标,简单点可以是「不错」、「合适」、「犹豫」、「肯定不行」。复杂点的,可能会把你的某些能力列出来,比如学习能力强、协作能力差,然后再和其他人放在一起综合考虑。每个项目都有不同的特点,所以每次的侧重能力考察也会不一样。
所以,有时候你通过了一家公司的面试,也不需要太得意了,可能并不是你有多厉害,仅仅只是你正好是这个时间段里性价比较高的那个。当然,如果你被淘汰了,也不需要妄自菲薄,也许只是因为在这个时间段有个比你更高性价比的人也来这家公司面试了。
如何准备与 HR 的面试
HR 通常会问你一些离职原因和职业规划,对于离职原因的阐述,我想大家应该都很清楚了,不要否认老东家的价值,不要否认老东家的价值,可以结合现在面试公司来说出自己的展望。比如我之前面试美团的时候,我是这样回答的,因为美团是一个非常重视移动端业务的互联网平台,而我之前公司由于公司战略的变化,现在业务像提供服务转型而弱化了移动端,作为一个深爱着移动互联网的人,我渴望加入美团这样的团队。
参考HR 常问的一些问题:
https://www.jianshu.com/p/bedc6d8aad4e

如何和 HR 谈薪资
中国人都很喜欢打听别人的收入,收入对于我们这个社会传统来说并不算隐私,但是对本公司或者同行业的人我一般都会选择隐瞒。HR 或者公司的制度都会明文规定不许在公司内打听员工的工资和奖金,为什么呢?大家心知肚明,别人比自己低了,别人难过;别人比咱高了,自己得难过吧。人都会认为自己的能力高于平均水平,对公司的贡献肯定比身边的某某多,但一但得知对方的工资比自己高,那就容易打破自己的心理平衡。
身体不平衡容易生病,心理不平衡容易出事。
所以薪资这个东西一直以来都是一个敏感话题。在讲这个之前,我想先提醒大家,选择工作的时候一定不要只看薪资福利,而应该看重更加长远的价值。

给大家几点建议:

  • 增加自己的筹码
    也就是你在技术面试和管理者的面试过程中表现较好,这时候你可以获得较高的评级,这时候 HR 给到你的幅度也会大一些。所以在面试前应该进行充分的准备,如果你是别人犹豫的对象,刚好放你通过,你不来也行的话,HR一般情况下是不会对你让步的。所以总得来说,好像是废话,但就是真理,你还得好好准备提升自己的能力,以便于在面试中获得更好的评价。

  • 在关键位置上有人
    这一点非常重要,有自己人在你要面试的公司内部,你可以获知他们很多情况,比如这次招聘是否紧急,什么叫坐地起价,就是别人没有你有。有自己人在你才能知道有没有其他比你合适的候选者,没有的话,你才有资格坐地起价。
    如果一个公司找了很久都找不到合适的人,项目已经迫在眉睫,这个时候你出现了。但是你并不知道你是他们千辛万苦找到的,他们不要你就有可能将项目至于风险中可能会有更大的损失,这个时候你是可以要一个比较高的价位的。但没有自己人告诉你这个状态的话,一般你还是会从自身出发,可能觉得自己的表现并不算特别好,会患得患失,脸皮薄的话当然不敢狮子大开口(或者你不明白你为什么在这个时候在这个公司值高价)。
    如果没有相关资讯了解对方公司内部对人员的需求情况的话,很多时候你靠的是运气,就是看你前后的面试者(候选人)和你的性价比结果。如果那个时期,只有你一个候选人,那么你的要求不过份,一般都可以满足。当然,HR还是会打击你一下压压价,别人的工作就是要控制人力成本嘛。所以你认为能力不如你的人工资却比你高,一点也不奇怪,你们进入公司的时机不一样。而且就算你认为对方水平不如你的,那只是你个人的看法,他的水平可能真不如你,但在公司的层面,你们可能被划分在同一级别。所以不要太在意,最好就不要去打听。

  • 不要让对方给你定价
    在 HR 问到期望薪资的时候,自己可否反问对方 HR 自己值多少钱。假如我是 HR,我肯定是非常反感这种行为的,我个人是非常反对这样的做法的。大多数公司会给到招聘网站上挂的薪资范围,而且普遍会比较接近平均值以下。所以当 HR 问你期望薪资的时候,你除了要预估自己在之前技术面试中的表现,还应该注意一下公司给的薪资范围。一般情况下不要直接给出公司给的最高值(自己能力足够优秀的例外),基本比自己预期高出 15% 较为合适,比如自己心里期望是 18k,实际上自己觉得 16k 也可以加入,这时候可以说自己期望是 20k 如果实在是没有底气,也可以附加一句, 19k 也可以,相信公司不会埋没自己。
    你还有什么想问的?
    经常遇到这样的面试官,当他问完你问题后,突然就停下了,但感觉又意犹未尽,所以往往会把对话的主动权交给你,让你来提问。

我的问题问完了,你有什么要问的吗?

可能这时对于你,“要问”还是“不要问”是个问题。如果要问,那么要问什么样的问题呢?只要你不是太傻太天真,你的内心会坚信面试其实还没结束,并不是什么问题都合适问的,如奖金、加班费这些你特别关心的。
面试官的这个问题,是有意问的一种开放性问题,以此来了解你这个人的关注点;还是仅仅是因为面试确实无问题可问了,但又不想太直接结束面试,所以就顺便问问?
这真的是个问题。
不过我们不一定非要去揣测面试官的用意,我们回到自身的需要。

  1. 如果你也没什么问题想问,那么可以委婉的告诉面试官自己没什么问题要问。
    如:「通过一些朋友和渠道,其实我对贵公司的一些文化和愿景都还比较了解,所以我暂时也没有什么想问的,我也很希望能加入到这样一个环境中。」

  2. 如果要问,那问什么呢?
    在提出问题前,我们要先看一下现在这个面试官是处在公司的什么位置。

  • 如果他也是一个开发人员,在对你做技术面试,那不妨聊聊团队的一些技术栈方面的问题。
    如:“你们的团队在采用敏捷开发的方式吗?”
    然后和面试官聊聊敏捷,分享一些各自的经验,方便双方进一步的了解。
    并不是所有的公司都会用敏捷,那我们可以问一些更开放性的问题,如:「在你们的项目中遇到技术障碍了,公司有什么机制去应对吗?」可以就此看看这个公司是否重视技术,有没有一些技术提升和交流的传统。

  • 如果面试官是管理职位的,那么可以问问团队组成;假设你能加入的话,会分配在哪个team,team中有没有带你的人或让你得到进步的模式;或者了解一下他对团队目前状态的看法,是否有什么变化他想引入团队或组织的。
    也就是向管理类面试官提问,你可以问一些对团队现状和未来预期(目标)相关的一些问题,这些问题会让你提前知道,进入这家公司后你应该往哪个方向去努力。

  • 公司文化什么的 HR 一般会主动向你介绍,薪酬和福利不清楚的地方也可以继续沟通。

  • 简单说,问自己需想要得到答案的问题,而且要针对不同的面试官问对方比较“擅长”回答的问题。

    • 管理者:问战略
    • 技术人员:问战术
    • HR 行政人员:问后勤

离面试不到 24 小时,怎么办?
不少小伙伴,会越来越慌,越来越慌,不断地去看一些其他的面试点,生怕哪一个点没有看到。最后呢,在面试的时候,发现自己全都忘光啦,而且在面试的时候,发现自己前面没答好,极容易影响自己后面的发挥。
其实时间越近,反而我们不应该再去看一些新的面试知识,放平心态。
但确实还是需要准备一些东西。那到底准备啥?

  • 自我介绍
    第一个是自我介绍,正常来说,在面试前一天准备这个,是最好的,但不要死记硬背。

  • 项目经验介绍
    你比较熟悉的项目是什么?你在工作中遇到的最大困难是什么?以及你最终是如何解决的?这个项目让你得到了什么成长?

  • 自己的定位
    一般在面试中,还会问到的优势和劣势,比如说:「你的优点是什么」?「你最擅长的事情是什么」?
    不过但凡是你对自己有一个比较清晰的定位,哪怕你这个定位是错的,你也可以以不变应万变,拿出纸和笔记录下你自己的优劣势,并附上相应的案例。

  • 尽可能了解公司
    要了解公司什么呢?肯定不是他的什么福利呀什么的,你先得知道对方想要什么样的人,可以先看招聘网上的职位简介。这个一般还是不够准确,如果有条件,可以问问里面工作的人,或者直接问他们 HR,如果录用你的话,会让你做什么。当你清楚了对方想招什么样的人,你会更加清楚自己应该怎么做。
    再来应该了解面试公司的产品,猜测他们可能会遇到哪些问题。对方招你去是要实现产品和解决问题的,比如大型的 APP 应用,可能会涉及组件化方案和各种性能问题,而小型的应用可能会更加看重你的快速开发能力。

  • 基础面试题
    如果有条件,还可以准备一下 Java 的基础和 Android 的基础。

  • 不需要准备的。
    一些你现在还没有掌握的技术点,准备它们的收益不是很大。既然你还未掌握,现在再看一遍还是难以理解透彻,可能还会出现你认为自己答对了,面试官却认为你南辕北辙的情况。
    比如:算法、设计模式、OpenGL 等,这时候看并不利于你记忆和应付面试官可能换一个角度来问你。
    这样的题或者说技能,是很重要的,但在 24小 时内你只能接受这个现实。如果你其他都准备好了,也可以从现在开始投入时间在这些方面,但不要想着马上就能用上。

总结

  • 提前准备自我介绍
    自我介绍是面试的第一个环节,而且在每一轮面试都会存在。针对不一样的面试官,自我介绍应该侧重点不一样,但大体思路一致。不可完全背诵简历上有的内容,也不可随便说几句就完事儿。正确的思路应该是自己的一个全面总结,包含自己的工作中印象深刻的难题解决过程(START 法则),一半表现自己的技术硬实力和工作表现,另一半表现自己的软实力,包括但不限于沟通,学习和其他能力。
    针对自我介绍,最好是提前在纸上写下来,并且对着墙多练习几遍。

  • 如何准备技术面试
    技术面试一般分两个方向。
    第一个方向是简历上的内容,一般会针对简历上提及的内容进行深层次地追问,以确保简历上的内容属实,并且很容易通过细节判断技术深度。所以在写简历的时候,就应该猜测面试官可能面试到的问题。对简历上出现的一些框架,最好针对它的疑问点进行一定的准备。比如你说你擅长使用 RxJava,那你得知道 RxJava 1 和 2 的区别联系吧,给你一个实际场景,你得知道什么时候用 map、flatMap、zip、skipWhile 等这些操作符吧,你还得知道背压吧,以及 RxJava 2 到底是怎么去应对处理的吧?
    第二个方向是简历之外的内容提问。这个得先看你面试的职级,比如中级和初级开发,你得明白四大组件的基本生命周期吧,你得明白 Java 的基本基础吧,你得明白基本的自定义 View 吧。对于高级和资深,你得好好准备一下多线程、复杂自定义 View 以及动画,得知道多点触控这些吧。还有一些就是面试官所在的公司迫切希望解决或者是他们之前的问题后面得到解决的内容了。
    还有一个是需要看一下你面试的公司,稍大的公司会更加在乎你的基础水平和代码质量,所以会对你的技术深度和技术广度有更高的要去,而小型甚至外包公司会更在乎你的开发速度,和你的抗压能力。
    总的来说,准备再多的面试题都不如先把基础问题弄清楚,弄明白,再把你简历上提及的技术点都先想清楚,搞明白再去面试。

  • 如何应对吹牛题
    HR 的吹牛题不可避免,而且现在吹牛题除了 HR,甚至还有一些总监、经理等都会问到。基本吹牛题都是什么离职原因呀,职业规划呀,什么你遇到过最大的挑战呀,还有你的优势是什么,为什么我们要录用你呀这类的。这些问题还是应该事先准备的。和自我介绍应该,同样是应该写在笔记本上,然后自己多次揣摩,可能你觉得自己准备很好的东西,你写出来自己都知道了。
    还有一个基本不可避免的吹牛题是:「你还有什么想问我的」?这个问题,针对不一样的人问的内容要不一样,对于管理者,可以问公司战略;对于技术人员,可以问公司的项目流程;对于行政 HR 人员,可以问福利和公司文化。如果确实没啥好问的,就委婉地表示自己之前通过其他渠道已经了解了自己想知道的,切忌不要直接说没有。

  • 如何和 HR 谈薪资
    和 HR 谈薪资是一个必不可少的过程。如果手里已经有 offer 或者前面感觉自己面试表现不错,建议谈的更加有底气。一般要价比自己期望的高 15%,不要说范围价格,不要说范围价格!虽然我知道你心里比预期低 10% 也可以接受。

  • 手里有多个 Offer 怎么选
    面对多个 Offer,大多数都在同一个城市,这时候需要把眼光看的更加长远,**一定要把眼光看得更加长远!**选择更有发展潜力的公司,而不要一味地追求薪资。这一块我其实深有感触,所以前段时间,我放弃了高我现在薪资一半的公司,选择了现在的公司,其实原因很简单,一面的面试官把我点燃了。
    还有一点是,一定要注意距离,最好优先选择距离家近的公司,租房的可以把家搬过去。每天花在地铁上的时间,不如在公司多做点事儿。

你可能感兴趣的:(面试相关)