33

1-3年Android开发工程师面试经验分享 - 简书

 4 years ago
source link: https://www.jianshu.com/p/32c012e79a2a?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1-3年Android开发工程师面试经验分享

42019.08.17 19:06:16字数 2,321阅读 7,685

本篇文章给大家分享一下笔者面试的一些感受和经验,因为笔者目前不到两年的工作经验,所以本篇文章定位为1-3年的Android开发工程师。当然本篇也适用于校招,但3年以上估计面试要求会更高一些。

笔者从前期准备到所有面试结束,花费了差不多3个月的时间。真可谓“面试造火箭,工作拧螺丝”,面试过程真的很累很辛苦。

笔者面了很多公司,最终拿下了知乎、网易和快手的offer,最后选择了知乎。有人可能会问为什么不选择快手?的确快手的工资很高,福利待遇也很好。不过我觉得目前我还是应该更以技术成长为主。在与知乎的面试官交流时,发现他们的技术相对来说更新颖一些,包括KotlinFlutterJetpack,都有一些实践,也都是我想学习的东西,这边的业务也更感兴趣一些。另外,在谈offer时也被他们满满的诚意打动了。还有,建议大家工作未满3年时还是更以技术成长为主,不要把薪资放在首位。

好了,闲话少说,下面就来给大家带来满满的干货,教大家如何准备简历和准备面试。

简历不用准备得太花哨,以前我总喜欢找一些漂亮的模板,后来经人指点后改成了用Markdown书写。面试官不在意你的简历有多好看,他更在意的是你的简历内容。

推荐一个开源项目给大家:https://github.com/geekcompany/ResumeSample

这个项目里就有标准的Android程序员简历模板,大家参照着写就行,各种注意的东西都写的很清楚,这里我就不赘述了。

另外大家可以使用冷熊简历去书写简历,然后通过这个网站去生成PDF文件,这样的简历也比较好看。

写完简历就可以投递了,一般可以找朋友内推或拉钩网、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多线程

    • 线程池的使用和原理
    • 锁机制:synchronizedLock
    • volatile关键字
    • ThreadLocal原理
  • JVM

    • Java内存结构
    • Java垃圾回收机制
    • Java类加载过程

Android相关

  • Android基础

    • Handler通信机制
    • 跨进程通信方式
    • Activity启动模式
    • 内存优化、布局优化
    • View的绘制流程
    • Android事件分发机制
    • 动画的分类及其原理
    • MVC、MVP和MVVM模式
    • SparseArray原理
  • Android开源框架

    • Android网络库:VolleyOkHttpRetrofit的使用、原理和对比
    • Android图片库:GlidePicasso的使用、原理和对比
    • EventBus的使用和原理
    • RxJava的使用和原理
    • Router的使用和原理
  • HTTP相关:包括HTTP2.0、HTTPS等
  • TCP相关:三次握手、四次挥手等
  • 代理模式:静态代理和动态代理
  • 观察者模式

这些基础知识一方面大家可以直接阅读源码,一方面可以去网上搜索相关文章去学习,我这里也做了一些整理,参看专题Android开发者必会,遇到好的文章我还会收集,欢迎大家关注。

在这个专题里我收集了大部分Android开发者要会的东西,大部分文章来自于Carson_Ho,真的很感谢这位大佬,他的文章逻辑很清楚,可以学到很多东西,真的给我带来很大帮助。

另外,腾讯面试真的很喜欢问原理,而且问得比较细,可能我面的岗位要求比较资深,一面就挂了。。。以后还是要加强对原理的研究。

2.1.4 算法

问完基础就可以写算法了,通过我的面试经历来看,算法的难度不是很大,基本刷过《剑指Offer》就足以应对面试了。

大家刷《剑指Offer》的时候,每道题一定要自己先做一遍,这些题基本牛客网上都有,大家可以直接在那上面敲代码。做完之后看看书上的解题思路,如果发现自己的方法不是很好,可以按照书上的思路自己实现一遍,再和书上的代码对比一下,这样印象才深刻。

记住,我们刷《剑指Offer》并不是去记每道题,而是记每种解题的思路,自己有个总结,这样以后在遇到没见过的题目时,才会应对自如。

我在准备的过程中已经把《剑指Offer》所有的题目都用Java实现了一遍,大家可以参考剑指Offer Java版官方题解汇总

2.1.5 其它

除了上面以外,面试官也可能会问问跳槽原因,我一般还是以个人技术成长的角度回答的,具体我就不详述了。

最后,面试官还可能会问问你有什么要问的,一般我们要问问技术、项目相关的东西,比如你们使用的技术栈是怎样的、团队的规模怎么样、我来了之后会做些什么工作等等。

2.2 HR面

如果你能进到HR面,那么恭喜你拿offer就很有希望了。

一般HR会问你生活的方方面面,大家如实回答就好。当HR问我们对薪资的诉求时,我一般还是以现公司总包的基础上涨30%要求薪资,这样起码也会给你到20%-30%。当然有些公司比较例外,比如快手可能给的会高一些。

最后HR会再问问你有什么要问的,这时候可以问问公司的薪资待遇等情况,比如有多少年终奖、评级制度怎样的、多久晋升和普调一次、普调的幅度多少、有哪些福利待遇、有多少年假等等。

另外,一定要问问后续还有什么流程,是否要做背调、什么时候做背调。之前在脉脉上看到说有的公司早早做了背调,导致候选人还没提离职,同事就全知道了。也是好可怕。所以大家一定要求HR在你提完离职之后再做背调。

写到这里好不容易啊!如果大家觉得文章还不错,麻烦点个赞呗!后续我还会更新更多优质的文章,分享一些干货给大家,希望大家关注一下啦~

除了简书以外,大家还可以通过以下方式找到我哦:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK