2020年疫情下的Android跳槽之路:六年开发大龄菜鸡的爬坑历程,程序员技术过硬不怕找不到好工作!

2020年疫情下的Android跳槽之路:六年开发大龄菜鸡的爬坑历程,程序员技术过硬不怕找不到好工作!,第1张

概述 写在前面的话我是14年毕业的,毕业一直做Android相关方面的开发,14年到18年经历了几家小公司,前后都倒闭了,可谓是一直颠簸流离,漂泊不定。在18年来到上海寻求发展,以前一直呆的是小公司,这次就想找个大公司,想稳定一点,同时大公司技术底蕴也比较强,想多学习学习,提升自己。前后大概经

 

写在前面的话

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

大小公司对比

大公司和小公司真的不一样,我以前一直在小公司做开发,一个同时开发几个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和MVVMAndroID各大市场上架APP的规范Google play市场说说组件化和插件化,热更新技术原理

网络部分

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

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

面试总结

这是我自己总结出来的面试问题答案,每次面完都会查漏补缺。

 

 

offer情况

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

面试复习路线推荐

多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!

这里给大家提供一个方向,进行体系化的学习:

1、看视频进行系统学习

前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。

2、进行系统梳理知识,提升储备

客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

系统学习方向:

架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO

AndroID高级UI与FrameWork源码:高级UI晋升+Framework内核解析+AndroID组件内核+数据持久化

360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化

解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+AndroID架构组件Jetpack

NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发

微信小程序:小程序介绍+UI开发+API *** 作+微信对接

HybrID 开发与Flutter:HTML5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

3、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、Okhttp 源码等等。

 

4、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

 

总结

改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。

耗时一年多整理的一系列AndroID学习资源:AndroID源码解析、AndroID第三方库源码笔记、AndroID进阶架构师七大专题学习、历年BAT面试题解析包、AndroID大佬学习笔记等等,这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。

总结

以上是内存溢出为你收集整理的2020年疫情下的Android跳槽之路:六年开发大龄菜鸡的爬坑历程,程序员技术过硬不怕找不到好工作!全部内容,希望文章能够帮你解决2020年疫情下的Android跳槽之路:六年开发大龄菜鸡的爬坑历程,程序员技术过硬不怕找不到好工作!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1043064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存