1-3年Android开发工程师面试经验分享
作者也是我的一位朋友,也是一份非常中肯的面经了。
本篇文章给大家分享一下笔者面试的一些感受和经验,因为笔者目前不到两年的工作经验,所以本篇文章定位为1-3年的Android开发工程师。当然本篇也适用于校招,但3年以上估计面试要求会更高一些。
笔者从前期准备到所有面试结束,花费了差不多3个月的时间。真可谓“面试造火箭,工作拧螺丝”,面试过程真的很累很辛苦。
笔者面了很多公司,最终拿下了知乎、网易和快手的offer,最后选择了知乎。
有人可能会问为什么不选择快手?的确快手的工资很高,福利待遇也很好。不过我觉得目前我还是应该更以技术成长为主。
在与知乎的面试官交流时,发现他们的技术相对来说更新颖一些,包括Kotlin、Flutter和Jetpack,都有一些实践,也都是我想学习的东西,这边的业务也更感兴趣一些。
另外,在谈offer时也被他们满满的诚意打动了。还有,建议大家工作未满3年时还是更以技术成长为主,不要把薪资放在首位。
好了,闲话少说,下面就来给大家带来满满的干货,教大家如何准备简历和准备面试。
1
简历
简历不用准备得太花哨,以前我总喜欢找一些漂亮的模板,后来经人指点后改成了用Markdown书写。面试官不在意你的简历有多好看,他更在意的是你的简历内容。
推荐一个开源项目给大家:
https://github.com/geekcompany/ResumeSample
这个项目里就有标准的Android程序员简历模板,大家参照着写就行,各种注意的东西都写的很清楚,这里我就不赘述了。
https://github.com/geekcompany/ResumeSample/blob/master/android.md
另外大家可以使用冷熊简历去书写简历,然后通过这个网站去生成PDF文件,这样的简历也比较好看。
http://cv.ftqq.com/#
2
面试
写完简历就可以投递了,一般可以找朋友内推或拉钩网、Boss直聘直接投递,这样比较快一些。
一般的面试安排都是3轮技术面和1轮HR面,部分公司可能会有增减。
2.1 技术面试
技术面试一般会先做个自我介绍,然后问问你做的项目,考察一下基础,之后再写个算法,最后可能问问你有什么想问的么。
2.1.1 自我介绍
自我介绍一般主要说一下你在哪就职,目前的工作情况,工作经验有多久,都做过哪些东西,尤其要突出一下你的亮点。这个大家提前准备一下就好。
2.1.2 项目经历
自我介绍完之后,面试官就会看你的工作经历,挑一些问你,或者直接让你介绍做过的最好的东西。
大家写到工作经历的东西,负责的部分一定要特别熟,经得起面试官的拷问,如果只是参与的,也要尽量弄熟,否则就不要往上写。
每个人的经历不同,做过的东西都不一样,所以我就不给大家整理了。
2.1.3 基础
问完项目,就该考察考察候选人的基础了,一般包括Android基础、Java基础、Android常用的开源框架、设计模式和网络基础等等。下面我来列举一下常见的考察点:
Java相关
Java基础
- HashMap1.7和1.8的实现原理
- final关键字,为什么匿名内部类使用局部引用要用final
Java多线程
-
线程池的使用和原理 -
锁机制:synchronized、Lock -
volatile关键字 -
ThreadLocal原理 -
JVM -
- Java内存结构
- Java垃圾回收机制
- Java类加载过程
Android相关
- Android基础
- Handler通信机制
- 跨进程通信方式
- Activity启动模式
- 内存优化、布局优化
- View的绘制流程
- Android事件分发机制
- 动画的分类及其原理
- MVC、MVP和MVVM模式
- SparseArray原理
Android开源框架
- Android网络库:Volley、OkHttp和Retrofit的使用、原理和对比
- Android图片库:Glide和Picasso的使用、原理和对比
- EventBus的使用和原理
- RxJava的使用和原理
- Router的使用和原理
网络基础
- HTTP相关:包括HTTP2.0、HTTPS等
- TCP相关:三次握手、四次挥手等
|