logo头像

读万卷书,行万里路

2020年疫情下的Android跳槽之路

写在前面的话

我是14年毕业的,毕业一直做Android相关方面的开发,14年到18年经历了几家小公司,前后都倒闭了,可谓是一直颠簸流离,漂泊不定。在18年来到上海寻求发展,以前一直呆的是小公司,这次就想找个大公司,想稳定一点,同时大公司技术底蕴也比较强,想多学习学习,提升自己。可参考我以前的求职面试经历:《杭州找Android工作的点点滴滴》《2018年6月份Android上海找工作经历》,前后大概经过了大半个月左右,找到了一家大厂,互联网上市公司,我所在的技术团队也有几百号人,也算得上大公司了。

大小公司对比

大公司和小公司真的不一样,我以前一直在小公司做开发,一个同时开发几个app也是比较常见的。在大公司里面,充斥着各种规章制度,流程规范价值观的衡量,kpi考核等。同时个人做的事也比较窄,因为大公司要求的深度而不是广度,人多,各人负责自己的那一方面,我在里面主要做一些业务需求的迭代开发,整体而言不算很难,属于比较养老的。在这家公司我呆了大概1年9个月的时间。以前我一直念念想找一家大公司,可是等我真正进去了以后才发现,其实不是我想的那样,你要是被分进了核心项目组的话那还好说,如果在边缘项目组的话,结果那就不好说了。KPI考核这个东西,好坏还真不好衡量。就像阿里的325一样,有的时候因为这个KPI,愣是把人搞成了抑郁症。

跳槽原由

跑题了,继续回到这里。在这家公司公司呆了一年多,活不多,做的事情也不是我想的那样,跟我的发展规划不一致,同时也因为其他一些原因,我在1月初选择了离职,本以为找工作很容易,毕竟经验也有了,大厂背景也有,可是万万没想到,2020年发生特大疫情,新冠状病毒疾病的发生,因为这场疫情,很多公司都倒闭了,裁员,降薪随处可见。到现在为止还有很多公司还没有复工,怕啊,要命了,口罩买不到,公司又裁员降薪,在家不上班,又没有收入,贷款还不上,人都搞焦虑抑郁了。我是1月份提了离职,然后准备了1个月,在2月份的时候开始投简历找工作。这次疫情影响很大,从投简历就能看出来,招人的需求不多,投了简历,公司回应也不是很积极。从投简历,到约公司面试,到最后入职的话花了一个左右的时间。下面我就记录以下具体的内容:

面试公司

面试的公司从几个人的小公司到几万人的大公司,从不出名的小公司到BAT和宇宙条都有,我面试的公司主要有,TourABC,7猫,哈啰出行,360金融,触宝,商米科技,比心陪练,传音控股,毒APP,爱奇艺,B站,阅文集团,饿了嘛,阿里巴巴,今日头条等比较出门的一些大公司,同时我还面试了一些比较小的的公司,不出名,前后大概有20家左右吧,通过率大概在50%左右,不过最后因为薪资的问题没有谈拢,可能我在上家公司的薪资比较虚虚,我的期望薪资是增加20%,所以一些公司无法提供,所以就拒绝掉了。怎么说呢,我出来上班,首先考虑的是薪资,比较都要先活着再谈其他的。不过有的公司薪资虽然达到了,但是因为做的东西跟我预期的不一样,所以也拒了。还有一些大公司,像宇宙条,阿里,腾讯的,就是我自身问题了,能力达不到他们的要求,被拒了,这也很正常,毕竟能进去的也是少部分人,大多数的还是比较普通的。

面试方向

一开始我是找的关于应用层的开发,但是发现需求很少,现在Android面试找工作的方向一般有应用需求开发,系统framework研发,音视频开发,基础架构开发,跨平台开发等几个方面,从这次找工作来看,除了应用需求开发以外,其他的几个方面的需求还是比较高的,但同时要求也很高,并不是说你会使用MVP+Rxjava+Retrofit+Dagger2+Glide+Jetpack+Flutter+RN等技术点就可以了,现在一般公司都要去你懂原理,了解技术实现细节了,现在市场上对于初中级的Android开发要求比较少了,更多的是对于高级研发的需求量比较大,所以对于Android研发的人而言,需要加强自身的硬技术,有过硬的技术就不怕找不到好工作。

因为这次疫情的影响,找工作都是电话面试和视频面试。基本上一面是电话面试,二面三面的是视频面试,一般是在牛客网等平台开一个面试房间,有的公司需要在线coding的,要求比较高。我从投简历到约公司面试,大概面了十几家公司,我每次面试完一家公司都会做个总结,把涉及到的内容都记录下来,同时不会的也会去恶补一下,都整理成相关文档,现在详细记录以下我的面试内容,供有需求的同学参考参考:

面试内容

面试的范围主要涉及Java基础,Android相关的,数据结构与算法,计算机网络等几个方面。下面依次列出所问的问题:

Java部分

首先关于Java基础知识点,主要包含以下内容,接口和抽象类区别,string.stringbuilder.stringbuffer三者区别,Java集合框架底层实现原理,线程和进程的理解,线程池得作用,线程的各种状态,gc垃圾回收方面得知识点,具体如下:

  1. Java线程和多线程
  2. 说说JVM,它的程序计数器是干嘛用的?GCRoots的对象可以有哪些。
  3. 集合list和linkedList 区别
  4. hashmap底层数据结构
  5. Java同步方式有哪些
  6. volatile关键字和synchronized关键字原理
  7. jvm的相关东西
  8. Integer的内容
  9. Java线程池相关的内容

Android部分

Android知识点考察,主要包含以下内容:activity的启动模式,service的理解,进程间通信,插件化,组件化,热更新之类的原理,网络请求库okhttp原理,设计模式,类加载机制,Handler的理解,Android启动优化,性能优化相关的东西。具体如下:

  1. Android跨进程方式及原理
  2. Android性能优化,如何优化到极致,线程级别
  3. Android Handler的原理
  4. Android ANR的产生原因,如何定位ANR。
  5. 如何计算Android启动时间,如何优化启动。
  6. 说说Android架构模式,MVC是什么解决了什么东西,MVP是什么?它跟MVC有什么区别?MVVM了解吗,是什么东西。
  7. Android BInder机制是什么。
  8. AIDL了解吗,说说它的原理
  9. Android启动Activity流程,涉及到哪些类?
  10. Android Binder为什么进行一次数据拷贝而不是2次或者0次。
  11. 事件分发机制是什么?
  12. 网络请求库的实现原理是什么,详细说一下OkHttp的细节
  13. 图片加载库Glide的优点
  14. LRUCache缓存的原理
  15. 组件化模块化,插件化得理解
  16. 如何进行性能优化以及如何设计一款性能优化的工具,从哪些方面入手
  17. react native,flutter和kotlin相关的内容
  18. Android 架构演变,MVP和MVVM
  19. Android各大市场上架APP的规范
  20. Google play市场
  21. 说说组件化和插件化,热更新技术原理

网络部分

  1. 你的项目架构是怎样的
  2. 三次握手,四次挥手的相关问题
  3. 网络请求框架的原理
  4. post和get的区别
  5. 如何实现一张5M的图片上传

其他关于每家公司问的面试内容可以参考我的微信文章,我每次面完一家公司都会详细记录这家公司的情况以及面试内容,有需要的可以去查看。底部献上相关链接地址。

面试总结

这是我自己总结出来的面试问题答案,每次面完都会查漏补缺。
在这里插入图片描述

在这里插入图片描述

文档获取方式:关注公众号,后台回复:2020 即可获取相关文档

相关面试总结

  1. 哈啰出行面试总结

  2. 比心陪练面试总结

  3. 360金融面试总结

  4. 触宝面试总结

  5. 商米科技面试总结

  6. 传音控股面试总结

  7. 毒APP,爱奇艺,B站,饿了吗等七家公司面试总结

    offer情况

总共面试了将近20家公司,大概可以的有40%~50%左右,不过有的公司因为薪资达不到自己的期望,所以拒绝了,有的公司要求比较高,我没有达到他们的期望也被拒绝了,最终选择了一家中等规模的公司,主要做基础架构部分的内容,他们家的app,用户量达到5000万左右,日活也有几百万,进去主要做性能优化这方面的,比较符合我的预期,所以就选择了这家,目前已经上班半个月了,一切都还满意。

最后献上公众号,有需要的可以关注一波,后台回复2020,即可获得我呕心沥血总结的面试题及答案。


欢迎关注微信公众号