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垃圾回收方面得知识点,具体如下:
- Java线程和多线程
- 说说JVM,它的程序计数器是干嘛用的?GCRoots的对象可以有哪些。
- 集合list和linkedList 区别
- hashmap底层数据结构
- Java同步方式有哪些
- volatile关键字和synchronized关键字原理
- jvm的相关东西
- Integer的内容
- Java线程池相关的内容
Android部分
Android知识点考察,主要包含以下内容:activity的启动模式,service的理解,进程间通信,插件化,组件化,热更新之类的原理,网络请求库okhttp原理,设计模式,类加载机制,Handler的理解,Android启动优化,性能优化相关的东西。具体如下:
- Android跨进程方式及原理
- Android性能优化,如何优化到极致,线程级别
- Android Handler的原理
- Android ANR的产生原因,如何定位ANR。
- 如何计算Android启动时间,如何优化启动。
- 说说Android架构模式,MVC是什么解决了什么东西,MVP是什么?它跟MVC有什么区别?MVVM了解吗,是什么东西。
- Android BInder机制是什么。
- AIDL了解吗,说说它的原理
- Android启动Activity流程,涉及到哪些类?
- Android Binder为什么进行一次数据拷贝而不是2次或者0次。
- 事件分发机制是什么?
- 网络请求库的实现原理是什么,详细说一下OkHttp的细节
- 图片加载库Glide的优点
- LRUCache缓存的原理
- 组件化模块化,插件化得理解
- 如何进行性能优化以及如何设计一款性能优化的工具,从哪些方面入手
- react native,flutter和kotlin相关的内容
- Android 架构演变,MVP和MVVM
- Android各大市场上架APP的规范
- Google play市场
- 说说组件化和插件化,热更新技术原理
网络部分
- 你的项目架构是怎样的
- 三次握手,四次挥手的相关问题
- 网络请求框架的原理
- post和get的区别
- 如何实现一张5M的图片上传
其他关于每家公司问的面试内容可以参考我的微信文章,我每次面完一家公司都会详细记录这家公司的情况以及面试内容,有需要的可以去查看。底部献上相关链接地址。
面试总结
这是我自己总结出来的面试问题答案,每次面完都会查漏补缺。
文档获取方式:关注公众号,后台回复:2020 即可获取相关文档
相关面试总结
offer情况
总共面试了将近20家公司,大概可以的有40%~50%左右,不过有的公司因为薪资达不到自己的期望,所以拒绝了,有的公司要求比较高,我没有达到他们的期望也被拒绝了,最终选择了一家中等规模的公司,主要做基础架构部分的内容,他们家的app,用户量达到5000万左右,日活也有几百万,进去主要做性能优化这方面的,比较符合我的预期,所以就选择了这家,目前已经上班半个月了,一切都还满意。
最后献上公众号,有需要的可以关注一波,后台回复2020,即可获得我呕心沥血总结的面试题及答案。
关于作者
要做性能优化这方面的,比较符合我的预期,所以就选择了这家,目前已经上班半个月了,一切都还满意。
最后献上公众号,有需要的可以关注一波,后台回复2020,即可获得我呕心沥血总结的面试题及答案。
关于作者
专注于 Android 开发多年,喜欢写 blog 记录总结学习经验,blog 同步更新于本人的公众号,欢迎大家关注,一起交流学习~