我是如何在一晚上拿到阿里巴巴 Android 研发 offer 的?,三年经验 Android 开发面经总结
然后我第二次给老师看简历。
老师看后问“几个项目你都熟吗?“。
我说“当然熟,我做的能不熟吗“。
老师说你这么自信,那我问几个问题,然后就开始问我写的技术点。
问“你知道这个框架怎么用吗?”。
这个我知道,简要说了下。
然后他又问“你知道这个框架的实现原理吗?”。
我答不上来,因为我做项目的时候只管用,具体框架内部怎么实现我从来没关心过。
老师说“那你和别的同学比有啥优点呢?哪个大学生不会拿来直接用,怎么体现出你的专业性?如果没有比别人好的长处,公司凭什么在几万大学生中选你?“
说的让人无法反驳,我接受了批评。
于是我再次回去改简历。这次我把简历仔细过了一遍,把不熟的技术点都去掉,只留下自己能搞得懂的。
改完后我又去网上搜简历上提到的所有技术的原理,并把一些好的分析文章全部打印出来,装订成册,放到桌子旁。
当时的资料我做了一个整理,有兴趣的朋友可以去看看:
接下来就是反复看。早上醒后看,吃饭走时候看,吃饭回来看,总之有事看,没事也看,就这样慢慢记到了脑子里。
过了几天我又去找老师,技术问题顺利过关。
这次老师拿起我的简历开始挑毛病。提的都是“你这句话不该这么写”,“这个词不行, 换个词更合适”,“这不应该逗号,要用分号”等等之类的问题。
老师说“你读了这么多年书,还研究生,语文水平咋这么低“,说“写简历要像写论文一样用词恰当,逻辑清晰,这样看的人才不会累“。
于是我第三次改简历。
这次我把一些逻辑不通顺,有歧义,拗口的东西都改了一下。争取让人看完后就明白,而不用花时间去思考我到底想表达什么。
这次改完后我让周围同学阅览,并让提意见。就这样改了几次后总算过了老师这一关。
简历终于确定下来了。
老师说做个模拟面试,他问我答。
问“你这项目主要实现了什么功能?为什么用这个技术,和别的技术比有什么优势?你考虑性能了吗,是怎么优化的?“等等之类的问题。
这些问题我有的答上来了,有的一下想不到为什么。
老师说你还不能上战场,再去准备准备。
这次回去我把简历打印了出来。然后一遍遍读简历,每读一句话我都脑补面试官可能会问我什么问题?再把设想问题的答案标注在这句话旁边。到最后简历上密密麻麻的铺满了我的批注。
接下来就是吃饭,睡觉,看简历。
几天后我觉得准备的差不多了,就找内推渠道投递了我的简历。
接下来的事情就是等待。
等待的期间我也没闲着。网上搜索了一些面试题,并把这习题都打印了出来。没事就翻翻,但是翻的过程中发现有些知识点很容易忘。
怎么办?
我买了本便签,把一些容易遗忘的知识点都抄到便签上,然后贴在桌子上、墙上。
这样我每次抬头、发呆、无聊时候都会去看几眼便签,一步步加深记忆。
日子一天天过,等待的同时也在担心简历会不会被刷掉。
这一天终于来了。
一个阳光明媚的下午我正打算去吃晚饭,电话响了起来。我看一下,是杭州号。
我知道这应该就是面试了。于是等电话响了两秒后,深吸一口气,接通了电话。
对方介绍自己是阿里巴巴面试官,负责 Android 面试,并问我现在方便电话面试吗?
我顿了一下,说“现在有点事不方便,请问明天可以吗?”
为什么我这样说呢?是我***脑袋抽风了吗?我不是一直在等这一天吗?
当然不是,而是突如其来的电话打乱了我的正常节奏,我心理上还没做好准备,思维没法立马投入到面试状态中,如果强行面试效果肯定会大打折扣。当然我心里这么想,但嘴上没这么说。
征得面试官同意后,我挂了电话。
吃饭回来我就开始挨个复习自己整理的面试题、知识点、还有相关的专业书。
这一晚我没有睡觉,争分夺秒看资料,我知道我准备的时间多一点,就会多一分面试通过的把握。
第二天下午 5 点,电话又响了,面试正式开始。
面试官听起来比较年轻,具体的面试题记的不清楚了。主要是 Android 的一些知识点,但是问的比较深,问了一些源码的东西。
虽然难,但大部分自己都准备了,基本都能答上来。当然也有不会的,在说明自己不太懂后,我就往自己熟悉的方面引,整个流程下来基本没有冷场。
过程中,当面试官知道我会点 web 开发后,还问了个 Spring 切面的东西。虽然后台开发不是我强项,但平时自己有所了解,也答上来了。这个感觉是个加分项,在有深度的同时又有广度,会比其他人更有优势。
整个面试过程大概 1 小时左右。面完后自己感觉表现还行,继续看资料,准备第二次面试。
几天之后电话就来了,电话声音明显老成了一些,说自己是部门主管。
这次面试难度明显提高了很多,主要问我 Java 知识点,比如内存模型、垃圾回收机制、多线程、同步锁、hashmap 源码实现,还有数据库等。
中间也问了一些开放性问题,比如项目方案怎么设计的,为什么这么设计等问题。
全程没问我 Android 的东西。好在平时 Java 等基础知识有所积累,基本也答了上来。
所以同学们平时还是多积累,基础打牢才能应对各种问题。
最后面试官还问我做 Java 开发几年了,怎么知道的这么多?
我说平时看书,看博客看来的。其实真实情况是:大部分是从网上搜的面试题,只不过准备期间临阵磨枪记下来了。
这次面试大概 40 多分钟。
过了一天就接收到三面通知了。
这次面试官说他是别的部门主管,主要是帮忙跨部门核验一下。
问我平时一般上啥网站,看啥博客,看啥书,用啥电脑,Linux 熟不熟等问题,还去看了看我 Github。
全程基本没问我什么技术,感觉主要是考察我对技术的热爱程度。
最后问的我都有点慌,弱弱的问他为啥不问技术。他说前面两个面试官评价挺好的就不问了,然后我就放心的和他聊了几句。这次面试大概 20 多分钟。
评论