Android实习生面试记录-蘑菇街、网易等

本来准备面一次记录一次,但是发现还没面完根本没心思整理这些,刚刚结束了蘑菇街HR面,正好闲下来做个总结。实习生招聘的准备,可以说我在打算转工程开发的时候就开始了,开始学习Android的时候就在想简历上应该写一些什么。去年五月份开始学习Android,我在那个时候就计算着距离实习生招聘的时间不到一年,要从一个完全没有接触过Android的小白达到符合各大公司实习生招聘的要求时间紧任务重。自那起,翘过课,熬过夜。花了两个多月时间把基本的东西过一遍,写了一些Demo,然后着手从零开始写一个完整的App。学习基础东西的同时也适当进行深入挖掘,尝试阅读源代码。在上学期期末的时候手上就一个拿的出手的项目,一页简历都填不满>_<计划寒假和KevinWu合作开发一个项目并复习基础知识。一个寒假过去,项目是完成的差不多,但是说好的复习基础知识却还是没有开始。

  临近开学,写了个简历,最先投了一份到”网易有道”(至今没有消息)。后联系一学长(后面用P指代)到时帮忙内推阿里,P学长在这段时间给予了极大的帮助。建议我先投一波小公司,但是绝大部分都没有任何消息,有通知面试的基本要求现场面而不是电话。开学后收到南昌一家公司的面试通知,于是跑过去面。公司规模很小,Android这块是接外包做的,只有一个开发。到了后先到一个会议室给我我一份卷子做,昨晚后交给该公司唯一的Android开发(下面简称A)看。之后A过来问了几个问题,但是都很简单却又不算传统意义上的”基础知识”,另外他没有听过Material
Design让我感到惊讶。我说自己熟悉xxx,看过xxx源码,他说你熟悉的我问干嘛…..然后就是说你写的这些东西没有用,开发中根本用不到 再就是问我数据库之类的用的什么库,我说都是自己封装的原生Api 后来我问他做了多久Android,答一年+,不过之前培训了两年。另外就是问我为什么不去外面大企业找、期望的实习公资和正式工资等。工资这块我都说的相对(南昌)较高,就这样结束第一次面试,回去后也就不了了之。
  接下来内推了阿里&腾讯,有点打击人,阿里第二天简历直接被刷,腾讯没有任何消息!这段各种反思,想想自己简历是不是不行---直到一天中午午睡的时候蘑菇街面试官给我打电话,第一次电话面也没有什么经验,在语言组织答题上都不好。一共四十分钟+,前边的过程都较为被动。面试官是照着简历问的,问题涉及到Java、Android、算法(其实就一个排序)和项目。当时的状况就是不清楚的点直接懵逼也不知道说相关的东西,熟悉的点表达又不够清晰。好在面试官人很好,各种表示理解,最后还谈了平时逛的社区,学习方法之类的东西。最后评价是”看得出来是一个喜欢技术的”,也不知道是安慰我还是真实看法-=-
面完后心里没底。晚上,P学长专门打电话给我分析了这次面试,教我怎么面试,怎么回答问题,面试官看中的点 等,聊天近两个小时,收货颇丰。之后接到杭州一家公司(下文用H指代)HR电话,通知面试,了解了我不在杭州后就直接给我安排了下午电话面试。因为简历是海投的,于是去他们网站看了下H公司到底是做什么的,公司规模不大但是看起来比之前南昌那家靠谱。面试官一开始就叫我说下学习经历,这个问题很喜欢~我主要围绕为什么学,怎么学,学了什么来说,这跟我蘑菇街一面面试官叫我自我介绍我说几句就没话说了好太多。之后面试官主要是围绕我简历问的,我的回答模式基本是:是什么,怎么用,项目中那里用到,为什么用,有没有什么坏处&之后有什么改进/替代&使用中需要注意的点。说完这些之后还会跟面试官说我还熟悉哪些东西,我处于相对较为主动的状态,有时候面试官正准备深入问的时候我就已经将他准备问的说了。一共面了四十分钟左右,面试官较为满意,说晚上给我一个测试(就是实现一个UI),后来花点时间写完发过去了。这次面试算是一个转折点,从之前的被动转为主动,面试官H问的问题并不比蘑菇街一面面试官问的浅,但是自己的表达方式和策略不同导致了不同的效果。
  H公司面完后就收到蘑菇街HR电话预约二面,蘑菇街这方面做的不错,面试完后一两天之后就会给反馈预约下一轮面试,面试的时间是周二或周四,这个看个人时间。二面前有好几天的准备时间,我整理了我熟悉的东西:想好面试的时候怎样表述,关键突出哪些点,如果面试官没有问到自己可以从哪些点引入。就这样等到二面,面试官没有按时联系(后面几次面试都如此),为此我还打电话给HR确认下了时间。不过这次面试和之前的风格不一样,面试官加起来只问了十几分钟的样子,后面都是我问他。这位面试官比较关注基础,甚至问了Java有哪些基本数据类型。他还说只问我熟悉的东西,这样给了我很大的发挥空间。后面他还问了我怎么代码实习质因数分解,当时懵逼了,没反应过来,在他提示用小学生思维后我给了一个可行解。这次总共是聊了25分钟,第二天就收到HR电话预约三面(交叉面),要求视频。心想视频面很可能被抓写代码,三面时间就拖后了一点。
  二面后收到了网易笔试通过的消息(网易内推也得笔试…),不过网易要求现场面,更坑爹的是和蘑菇街三面时间冲突!!!联系网易的客服,说必须在那一天面,两轮技术+HR面,可以迟到。当时想着蘑菇街已经过了两面,网易要去杭州&心里也没有底,可能两场面试都被影响发挥不好,打算放弃网易的。但是在P学长还是建议我珍惜这个机会(这里应有感谢),我就计划着上午去蹭网易面试(网易通知2点40,不过上午也有面试,蘑菇街是一点半)。面试前一晚到了杭州,在阿里转了一圈回到酒店,晚上步行15分钟到网易探了路。第二天十点左右到网易和现场工作人员说明了情况,说尽量给我安排在上午不过并不能保证。上午来面试的人很多,那天就只面Android的。里边好多面试官,一个大房间里边一对一的面。十一点多的时候前台通知说上午的场排不进去了,只能是下午来,给我推迟到三点半。与此同时我联系了蘑菇街的HR,看能不能给我安排次日的现场面,但是一直没有给答复。只好先做好视频面的准备,跑到阿里找P学长吃了个饭,带到大厅找张桌子测试了下网络(阿里的公共Wifi速度很赞),一切正常就等待着蘑菇街的视频面。和之前一样,到了面试时间面试官却迟迟没有联系我(因为网易还有面试所以略急),期间打了两个电话给HR,最后是两点二十左右开始面的。面我的面试官是做后端的(开始居然没看出来,只是面试过程中我提示几次Android的一些点他没有问有点郁闷),他问了我JVM的垃圾回收机制,我就连带把Java内存区域、对象死亡判定算法、垃圾回收算法 等,另外追问的一个问题也答上了。下面就是项目有什么难点、印象深刻的地方等问题。一共面了四十分钟左右,其中有一个后端的问题没有答上:朋友圈怎么设计的 [猜想是要答权限控制之类的,但是我这方面没有知识储备],好在面试官说这是后端问题没答上没事。这次面试我一开始就主动要求自我介绍,其实就是想给面试官说下自己的学习经历&学习方法&学习热情&个人规划。
  在阿里面完蘑菇街后赶紧跑到隔壁网易,在前台问了下时间刚刚好,我前边还有一个人。找个地方坐着,心里还是很平静的,刚面蘑菇街状态都很好。等了半个小时左右接到网易HR电话问我在不在现场… 好的吧,我居然没注意已经到我了。赶紧进去找面试官,一看我面试的那桌没人,正准备坐下就来了以为三四十岁左右的面试官问我怎么来这么晚–尴尬ing… 递上一份简历就准备自我介绍一直谈到项目,面试官要求直接把App给他看。开始他关注的是我App兼容的版本,还问我MIUI有没有刷过之类的。这次应用问的比较多,后来问我有没有看过一些开源库,我只说了了EventBus&了解Binder机制和Activity启动过程。(其实我还看过Fresco,Picasso,Volley,Okhttp等开源库,不过里边有个别点还没完全搞明白暂时就没说,准备追问的时候抖出来).我问要不要讲下EventBus,直接被否,估计没面试官觉得太简单。然后问我Binder,我说主要是看Framework层的,JNI的还没深入分析,面试官直接说JNI没看就不用说了,上面就是对下面的封装…
接下来就是谈Activity的启动过程,我大致说了下。其他的问题就较为琐碎:JVM、多线程、锁、动画、View事件分发、View树的绘制、数据库(网络问了安全证书表示没用过就没有追问)等,这一轮下来好多点都被问了遍,看起来这位面试官是”老司机”[~_~]。其中关于锁,我谈到了volatile。这个关键字可以在某些场景下当锁用,这点我之前向蘑菇街二面面试官确认过,然后在三面的时候也和面试官谈到这个问题。不过三面面试官问我为什么,我说这也是我困惑的点,不过我猜想是内存屏障或是禁止指令重排序,但是我无法验证,面试官跟我说是指令重排。然后这次网易一面我又说了这个,把场景原因都说了。这次面试,面试官评价不错。最后是要求手写个单例,我大概示意了下,用到的方法我是了解的”最优写法”(不用加锁可以保证多线程安全&使用时才创建)。就这样网易一轮完了,刚出门到大厅就被通知二面,遂折返找二面面试官。(二面面试官就在一面后两桌,我都怀疑我一面的时候他有没有在边上看) 二面面试官较一面面试官年轻,看到我就笑,莫名喜感好像我之前见过的一位演员。坐定后就和自我介绍,问的问题有一些是和一面差不多的。不过这次二面面试官给我机会让我谈了对Binder的理解,这个是我之前有整理过思路的,采用类比的方法来说明。就像一面面试官问我数据库视图,我类比到了Android的Content
Provider,秒懂,效果好。后面还简介问我时间拦截,一起探讨夜间模式的几种解决方案,问网易是怎么做的(这个我早就想问了,这次真的是面对面问开发)。总体来说,这次面试轻松愉快,就是做一起聊技术,全程一直笑lol。最后面试官的评价是:”你是我今天见过最活跃的一个”&”说话很快”(这个主要是因为这次面试思路清晰…),对此我的解释是”不能让面试官来推着我走,面试者应该主动展现自己”,这点他表示赞同。问完技术,面试官表示很不错没有问题,这是第一次得到面试官这么肯定的评价,心里就有底了。出来后到前台确认进入了HR三面,等了半个多小时开始HR面。HR面和之前想的不大一样,开始自我介绍的时候我说之前都是从技术角度的,这次HR面换个角度,HR表示都一样没有问题。HR面了半个小时:他也是根据自己简历上写的一些东西来问,关注点的主要是处理/看待事情的方法 我每答一个问题HR就记一点,有点专业的样子=-=.
  从网易面试回来第二天就接到蘑菇街HR的电话说三面通过并预约今天的HR面(本来是视频面,不过我是Linux不方便就改成电话)。蘑菇街HR之前给我的印象最深的是很有礼貌,问的问题和网易HR有相似点,同时也宣传了一波公司的价值观。相比之前的技术面,HR面就显得轻松多了。不过蘑菇街HR面之后还有一轮面,需要到杭州终面,不得不说蘑菇街面试真是多…
上面写的更多的是面试的一个过程,很细的面试的点并没有写,这个可以到牛客这样的地方翻翻面经,基本差不多。不过不管怎样,首先简历上写的东西一定要熟悉。
 -------
|       |
| 预留    |  感触经验什么的等秋招完了再说吧,现在才面几场谈不上。
|       |  1.自身能力强的同时还要善于表达自己
 -------   2.面试失败也许是还不够牛逼,但是并不影响你能力不错

GitHub:https://github.com/MummyDing/

Contents
|