历时两个月,一个三非渣本的Android校招秋招之路,最终斩获5个Offer(面试技巧+复习体系)

前言

最近主要很多大学生都毕业在忙校招实习中,所以这篇文章就来和大家一起分享我的之前经历的校招之路。

我自己也只是一个非科班出身,同时学校也是非985非211的普通一本学校,这也就是标题中讲到的“三非”,这篇文章主要是记录一下我的校招秋招历程,在文章中我也会分享自己准备秋招的一些经验,希翼对大家有所帮助。话不多说让大家开始吧!

面试总结

体验最好的面试————CVTE

CVTE是我第一个去面试的企业,三轮面试下来总共是两天,不过两天不连续,这两天的面试都是到地铁站附近等候企业的班车过来,然后坐班车前往企业面试,一面二面安排在同一天,从等待面试的人数就可以看出CVTE很受欢迎。当天我是早上11点到的企业,然后工作人员安排大家到影片院稍作休息,等候面试通知,从企业的基础设施以及环境就可以看出CVTE还是挺有钱的,工作人员也十分的热情,整个面试流程也是尽然有序。

CVTE一面

一面的时候是两个面试官同时面试我,一个问问题的时候另一个做记录,另外一个问问题再由另一个做记录,这轮面试总共40分钟,面完之后感觉快要虚脱,因为面试节奏很快,如果脑袋不够用就可能当场gg,不过问的问题都是很基础的常识,只要基础够扎实基本没问题。下面是我被问到的一些问题:

  • 从ActivityA跳转到ActivityB的生命周期调用顺序?
  • Activity的四种启动方式?
  • Android多线程的通信方式有什么?做简要先容。
  • Android中的消息机制?
  • HandlerThread的原理?
  • Window的工作原理和作用?
  • 自定义View的流程以及需要注意哪些地方?
  • 自定义View的时候如何实现wrap_content属性?
  • View事件分发机制?
  • 滑动冲突的解决方法有哪些?子View如何通知父View去* 拦截某事件?
  • Volley原理?
  • retrofit原理?
  • JAVA的四种元注解是什么?主要作用有哪些?
  • okhttp原理?
  • 老年代与新生代的区别?
  • JVM中的复制算法是什么?
  • java加锁机制有哪些方法?原理分别是什么?
  • wait()和sleep()的区别是什么?
  • synchronized关键字的四种用法和区别?
  • onCopyWriteArrayList的原理?
  • Hashmap实现原理?
  • concurrentHashmap原理?
  • 反射机制原理?
  • 动态代理原理?
  • 单例模式有哪些实现方法?
  • 手写算法题————字符串反转的有哪些方法?

一面大概历时40分钟,时间也来到12点多,结束之后就等待二面,因为怕面试官通知面试所以就没去吃午饭,话说CVTE的零食和饭堂都是挺不错的,可惜没有去尝一下。差不多一点多的时候就是二面。

CVTE二面

二面应该是总监面,问题主要偏向项目,有一些问题已经忘记了,只能列出一些还记得的:

  • 做了哪些项目?详细说一下项目。
  • 讲一下RXJava原理;subscribeOn()与observeOn()哪一个方法多次切换线程只有第一次有效?为什么?
  • Volley原理?
  • Retrofit原理?
  • Volley与Retrofit缓存机制有哪些区别?
  • 简单工厂,工厂方法,抽象工厂三种设计模式的优缺点?
  • 什么是内存泄露,什么是内存溢出?
  • 平常使用什么分析工具来优化APP的性能?
  • 手写算法题————实现一个栈
  • Java的集合类包括哪些?各自有什么特点?
  • 为什么写博客?
  • 今后想要往哪些方面发展?

二面其实发挥得不好,尤其是讲到RxJava的时候,因为没有仔细看RxJava源码。

过了几天之后面试状态变成了终面,然后就前往CVTE的第二产业园进行HR面,一般是两个面试官同时面三个同学,不过因为我面的那一批人数不够,所以只是2对2。不得不说CVTE的HR真的很专业,把我从小到大的事情都扒出来了,问的问题大体如下:

  • 对自己两轮面试打一下分
  • 都面试了哪些企业,拿到哪些offer?
  • 小时候印象最深刻的一件?
  • 说说自己的家庭情况?
  • 说说对自己影响最大的人?
  • 父母的性格都是怎么样的?
  • 从小什么事情对自己的影响最大?
  • 希望的工作地点,每天希望的工作时间?一周希望工作多久?
  • 有什么理由会让你拒绝CVTE的offer?
  • 说说你对薪资的要求?
  • 觉得什么是自己不喜欢的?
  • 说一下自己的优点和缺点?
  • 梦想是什么?
  • 有什么问题想问我?

全程还是挺严肃的,大概30分钟,不过因为之前对一些问题做了准备,所以没有遇到太大的难题。HR面之后过了几天官网显示已经通过终面,不过终面过了并不表示能够顺利拿到offer啦,按照CVTE的惯例,顺利通过终面的学生一般是需要经历一周的考核,考核的项目完成之后会进行再一轮的HR面,最后才会给结果。

最后的HR面:

  • 实习的这一周有什么不适的吗?
  • 对企业的安排有什么意见吗?
  • 觉得哪方面还没有达到你的预期?
  • 跟家里人说了来实习的情况了吗?家里人都说了些什么?
  • 父母对你未来的希望是什么?
  • 未来对父母有什么打算?
  • 家里情况怎么样?
  • 父母对你的影响是什么?
  • 从小到大对你造成的负面影响最大的事情是什么?
  • 哪一段时间是自己压力最大的时候?
  • 给自己的实习考核打个分?
  • 觉得自己能不能够通过此次的考核?为什么?
  • 希望的薪资是多少?最低的薪资要求是多少?
  • 如果考核评估觉得你无法达到这样的薪资水平你该怎么办?
  • 如果没有通过CVTE的考核你该怎么办?
  • 手里都拿到哪些Offer了?薪资水平都怎么样?
  • 都拿到这么多offer了为什么还来实习?
  • 为什么会选择CVTE?
  • 有什么理由让你拒绝CVTE的offer?
  • 什么情况下你会从CVTE离职?
  • 还想对大家说什么?用一句话表达。复制代码

讲真,经历了这么多次面试,CVTE的HR面给我的印象是最深刻的,当然这次的面试压力也是最大的,跟我一起面试的另一个小伙伴也顶着很大的压力,大家两个面试结束之后都大口的舒了口气,这次的HR是相对比较高层的,经验可以说相当丰富啊,对每个问题都会挖得很深直击要害,如果没有提前做好充分的准备可能会被问哭。总之这个星期的实习确实是个非常不错的经历。

体验最糟的面试————4399

4399的面试是在华工中心酒店,去之前就听说今年的面试有点水,一面似乎都是20分钟草草而过,听去面试的同学讲起问的技术问题不多,主要聊人生。本来也不是很想去的,因为同时间也赶着去另外一家企业面试,不过为了给自己多一次机会,所以也来到现场。话说4399的人气不是盖的,会议室里坐满了人,到了现场不到3分钟就被叫去一面。

4399一面

  • 自我先容
  • 问了一下项目
  • 说说ListView与RecyclerView的区别
  • 说说以后的发展方向
  • 为什么写博客
  • 用过什么设计模式?问说需不需要详细说一下面试官说不用。
  • 有优点和缺点?
  • 觉得自己什么情况下会离职?
  • 怎么学习Android的?

总体评价一下这次的面试,感觉4399确实很多人想去,不过不知道今年是不是不怎么招人,感觉面试都很水,也有可能面试官觉得我很渣,然后随便问问过一下流程吧!不过我一直觉得面试是一个互相了解的过程,双方都应该敬重彼此,不然怎么体现这个企业的形象呢?

最轻松幽默的面试————珍爱网

当天就收到一面的短信,一面面试官给我留下的印象十分深刻,无论是开口的第一句话:“大家不用搞得那么严肃,轻松点就行(哈哈)”,还是面试过程中对我回答的不好的问题耐心的纠正,到最后离开的时候站起来跟我握手。整体给面试者的印象都十分深刻,相信有面过珍爱网Android的同学都会倍感亲切和轻松吧!

珍爱网一面

  • 先容一下做过的项目,面试官问我手机上有没有安装做过的APP,自己的APP当然得装在手机上啦,于是面试过程基本都是围绕着这个项目展开的。
  • 先容一下RecyclerView的原理以及优点。
  • 为什么会选用Material Design?
  • Android 5.0之后的版本和之前的版本有什么区别?
  • DVM与ART的区别?(回答得不好)
  • 为什么要写博客?
  • 怎么学习Android的?
  • 项目中遇到过哪些困难?如何去解决的?
  • MVP与MVC有什么区别?
  • Custom-Tabs-Client是什么?(因为在项目中用到这个开源库)作用是什么?
  • Handler机制?Looper原理?
  • 如果在主线程中同时创建10个Handler,会发生什么事?(回答得不好)
  • HandlerThread实现原理?
  • Activity的启动流程?
  • ActivityThread的main方法主要做了哪些操作?
  • 对团队有什么要求吗?
  • 有哪些问题要问他的?

面试结束之后面试官主动站起来跟我握手,我都有点受宠若惊了。分析了一下这次面试,觉得自己的技术问题上大部分答得都还行,不过有两个问题基本属于常识盲区,所以回答的不好。能过一面我觉得除了运气好之外,可能是我问的两个问题也加了不少分,第一个问题主要是我有去使用他们的产品,并且对其中的问题有自己的思考和深入的了解,这可能是面试官更加看中的吧;第二个问题能够体现出我很想去珍爱网的热情。

珍爱网二面

二面应该是总监面或者总裁面吧,面试官懂技术,会问一些技术问题,估计是CTO之类的高管。主要的问题记录如下:

  • 先容一下项目,面试官同样也拿着我的手机看项目。
  • 项目中有没有做一下性能的优化?优化工具有哪些?
  • 了解过哪些设计模式?分别详细说一下优缺点?
  • 什么情况下使用单例模式?
  • java中的加锁有哪些方法?
  • 说一下网络连接的状态码的含义?
  • 说一下长连接的优点和缺点?
  • 如何看待Android未来的发展?
  • 为什么会选择学习Android?
  • 如何学习Android?
  • 自己有什么优势?
  • 为什么写博客?
  • 项目中遇到过哪些困难?如何去解决的?
  • 遇到过最大的坎是什么?
  • 有什么问题要问他的?(面试前看了一下珍爱网的官网,注意到对应届生有一个培养计划————纯珍计划,于是就向面试官提问)

二面感觉发挥还可以,个人还是觉得问的问题还是比较重要的,要让面试官觉得你是一个有心的人,觉得你很想来企业工作,所以从官网了解企业是最直接的啦!二面紧接着就是HR面了,HR小姐姐很有趣,这一轮问的问题就是对一些基本问题的了解了,如实回答即可。过几天之后就收到offer通知了。

最真诚的面试————租租车

这里说的最真诚当然不是说我自己啦,我对待每次面试都是十分真诚的啦,这里的真诚就是指租租车的面试官们,因为企业已经经过了B+融资,那年应该是首次校招,不过从规模上来看招聘会办的十分好,招的人数也不少。一面的面试官挺负责任的,在面试之前先浏览了我的博客,以下是面试的一些问题。

租租车一面

  • 自我先容
  • 先容一下项目
  • 说一下Retrofit原理
  • 说一下java中4种元注解?
  • 说一下@Retention元注解的三个取值的使用范围和场景分别是什么?
  • 说一下Volley的原理
  • 说一下Retrofit与Volley的区别和使用场景
  • 说一下Android中的多线程通信机制
  • 说一下Android中的Binder机制原理
  • 自定义View的流程
  • MeasureSpec是什么?
  • View事件的分发机制
  • Android如何实现图片的高效加载
  • java中的四种引用以及使用场景
  • 项目中有做过性能优化吗?如何优化的?
  • JVM的内存模型?
  • java有什么垃圾回收算法?分别是怎么实现的?
  • java多线程的三个特性?原理分别是什么?
  • java多线程的锁机制有什么实现方式?原理分别是什么?
  • 说说java中的集合类?
  • 写一下单例模式?
  • 为什么静态内部类不会造成内存泄漏?
  • 说一下TCP与UDP的区别?
  • 说一下网络连接的三次握手和四次挥手?
  • 为什么写博客?
  • 写博客给你带来什么成长?
  • 有什么问题想问我的吗?

租租车二面

租租车的二面是HR面,问的问题基本和其他的HR面相同,下面就列举一些还记得的

  • 家是哪里的啊?父母对未来的工作有什么要求啊?
  • 有什么优缺点吗?
  • 为什么想要写博客呢?
  • 觉得自己性格怎么样?
  • 对未来的团队有什么要求吗?
  • 拿到哪些Offer了吗?
  • 对薪资方面有什么要求吗?
  • 对自己未来几年的打算是什么?
  • 学校什么时候发三方啊?
  • 还有什么问题要问我吗?复制代码

两次面试加上一开始的笔试体验都挺不错的,去刚刚起步的初创企业确实能够学到很多当然对自己也是一种历练,更让我喜欢的一点则是企业员工大部分都是年轻人,跟他们工作会相对的轻松些。当然最后还是很开心能够顺利拿到租租车的offer啦!

Android秋招如何准备?

其实每个人都有自己特有的学习方法,大家都需要寻找到最适合自己的,在这里我只是列举出我复习的技巧,大家只需要选择适合自己的就行。

书籍和网站

我觉得看书真的是十分的重要,每一本书都有自己的常识体系,但是好书确实不多,需要经历一番挑选;关于网站则是对一些体系较小的常识进行汇总,这里推荐的是设计模式。以下我列举一些个人觉得不错的一些书籍和网站:

Android 相关

  • 《Android开发艺术探索》
  • 《深入理解Android虚拟机》
  • 《Android源码设计模式解析与实战》

Java相关

  • 《Java编程思想》
  • 《深入理解Java虚拟机》
  • 《图解Java多线程设计模式》

网络相关

  • 《计算机网络》(谢希仁 编著)
  • 《网络是怎么连接的》

数据结构与算法相关

  • 《算法导论》
  • 《算法》(第4版)

设计模式相关

  • 图说设计模式
  • 设计模式Java版

练习相关

  • 牛客网在线笔试题(多练练编程题)
  • LeetCode

常识总结

看了这么多书籍和网站之后需要对这些常识做一个比较系统的整理,这里推荐使用思维导图工具,不过市面上的这类工具已经足够多了,有的收费有的免(po)费(jie),大家可以根据自己的使用习惯自行选择,我个人使用的是mindjet,下图则是我总结的Android复习体系图,完整的版本大家可以点击这里下载。

面试技巧

面试前需要对自己总结的常识重新回顾一遍,以便在被问及时能够快速并且全面的回答问题。

面试前对该企业稍做了解,可以从官网或者从产品等方面了解,如果有产品的话还可以使用,看看有没有存在一些bug,当面试官要你提问题的时候可以跟他一起讨论。
面试完之后做稍做记录,记下自己回答的不好的问题,方便查漏补缺。

关于简历

我觉得简历真的十分重要,如果你的学历和能力都不是很有优势的情况下那么简历很可能就决定了你是否有面试的机会了。当然我的简历做得也不是很好,在这里只是与大家一起分享我在准备简历过程中的一些收获,下面一一与大家分享。

为每个企业准备一份简历

如果你不是去一些大型招聘会,不知道都有哪些企业过来招人,那么你大可以用一份普遍适用的简历投递出去,但如果你已经明确知道今天要去哪家企业面试了,那最好能够为这个企业准备一份专属的简历。最基本的就是在简历的页眉部分加上这个企业的logo,其次简历的文字主题色与logo相呼应。

要不要放照片?

首先需要声明的是技术岗一般不看颜值,如果你能力棒棒哒同时颜值高高哒,那基本上就稳了,但如果你跟我一样都是屌丝,那得分两种情况讨论咯。首先如果你愿意花钱的话,可以到靠谱点儿的相馆拍张好的证件照,记得跟老板要电子版哦;如果你不愿意花钱的话,那我建议你还是不要放照片吧。

简历最好要彩印

其实我在简历上还是很舍得花钱的,今年学校换了打印店,彩印一面需要两块钱,每次打印心里都在流血啊,不过想到要给面试官留下一个好的印象,还是忍下心了。对了打印一定要用比较硬一点的纸,不要像普通A4纸那样软哦,这样手感才好哟!还有最好还是单面彩印,如果你的简历不止一面那就打几张用订书机钉起来!

推荐一些实用的工具和网站

这里并不是推荐大家什么简历模板,讲真我也没用过这些,对于技术岗的同学简历不需要花哨,只要条理清晰版面整洁即可,基本都是可以用我的(word)哥做。这里推荐的是一款获取图片颜色的工具,还记得刚才我说简历的文字主题色最好与logo相呼应,那就得知道logo的RGB属性值了,使用这款GetRGB工具则可以让你轻松获取图片的RGB参数

另外推荐的则是一个图标库网站——alibaba矢量图标库,在上面几乎可以找到你所需要的图标,并且可以自定义颜色与大小,还是免费的哦!以后妈妈都不用担心我找不到图标了。

后记

作为一个Android本科渣渣,在秋招中虽然也经历过失利与彷徨,但对最终的结果还是很满意的。这段时间很感谢身边人对我的帮助,感谢我实习的领导给我的意见和帮助,感谢面试过程中遇到的所有面试官以及结识的朋友们,也感谢我的老师同学朋友一直以来对我的帮助,当然也要感谢我爸妈对我的培养,最后的感谢留给自己,感谢自己学习Android一路来的坚持和努力。希翼这篇文章对你有用,同时也祝大家能够实现自己的目标找到心仪的工作!


最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了Tencent、字节跳动、阿里、百度2019-2020面试真题解析,并且把每个技术点整理成了视频和PDF(常识脉络 + 诸多细节)。

还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

有需要的朋友可以点击:Android面试资料免费领取~

一起互勉~