金九银十面经分享,1-3 年的 Android 开发工程师看过来(已拿 offer)(1)
我这位朋友从前期准备到所有面试结束,花费了差不多 3 个月的时间。真可谓“面试造火箭,工作拧螺丝”,面试过程真的很累很辛苦。
他面了很多公司,最终拿下了知乎、网易和快手的 offer,最后选择了知乎。有人可能会问为什么不选择快手?的确快手的工资很高,福利待遇也很好。不过他觉得目前我还是应该更以技术成长为主。在与知乎的面试官交流时,发现他们的技术相对来说更新颖一些,包括Kotlin
、Flutter
和Jetpack
,都有一些实践,也都是他想学习的东西,这边的业务也更感兴趣一些。另外,在谈 offer 时也
被他们满满的诚意打动了。还有,建议大家工作未满 3 年时还是更以技术成长为主,不要把薪资放在首位。
好了,闲话少说,下面我就来给大家带来满满的干货,教大家如何准备简历和准备面试。
1. 简历
简历不用准备得太花哨,以前我总喜欢找一些漂亮的模板,后来经人指点后改成了用 Markdown 书写。面试官不在意你的简历有多好看,他更在意的是你的简历内容。
###1)标题,要点题首先既然是投递简历,无论你是海投还是定投,对于企业 hr 来说流程都是一样的对吗?除非你是企业之子。所以简历就和写文章一样,标题取得好,就成功一半了,先让大家看到你,不然你是个博士也无人问津啊是不。所以要让 hr 认识你,首先你得把自己的门面给装好了。
###2)个人照片打开界面,第一眼看到了初中、高中时候的艺术照,这换谁顶得住啊,除非你是艺术系。所以咱还得正儿八经的弄一张证件照上来,这是职场,不是戏场。
###3)个人介绍,要突出个人成绩头像下面就是你的个人介绍,所以介绍不要像胡彦斌的「你要的全拿走」一样,1 秒 10 个字,太多了。还有一些人喜欢把自己的家底都拖出来,你要么是开矿了,不然往上写干嘛呢是不,就算你有空,其实 hr 也不会招你啊,除非这家公司是挖矿公司,找你做代言人。
所以大家了解了吗?个人介绍里应该突出什么?要把自己的主要成就写出来,参加过什么大型项目的研发,带领过多少人的团队完成了怎么样空前的挑战等等。
这是为了让 hr 对你有一个直观的感受,大家要明白一件事情,hr 不懂技术,就算懂,那也是从技术那了解到的,所以他们觉得可以的,一定是被一些成就吸引到了。
###4)项目经验,要真实,可以锦上添花接下来就是项目经验和工作经验了,一般做技术的,可以把项目经验放在前面,项目经验里你也不要过分夸大自己的职责和事项,我遇到太多了那种喜欢把整个项目都写成自己的,恨不得这单子都是自己打出来的人。
做技术的一定要记住一句话:技术一吹就破。几斤几两都是实打实的,对面也不是傻子,而且做技术的有个通病,喜欢用技术碾压对面,哪怕自己不懂,但现在我是先手,我不把你问出翔啊。
那么项目经验尽量言简意赅,突出重点,自己做了哪些事情,实现了哪些技术难点。一条一条的,条理清晰。
按照时间顺序,倒叙书写,越是靠现在的,越要详细,以前的可以 2-3 条带过即可。
###5)工作经历,正常操作即可工作经历的话,按照你的实际情况来,和项目经验的区别是,工作经验突出的是你在公司的职位职能,影响力。这些比较大陆化,说简单点,直接搜个岗位 JD 贴过来都可以。
###6)技能评估,要低调这个比较搞笑了,很多人都说作为技术的人千万不要写精通,那没人写精通岂不是人人都是掌握、熟悉了?
所以我的看法是:嗯,千万不要写精通……不然会被问到死的。可能你写了 python 精通,面试官本来准备好的面试题都扔了,直接问你,cython 的全局锁是怎么实现的,如果要你改造,你会从哪几个地方入手。
这里推荐一个开源项目给大家:https://github.com/geekcompany/ResumeSample
这个项目里就有标准的Android程序员简历模板,大家参照着写就行,各种注意的东西都写的很清楚,这里我就不赘述了。
另外大家可以使用冷熊简历去书写简历,然后通过这个网站去生成 PDF 文件,这样的简历也比较好看。
2. 面试
写完简历就可以投递了,一般可以找朋友内推或拉钩网、Boss 直聘直接投递,这样比较快一些。
一般的面试安排都是 3 轮技术面和 1 轮 HR 面,部分公司可能会有增减。
2.1 技术面试
技术面试一般会先做个自我介绍,然后问问你做的项目,考察一下基础,之后再写个算法,最后可能问问你有什么想问的么。
2.1.1 自我介绍
自我介绍一般主要说一下你在哪就职,目前的工作情况,工作经验有多久,都做过哪些东西,尤其要突出一下你的亮点。这个大家提前准备一下就好。
2.1.2 项目经历
自我介绍完之后,面试官就会看你的工作经历,挑一些问你,或者直接让你介绍做过的最好的东西。
大家写到工作经历的东西,负责的部分一定要特别熟,经得起面试官的拷问,如果只是参与的,也要尽量弄熟,否则就不要往上写。
每个人的经历不同,做过的东西都不一样,所以我就不给大家整理了。
2.1.3 基础
问完项目,就该考察考察候选人的基础了,一般包括 Android 基础、Java 基础、Android 常用的开源框架、设计模式和网络基础等等。下面我来列举一下常见的考察点:
Java 相关
Java 基础
HashMap
1.7 和 1.8 的实现原理final
关键字,为什么匿名内部类使用局部引用要用 finalJava 多线程
线程池的使用和原理
锁机制:
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 相关:三次握手、四次挥手等
设计模式
单例模式
代理模式:静态代理和动态代理
观察者模式
这些基础知识一方面大家可以直接阅读源码,一方面可以去网上搜索相关文章去学习,或者收集这部分的视频观看,和文章一起搭配更有效果些,边看边学。以下是我自己收集的一些关于**【数据结构算法专题学习视频】,有需要的伙伴可以【文末】**获取免费领方式~
另外,腾讯面试真的很喜欢问原理,而且问得比较细,可能我面的岗位要求比较资深,一面就挂了。。。以后还是要加强对原理的研究。
2.1.4 算法
问完基础就可以写算法了,通过我的面试经历来看,算法的难度不是很大,基本刷过《剑指 Offer》就足以应对面试了。
大家刷《剑指 Offer》的时候,每道题一定要自己先做一遍,这些题基本牛客网上都有,大家可以直接在那上面敲代码。做完之后看看书上的解题思路,如果发现自己的方法不是很好,可以按照书上的思路自己实现一遍,再和书上的代码对比一下,这样印象才深刻。
记住,我们刷《剑指 Offer》并不是去记每道题,而是记每种解题的思路,自己有个总结,这样以后在遇到没见过的题目时,才会应对自如。
评论