阿里巴巴面经记

背景

今年三月份入职了「51信用卡」,公司的福利待遇在杭州也算得上是翘楚,但好景不长,没能挨过 6 个月的试用期,倒在了七月末的一波 CY,不过公司对试用期员工也有稍许补偿,对此很是感恩,同时还要感谢共事的小伙伴们给了我成长和发展的空间,和他们匆匆告别后便回家修养生息,准备我的求职之路。

更新简历

上了 Boss 直聘更新了一波自己的简历,关于简历模板,之前我就分享过,传送门在此~ 要是觉得不错一定要记得 star 哦,关于简历,在此强调一点,正常逻辑下面试官起初肯定是就着简历来问问题的,所以简历中的提及的技术点自己一定要全面掌握。

选取公司

一开始我也没急着投递简历,先打算好好看几天书,再去面试,不过 Boss 直聘上每天都有 HR、内推人员或者猎头主动联系我,感觉 Android 开发行情最近还不错的样子。关于如何选择公司,我分享下我的看法,如果你是 5 年以内的开发人员,那么尽量往大公司跳,大公司有完善的薪酬、制度体系,不用面临随时倒闭的风险,如果是 5 年以上的开发人员,给你个 404 吧,相信你自己可以定夺。所以,2016 届毕业的我肯定是要往更大的公司跳的,最终根据地理位置和我的意向筛选出的心仪公司屈指可数,包括「支付宝」、「菜鸟网络」、「二维火」和「涂鸦科技」,由于优先被内推了支付宝,而支付宝和菜鸟网络都是阿里系的公司,同一时间只能走一条面试线,所以这里便和菜鸟网络说了再见。

学习技术

  1. 在家主要看了 《深入理解 Java 虚拟机》和《Kotlin 实战》这两本,虽说和 Android 没有直接关系,但我相信这两部分还是非常重要的;
  2. 快速复读了一遍《Android 开发艺术探索》,这本我一直认为是 Android 的面试宝典,希望到现在还没有看过的年轻 Android 开发者们都可以过目一下;
  3. 阅读并分析 Android 源码和主流三方库的源码,技术要往深度发展,不要仅仅只停留在调用 API 的层面,要做到知其然并知其所以然。
  4. 分析并实践一些主流框架的原理,如插件化、自动化埋点、热修复、路由等。

面试经历

首先我拿了一个不太中意的先找找感觉,面试了「点我达」的「高级 Android 开发工程师」,时长两小时左右,由于职位主要是做业务相关的,我也表现出了并不是很喜欢,不出意外,最终把我拒了,不过这波面试也让我找到了感觉。

之后面试了「二维火」的「Android 架构师」,时长两小时左右,这个职位是我所擅长的,也是我喜欢的,面试之后 offer 给得很爽快,也是为我保留时间最久的 offer,一直保留到我收到支付宝的 offer 为止我才痛心婉拒,但最终我还是由于支付宝拒绝了它。在 offer 保质期方便,如果可以和 HR 协商,那么你应该想方设法把 offer 实效延长,毕竟双方都比较满意,我就是这么死皮赖脸把这个 offer 延长了好几周。

再就是面试「涂鸦科技」的「高级 Android 开发工程师」,从下午两点面到了六点多,由于其公司创始人是阿里系的,设计的面试流程几乎和阿里一致,一下午总共经历了五轮面试,两天后收到了其 offer,保质期一周,由于还在苦苦坚持面支付宝,和 HR 商量 offer 时效性也不给予改变,所以痛心婉拒。

最后就是面试开始最早结束最晚的「支付宝」的「高级 Android 开发工程师」,首先说下面试的整个时间线:

  • 2018/08/08: 内推
  • 2018/08/14: 一面(电话技术面)
  • 2018/08/21: 二面(现场技术面)
  • 2018/08/25: 三面(电话技术面:主管)
  • 2018/09/05: 四面(现场交叉面:HR 和技术总监)
  • 2018/09/20: 口头 offer
  • 2018/09/22: 体检
  • 2018/09/25: 正式 offer

其中最坑的一步就是四面完之后等 HRG 的消息,四面结束的时候现场说的是四面完一周内会给我答复,我回去后查询面试结果是通过状态,下一步就是 offer 审批阶段,我也就心想耐心等着便是了,可等了差不多两周一直都是 offer 审批阶段,中间也没有 HR 和我联系,我就觉得不太对劲了,在网上搜索了很多关于「阿里巴巴 offer 审批时长」的帖子,一度认为自己进了备胎组 ORZ,这时候我想我不能再傻傻等下去了,找了帮我内推的大哥说明了下情况,让他帮我催一下进度,心想要是不准备发 offer 的话就赶紧把我拒了吧,让我安安心心去「二维火」也成,好在两天后总算得到了 HRG 的口头 offer,她一上来便表示了歉意,理应上周给我答复的,但由于太忙耽搁了,这样我也不好意思说什么。幸好我催得还比较主动,不然再等个两周我都觉得有可能。

其面试内容一面、二面都以技术为主,三面以架构设计为主,四面技术总监就是泛泛而谈了,HR 是面除技术以外对你整个人的看法。这里我说个很巧的事情,一二四面的技术官都问了我「RecyclerView 的优化」问题。每位面试官都有一票否决的权利,面试结果可以在面试完之后通过电话查询,或者找内推人员帮你查询,在查询到面试结果之后方便安排自己后续的准备。

这么多面试下来围绕的主要还是以简历为主,所以简历中所写的技术自己一定要熟烂于心,面试官问的问题即便不会,也要说出自己的想法,有些时候面试官会根据你的想法来给你提点让你继续想下去,让面试官觉得你是一个热爱思考的人。技术和经验短时间内是无法瞬间提升的,需要我们平时注重积累、反思和总结,这方面可以通过平时多写博客或者笔记进行总结,有能力开源的就做开源,这些都可以是面试的敲门砖,如果你的 GitHub 如同下面我这样的,还怕会缺少机会吗,哈哈。

重点来了

上面提及的面试经历不是为了炫耀我多么厉害,而是我想把我的经验分享给大家,让大家在面试方面有所提高,我也会把我总结的 Android 面试技术点分享到 GitHub 上,方便大家整理和学习,由于个人时间精力能力有限,所以可能进度会有点慢,但我会像打造 AndroidUtilCode 一样坚持下去,也欢迎小伙伴们可以加入一起打造,有内推需要的也可以在里面查看,献上传送门 AndroidOfferKiller,觉得不错的一定要给个 star 哦,你的 star 是我对大的动力。