写在开头
大家好,我是阿森,一个普通二本出身,用两个月时间从外包跳到阿里的Android开发工程师。
在疫情肆虐与行业寒冬下,像我这样没有名校背景,也没有大厂出身的程序员求职非常困难。
但就是在这样的情况下,我缺逆流而上,在激烈的竞争中杀出重围,拿到了大厂的offer!
作为过来人,想给大家分享一些我在面试方面的经验,比如在投递简历时,可按照小公司—>大公司的顺序来。(我当时在一个多月的面试历程中,大概面了6家小公司,2家中型公司和2家大公司。一般我去面比较大的公司之前,我都会先面一两家小公司预热一下。)
一边熟悉流程,找好状态,一边收集面试素材和面试真题,沉淀自己,提高自己的核心竞争力。
以下是我在不同级别公司面试Android开发的一些经验与感触
一、小型公司(0-200人)
一般只要你收到这类型公司的面试邀请,只要你能把自己做过的项目架构,项目重难点说清楚,还有一些Android基础知识稍微扎实一点,然后你稍微准备一两个深一点的技术点。
什么GC机制、基本的热修复原理说个10分钟,offer妥妥的,个别公司可能会考一些简单的算法题和智力题,比如冒泡、查找等等。在深圳这类型的公司三年安卓的价位一般在12-15这个区间,个别有钱的可能上限可以到18,一般都是15左右。
(至于面试题太常规,这里我就不多说了,想要看面试题和详细答案的可以直接看我的其他文章,有详细的总结。)
二、中型公司(200-1000人)
这类公司我面的其实也不是很多,深圳面试那家BL,做外汇金融的
(ps:金融业务相关的公司都比较有钱,如果面试过程中面试官表现出对你有兴趣,聊薪资的时候你就可以大胆要)
我去面试的时候,公司应该是在扩招阶段,面试的人很多。问的问题比较广泛,Java、Android、算法、框架都有涉及到。
虽然问的都比较基础,但是我回答的都会比他问的更深入一点,也许是对我比较有好感,聊了半个多小时后,他叫我稍等一下,然后去叫来了他们的Team Leader。
然后问了一些事件分发和绘制流程的细节问题,还问了一些binder的原理性问题,我....基本上能答出来,然后leader就直接问我,期望薪资是多少(一般技术面试官直接问你这个问题了,也就代表这份offer已经稳了)
我说:22K。leader笑着说了句:好,说下周会给我答复。
后来也确实收到了答复,但是答复说22k给不了,18k能不能来入职,然后....就没有然后了。
三、大型公司(5000人以上)
1、腾讯
一面之后就没有音讯了,所以没有什么发言权……
面试问的跟其他小公司一样从基础问起,但面试官会一步一步往深的问,直到你答不出来为止,然后下一个点 ,框架、原理性问题和性能优化方面的工作经验是比较注重的。也不觉得是自己答的太烂,只能说面试者中优秀的人太多,自己不够亮眼吧。
2、上海哔哩哔哩(B站)
(1)B站一面
1.自我介绍
2.treemap、红黑树、完全平衡二叉树
3.快速排序和插入排序
4.个大致有序的数组如何排序,最快时间复杂度
5.如何自定义实现一个FlexLayout
6.RecyclerView的回收复用机制
7.如何实现RecyclerView的局部更新
8.说说对泛型的了解,Retrofit中的泛型是怎么解析的
9.说说对binder机制的了解
10.进程的状态,线程的状态,两者有区别吗
11.synchronized锁住对象的理解
12.Fragment replace生命周期变化
13.TCP和UDP有什么区别? 讲讲招手挥手过程
14.用过C++开发吗
15.Dalvik和Hotspot虚拟机了解吗?有什么区别?
(2)B站二面
1.说自己做过最满意的项目
2.性能优化你做过哪些工作
3.屏幕适配做过哪些工作
4.遇到过哪些坑(困难点),是怎么解决的
5.如果要你来开发B站的一个页面,哪一个页面可以很快入手
6.用过哪些框架?MVVM?Jetpack有入手吗?
7.用过哪些开源库
6.热修复、插件化都用过,遇到过哪些坑?可以讲讲原理吗
7.为什么想来B站,看哪种视频多一点,点赞多还是白嫖多
8.你觉得B站APP有哪些可以优化的地方
面试B站可以说纯粹是因为兴趣吧,大学时期就一直用B站的APP,学习娱乐都是非常不错的地方。因为要去杭州面阿里,所以在上海朋友那里玩两天,顺便面阿里之前试试B站预热一下,一面二面是紧接着面的,邀请我三面的时候,我已经离开上海去了杭州,就没有后文了。
3、蚂蚁金服
实话实说,蚂蚁金服是我内推面试的,之前投过简历,但是没有收到面试。
这次面试难度总的来说中等偏上,面试过程跟腾讯的差不多,也是从基础往深处问,问到你答不出来为止。还问了一些安全性问题,因为我前几年的工作也是做金融的,所以相对来说比较轻松些,也正因如此才来了蚂蚁金服。其他注重的就是架构技术,设计思想,还有第三方库的一些掌握使用这些。
技术面试过后,hr会跟你谈薪资,众所周知,阿里的福利待遇是很好的,月薪18k,也算不错的。
期间也内推面试过百度、华为、字节、美团等公司。但是百度和华为对学历都有较高的要求,所以并没有拿到面试机会。字节、美团倾向于招5年以上的技术专家,所以也没有成功。
写在最后
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
首先,技术面试是一个认识自己的过程,知道自己和外面世界的差距。
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导。
所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能拿到自己心仪的offer,进入理想的公司!
注:以上总结只是我个人的小小心得,并不全面,欢迎各位提问和补充!
Android面试题和答案已按照规范已整理完成,大家可在我的其他文章中查看,或评论/私信,一起交流技术、进阶提升~
#Android##安卓工程师##android##安卓工程师面经#