前言
这是 Android 架构群里一个朋友分享的阿里面试经历, 从简历到模拟面试再到面试都有讲解, 十分难得, 推荐给大家.
1. 开篇
我去面试阿里是今年 3 月份, 之前有三年开发经验.
俗话金三银四, 但是今年情况确实不太好, BAT 大量缩招, 就业形势严峻, 互联网寒冬消息蔓延.
最终我经过激烈角逐拼下了几个大厂 offer, 这份经历对我来说很重要, 觉得分享出来, 也许对你能有所借鉴.
2. 简历
去年底初, 阿里巴巴就开始了内推流程. 我也通过群里第一时间获得了消息, 开始持续关注.
在内推渠道刚开通后, 很多人都纷纷投了简历. 但我迟迟没有行动, 是我不上心吗, 是我不急吗, 还是我不想去阿里?
真实情况是我很上心, 我很急, 阿里巴巴是互联网人梦想工作之一.
但是我知道此事急不得, 绝不能打无准备之战. 因为我之前一直忙着做项目, 没有跳过槽, 找工作方面一点准备都没有, 现在冲上去肯定当炮灰.
如果这次面试面挂了, 很有可能进人才资源池, 半年或者一年不会再接受面试.
那这段时间我干什么了呢?
我在潜心写简历.
如何能拿到 offer? 首先得接到面试通知.
如何接到面试通知? 先得让你的简历从上万份简历中脱颖而出.
大厂是永远不缺简历的, 如何让你的简历得到注意是第一步, 也是最重要的一步.
刚开始我是这样写简历的. 所有的项目一拥而上, Java web 的 ,Android 的, C# 的, Python 的, 只要自己做过的都写上去.
为什么呢? 我觉得这样写能体现出我项目经验丰富.
但我找群里的 Alvin 老师帮我看了简历后, 眉头紧皱的问了我一个问题, 你准备找啥岗位? 我说 Android 啊, 这个做的项目最多, 也最熟.
Alvin 老师就问了,"那你找 Android 写其它乱七八糟的干啥, 写 C#,Python 项目能证明你 Android 厉害吗?"
我仔细想想, 其它项目我虽然我也做了, 但其实都浮于表面, 了解不深. 真问点什么问题, 我肯定答不上来.
于是我开始第一遍改简历.
首先把所有和 Android 无关的项目都删掉, 精挑细选后留下 3 个比较熟悉的. 并对这 3 个项目进行了丰富, 重点写了自己负责的功能点, 用到的技术以及最后的成果.
改完后简历明显简洁了很多, 让人一看我就知道我是应聘 Android 岗位的.
然后我第二次给 Alvin 老师看简历.
Alvin 老师看后问 "几个项目你都熟吗?".
我说 "当然熟, 我做的能不熟吗".
Alvin 老师说你这么自信, 那我问几个问题, 然后就开始问我写的技术点.
问 "你知道这个框架怎么用吗?".
这个我知道, 简要说了下.
然后他又问 "你知道这个框架的实现原理吗?".
我答不上来, 因为我做项目的时候只管用, 具体框架内部怎么实现我从来没关心过.
Alvin 老师说 "那你和别的面试者比有啥优点呢? 哪个做开发的不会拿来直接用, 怎么体现出你的专业性? 如果没有比别人好的长处, 公司凭什么在几万人中选你?"
说的让人无法反驳, 我接受了批评.
于是我再次回去改简历. 这次我把简历仔细过了一遍, 把不熟的技术点都去掉, 只留下自己能搞得懂的.
改完后我又去网上搜简历上提到的所有技术现原理, 并把一些好的分析文章全部打印出来, 装订成册, 放到桌子旁.
接下来就是反复看. 早上醒后看, 吃饭走时候看, 吃饭回来看, 总之有事看, 没事也看, 就这样慢慢记到了脑子里.
过了几天我又联系了 Alvin 老师, 技术问题顺利过关.
这次 Alvin 老师看我发给他的简历开始挑毛病. 提的都是 "你这句话不该这么写","这个词不行, 换个词更合适","这不应该逗号, 要用分号" 等等之类的问题.
Alvin 老师说 "你读了过那么多年书, 还研究生, 语文水平咋这么低", 说 "写简历要用词恰当, 逻辑清晰, 这样看的人才不会累".
于是我第三次改简历.
这次我把一些逻辑不通顺, 有歧义, 拗口的东西都改了一下. 争取让人看完后就明白, 而不用花时间去思考我到底想表达什么.
这次改完后我让 Alvin 老师阅览, 并让提意见. 就这样改了几次后总算过了这一关.
简历终于确定下来了.
3. 模拟面试
Alvin 老师说做个模拟面试, 他问我答.
问 "你这项目主要实现了什么功能? 为什么用这个技术, 和别的技术比有什么优势? 你考虑性能了吗, 是怎么优化的?" 等等之类的问题.
这些问题我有的答上来了, 有的一下想不到为什么.
Alvin 老师说你还不能上战场, 再去准备准备.
这次回去我把简历打印了出来. 然后一遍遍读简历, 每读一句话我都脑补面试官可能会问我什么问题? 再把设想问题的答案标注在这句话旁边. 到最后简历上密密麻麻的铺满了我的批注.
接下来就是吃饭, 睡觉, 看简历.
几天后我觉得准备的差不多了, 就找内推渠道投递了我的简历.
接下来的事情就是等待.
等待的期间我也没闲着. 网上搜索了一些面试题, 并把这习题都打印了出来. 没事就翻翻, 但是翻的过程中发现有些知识点很容易忘.
怎么办?
我买了本便签, 把一些容易遗忘的知识点都抄到便签上, 然后贴在桌子上, 墙上.
这样我每次抬头, 发呆, 无聊时候都会去看几眼便签, 一步步加深记忆.
日子一天天过, 等待的同时也在担心简历会不会被刷掉.
4. 面试
这一天终于来了.
一个阳光明媚的下午我正打算去吃晚饭, 电话响了起来. 我看一下, 是杭州号.
我知道这应该就是面试了. 于是等电话响了两秒后, 深吸一口气, 接通了电话.
对方介绍自己是阿里巴巴面试官, 负责 Android 面试, 并问我现在方便电话面试吗?
我顿了一下, 说 "现在有点事不方便, 请问明天可以吗?"
为什么我这样说呢? 是我关键时刻脑袋抽风了吗? 我不是一直在等这一天吗?
当然不是, 而是突如其来的电话打乱了我的正常节奏, 我心理上还没做好准备, 思维没法立马投入到面试状态中, 如果强行面试效果肯定会大打折扣. 当然我心里这么想, 但嘴上没这么说.
征得面试官同意后, 我挂了电话.
吃饭回来我就开始挨个复习自己整理的面试题, 知识点, 还有相关的专业书.
这一晚我没有睡觉, 争分夺秒看资料, 我知道我准备的时间多一点, 就会多一分面试通过的把握.
第二天下午 5 点, 电话又响了, 面试正式开始.
面试官听起来比较年轻, 具体的面试题记的不大清楚了. 主要是 Android 的一些知识点, 但是问的比较深, 问了一些源码的东西.
虽然难, 但大部分自己都准备了, 基本都能答上来. 当然也有不会的, 在说明自己不太懂后, 我就往自己熟悉的方面引, 整个流程下来基本没有冷场.
过程中, 当面试官知道我会点 Web 开发后, 还问了个 Spring 切面的东西. 虽然后台开发不是我强项, 但平时自己有所了解, 也答上来了. 这个感觉是个加分项, 在有深度的同时又有广度, 会比其他人更有优势.
整个面试过程大概 1 小时左右. 面完后自己感觉表现还行, 继续看资料, 准备第二次面试.
几天之后电话就来了, 电话声音明显老成了一些, 说自己是部门主管.
这次面试难度明显提高了很多, 主要问我 Java 知识点, 比如内存模型, 垃圾回收机制, 多线程, 同步锁, hashmap 源码实现, 还有数据库等.
中间也问了一些开放性问题, 比如项目方案怎么设计的, 为什么这么设计等问题.
全程没问我 Android 的东西. 好在平时 Java 等基础知识有所积累, 基本也答了上来.
所以同学们平时还是多积累, 基础打牢才能应对各种问题.
最后面试官还问我做 Java 开发几年了, 怎么知道的这么多?
我说做开发三年, 平时看书, 看博客看来的. 其实真实情况是: 大部分是从网上搜的面试题, 只不过准备期间临阵磨枪记下来了.
这次面试大概 40 多分钟.
过了一天就接收到三面通知了.
这次面试官说他是别的部门主管, 主要是帮忙跨部门核验一下.
问我平时一般上啥网站, 看啥博客, 看啥书, 用啥电脑, Linux 熟不熟等问题, 还去看了看我 GitHub.
全程基本没问我什么技术, 感觉主要是考察我对技术的热爱程度.
最后问的我都有点慌, 弱弱的问他为啥不问技术. 他说前面两个面试官评价挺好的就不问了, 然后我就放心的和他聊了几句. 这次面试大概 20 多分钟.
再过几天后就接到了 HR 面试电话.
HR 面试主要是考察一些个人素质, 比如工作中团体协作能力, 愿不愿意去阿里巴巴工作等问题.
有些人对 HR 面试就会放松警惕, 其实 HR 面试也很关键. 尤其据说阿里 HR 有一票否决权, 当然这个我也不确定情况真假.
HR 不关心你技术能力, 重点是考察你的三观与企业文化匹配度, 比如试探你愿不愿意加班, 愿不愿意接受挑战, 如何化解领导与下属冲突等问题.
这些回答其实也都是有一定技巧的, 没有标准答案, 看个人体会. 建议大家回答时要留心, 不要心里想啥说啥, 尽量说 HR 想听到的.
举个例子, HR 问你愿意加班不?
加班当然没人愿意, 但是你得说为了配合团队任务的按时完成愿意加班.
HR 面试大概是 30 多分钟.
5.offer
接下来就是等发 offer 了.
接下来腾讯, 百度等也纷纷宣布缩招, 互联网寒冬的说法一直挂在大家嘴巴
在忐忑的等待中, 4 月 25 号这一天终于收到了正式 offer 邮件, 阿里巴巴 Android 客户端开发.
最近在准备入职. 这个 offer 对于我而言意义重大, 让我对以后的发展更有了底气, 也更加从容.
很多时候与其抱怨大环境如何, 不如做好自己, 好好修炼内功. 这样不管是继续寒冬或者以后的中年危机, 我们都能有足够的能力去面对
6.BAT 面试专题整理 (含答案)
Android 架构学习交流群; 964557053. 群内免费提供 Android 进阶学习视频, 源码, 面试资料, 加群请备注简书.
(包括 java 基础与原理, 自定义控件, NDK, 架构设计, 混合式开发 (Flutter,Weex), 性能优化, 完整商业项目开发等)
来源: http://www.jianshu.com/p/e1e68d8646ac