查看原文
其他

一位Android大牛的BAT面试心得与经验总结

石原里美 终端研发部 2022-08-26

点击上方的终端研发部,右上角选择“设为星标

每日早9点半,技术文章准时送上

公众号后台回复“学习”,获取作者独家秘制精品资料


往期文章

记五月的一个Android面试经

今日头条屏幕适配方案落地研究

APK瘦身-是时候给App进行减负了

Flutter  + MVP +Kotlin 实战!

阿里巴巴:给你一个Demo 你如何快速定位ANR


来源:Android_石原里美

原文链接:https://www.jianshu.com/p/ab31f64460b4

序言

目前形势,参加到Android队伍的人是越来越多,可以说是已经达到了供过于求的地步了。

今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇面试心得与经验总结。

诚意之作,希望可以给在外来找工作的人一点指导以及帮助,如果能耐心读完的话,相信你会找到自己想需要的东西的。

在这之前我想先问大家几个问题

你如何看待面试?

任何企业招聘重要岗位时都不会只安排一个候选人面试,通常都是两到三个甚至更多,最终来优中选优综合评估,筛选出与企业所需岗位能力素质要求最接近的人,所以对求职者来说面试是一场比拼,一个竞争的舞台,比的是素质经验能力,也是思维方式,以及对岗位的认知度,拼的是耐性,临场发挥,对企业的认同感,比拼的奖品就是录用通知书,所以说应聘者以什么心态,怎样的精神面貌来对待面试这个过程,决定了你在面试时的结果。

并且我觉得面试本身并不能完全评价一个人的实力。面试通过的人,也许只是恰好在面试时遇到了自己熟悉的问题,面试不通过,也有可能是面试官自身的问题,并非每个面试官都具备客观评价别人的能力。

换句话说,面试没通过也许是面试官没有发现你的才华,面试通过了也并不代表你就能胜任工作,因为进入企业之后可不是每天负责回答面试题!

网上关于面试最多的是什么?就是面经,他有些介绍了一些“装逼”的方法,还有所谓的“面试技巧”,我本人的话是不太认可的。技巧需要有,这是为了让你更好的展示自己,而非坑蒙拐骗。我更想展现一个真实的自己,如果面试官不认可,说明我们没有缘分,或者说自己的能力还不够。

“面试造火箭,工作拧螺丝”,你也是这样认为的嘛?

在招聘中,这类情况一直在发生。我们让工程师通过严格的筛选程序,问他们一些有挑战性的问题,但在把他们招进公司之后,只是让他们做一些枯燥乏味的事情,比如负责由五六个服务组成的系统,或者让页面看起来更漂亮些。我并不是说这些任务就不需要技能,只是这些任务所需要的技能与大多数面试涉及的内容根本不一样。

既然BAT们是众所周知的福利待遇发展好,那自然其进入门槛也水涨船高,我记得曾有媒体戏称进入BAT的难度不比考公务员低多少。

虽说如今招聘更偏重能力,但当出现僧多粥少的情况时,也必然需要进行硬性条件上的筛选。其实这也是没有办法的事情,不存在完全学历歧视的问题。你想,招聘一个人,大概要看100份简历,面试10个人,最后才能选中一个。但从工作量上来说就是一个很大的事情,只能硬性条件卡严格一点。

筛选过后,还要进行几轮的面试才能最终确定下来,岗位竞争非常激烈。但在经历了激烈的面试,开始入职后,却不乏有人发现岗位所需技能与面试所说差距过大,这是便有网友称:面试造火箭,工作拧螺丝。个人成就感难以满足,就萌生退意,递交辞呈了。

我相信在很多个领域里,有很多的人拿到的报酬已经远远超出了他们所从事工作的难度。有时候是因为他们是这个领域唯一知道怎么做这些事情的人,有时候是因为他们所在的公司无法从人才市场上招到更好的人,有时候是因为其他工程师故意过度设计,这样初级开发人员就需要花费很长时间才能理解它。无论如何,如果我们想要保持高薪和不被踢出局,就不能停止学习。加强知识的广度和深度,并学会如何将炒作从真正的突破性技术中过滤掉。

你为面试准备了些什么?

就算你觉得你所有的东西都准备好了,但也不是你拿着简历奔赴各个面试你就有机会

如果你为自己做了份详细的职业生涯规划,那你也应该为自己做一份详细的时间管理计划表。好的面试一定不是拿着简历跑出来的。

资历深的HR可以清楚的看出优秀和普通面试者的区别,当然了他们可能也会问这样的问题,“你觉得哪首歌最能体现你的职业道德?”“EXCEL有多少种算法公式?”“你洗澡的时候都在想什么”当然,这些问题也都是真实存在的。但是面试的重点一定不是寻找和你喜好相同,品味一致的人。

面试需要准备些什么,在这里我就不给予评价了,各大面经里面都有,大家去看看就好了的。但是大家在刷面试题的时候一定要注意,不要仅仅是去背答案,浅步的了解会让提高你面试的成功率。

总之,面试的本质一定不是一问一答,如果你还想要让自己在面试过程中魅力十足,那就带一份工作计划过去,这不仅是展现你的诚意,更让HR看到的是你的工作思路和专业实力。

接下来我给大家分享一下我的经历吧!

分享的多也没有什么用,就举例一次映像十分深刻的吧。一次很偶然的机会,被猎头推荐到阿里巴巴面试。简历被送到阿里后,会有几天简历审核期,这个过程会先从简历上筛选掉一部分人。简历审核通过后,会有负责技术面试的人对你进行一个电话面试,我当时接到电话感到很突然,因为简历都已经投递一周了,然后就匆匆跑到楼下进行电话面试。

面试问题还记得一些,一部分已经忘记了,为了防止再忘记,所以便写了出来。

1:你是如何理解Android操作系统的。
2:是否熟悉framework层,如果熟悉,那就对framework做个简介。
3:是否熟悉多线程,如果熟悉,介绍下线程。
4:对象锁和类锁是否会互相影响,会举例子让你判断锁的使用是否恰当,并说出原因。
5:是否熟悉Lopper架构,如果熟悉说下其原理,如果你自己实现,你会怎么实现。
6:自定义控件原理,及消息分发流程。
7:binder工作原理。
8:ActivityThread,Ams,Wms的工作原理。
9:如果工作中需要修改framework,你如何寻找切入点。

电话面试就这么多内容,自我感觉给回答打了75分,然后就是等通知;又隔了两天,阿里的HR打电话让我去指定地点面试,心里有点紧张,因为想给马云打工的人太多,竞争激烈程度可想而知(哈哈放平心态就好了,每个人都会有一个最好归宿)。

和技术负责人聊了聊,大概2小时左右。

主要聊的是frameworkbinder并发容器线程并发对象锁,再就是ndk使用的是否熟练,是否熟练hook技术等;还有你遇到过什么技术难点,是如何解决的。还有你读过什么开源工程,有什么感想,你是否考虑过做一个开源工程。最后就是设计一个多线程并发处理大数据量,然后刷新UI的架构。

最后结果是没能达到他们的期望,跟技术负责人聊的较开心,就留了联系方式。

面试总结:通过这次面试知道自己还有哪些不足,要继续努力,功夫用在平时很重要。

面试收获,注意看!!非常重要!!

一、提前准备面试所有问题的答案并重复练习

众所周知,面试就是由面试官向面试者提问,来了解面试者个人基本信息,考察面试者的工作态度、综合能力和专业能力。想要顺利通过面试,我们就得提前了解面试官经常会提问一些什么问题,这样才能针对性的进行回答。

二、重新回顾简历的工作经历和结果很重要

HR 们会通过询问你工作经历中的具体细节来判断这段经历的真实性以及你的专业程度。实习等工作经历是体现你专业能力的重要指标。

如果你无法详细地讲述工作经历的细节,HR就有可能会怀疑你伪造工作经历。或许离你上一次的工作经历已经过去了很久,你可能已经忘记了很多细节。但没关系,你可以通过下面这样来回答:

  • 你做了什么工作?

  • 这个工作的目的是什么?

  • 这个工作发生在什么时候?

  • 由谁参与了这个工作?

  • 在哪里开展的工作?你在什么情境下做的工作?

  • 你如何做这个工作?结果怎么样?

另外,一定要记住,最好使用具体的数据来证明自己的能力,数据往往比天花乱坠的形容词来得更令人信服。

三、针对岗位量身制作一份求职作品集

一份好的求职作品集在面试中可以说是必杀技。一份优秀的求职作品集,一方面说明你对这次面试重视程度,让 HR 体会到你的用心;另一方面,可以展现你出众的专业技能。

你可以根据公司发布的招聘信息,提取关键词。提取岗位招聘信息中的关键词,熟悉工作流程,然后亲手去执行几遍,向HR展示你的成果。当然,如果你并不了解这份工作,也可以请教业内人士,指导整个过程,帮助你完善作品集。

四、自我介绍时,从这 3 个方面入手

无论是什么样岗位的面试都不会离开自我介绍,自我介绍那该说什么?正确的逻辑应该是:先表达自己对这个行业、这个岗位的热爱,然后表现自己的经历与岗位相匹配,最后突出一下自己在工作中的优秀表现。

  • 热情:对行业、岗位和公司的热爱

  • 匹配:展现你与招聘岗位的匹配度

  • 出众:请将你的亮点展示出来

五、如何去回答综合能力题

在由专业HR面试的时候,最重要的环节其实是综合能力层面的提问。综合能力层面的问题一般是用来考察面试者的反应能力、沟通能力、学习能力、问题解决能力和领导能力等等。我们在回答的时候,尽量将你的思维过程讲明白,把结论讲清楚。

一般回答综合能力题的时候,你可以这样做:

  • 什么工作?

  • 你为什么要做这个工作?简单说明一下当时的背景

  • 怎么会出现这种情况?你如何解决了这个问题?

  • 你收获了什么经验?你得到了什么结论?

六、如何去回答专业能力题

在专业能力的考察中,面试官会挑选简历中感兴趣的条目进行提问,考察是否具备专业的工作经验。

那么应该如何回答这一类的问题呢?你可以这样去回答:

  • 情境指你所做的工作的背景信息,比如你要在简历中介绍一次社群运营的经历,那么就先简单说明你是因为转化率不高,所以需要做社群运营;

  • 任务指你工作的目的,就是你要达到的 KPI,或是要解决的问题,比如你运营这个社群是为了达到 3% 的转化率;

  • 行动指你为了完成任务而采取的行动,是指具体的行为,比如为了帮助学员学习更多知识,你在社群里进行了 5 次分享等;

  • 结果指你的行动最终达到的效果,比如你最终达到了 3% 的转化率、99% 的用户满意度等。

当面试者在描述一段工作经历时,如果以上四个方面不完整,面试官就需要就没有提及的方面进行提问。所以我们尽量按照这个模式去回答专业能力层面的问题。

七、从岗位、部门、企业三纬度向雇主提问最后的问题

当 HR 提问完上述的问题时,HR 总会询问你:“你还有什么问题要问吗?”不少人会选择回答说“没有”。但其实,这样会让 HR 认为你对岗位和公司没有多大兴趣。但是说“有”,我们该问什么呢?这个模块来告诉你答案——从岗位、部门、企业三大纬度提问。

八、没答好的问题可以通过邮件补充更好的回答

我想大家都有经历过吵架时突然被对方怼的哑口无言,回到家才想起应该怎么回怼的尴尬。虽然和面试官之间并非吵架,但总会有一两个问题没能回答好,之后才想到应该如何回答。不少人只会捶胸顿足,闷闷不乐:“要是那时候我这么回答就好了。”但其实,还有补救的办法——给 HR 发一封补充回答的邮件

请主动的询问 HR 的邮箱。然后针对没有回答好的答案,重新组织语言,通过邮件补充更好的答案当然,也可以在邮件中插入你的作品集或者一些补充材料会起到更好的效果。

总结

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。

阅读更多

2019最新Android面试题

记五月的一个Android面试经

关于Gradle, 搞定Groovy闭包这一篇就够了

面试官:Java后端开发三年,你不得不了解的JVM

我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!

喜欢就给个“在看” 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存