记录app多年老司机如何快速上岸framework系统工程师-学员投稿

背景:

今天特别感谢学员朋友小菜鸡的投稿,该学员朋友前一两个月才找到马哥报名的framework课程,前些天和我报喜说成功找到framework相关的工作,在这里再次恭喜他成果上岸framework工程师,马哥这边特别邀请他给大家分享一些学习framework的经验。
下面开始学员朋友的学习framework的经验分享:
-----------------------------------------------投稿开始--------------------------------------

自己学习framework动机
非常荣幸收到马哥的热情邀请可以来写这一篇我自己的framework学习经验分享哈,我这边其实也不是什么framework大牛,只能说经过1个月左右的全职学习马哥framework课程后,成功上岸了一个中大型的终端设备类公司做framework工程师,具体公司也就不给大家透露了,主要是和大家分析分析我这一个月学习framework过程和感受哈。

先说说我自己的一个技术背景,上一个公司在一线城市一个中型的互联网公司干着app开发,平时开发的内容主要有一些业务开发和部分的app性能优化工作。一共加起来的话app开发可能有10年工作经验了,也算个app老司机,平时工作其实也算比较忙,加班也确实成为家常便饭,收入的话也还是可以的。但是在今年中旬可能也是整体大环境不好吧,公司整体开发精简业务,不幸的是我负责的相关业务已经不是公司核心部分了,所以基本上这块业务的产品,项目经理,还有我们开发测试,都被领了大礼包。

说实话在离开公司半个月前就知道自己要领取大礼包,当时是即开心又难过,开心的是大礼包确实钱不少,难过是担心自己领了大礼包后,下一份工作还没影子,也没有想过要从多年的app开发转到framework方向。于是和以前换工作正常投递相关的简历app高级工程师等职位,但是,,,,发现app的岗位和前些年相比,岗位少的可怜,投递出去也就是收到面试机会很少,这个时候才猛然发现只会互联网纯app开发这种岗位确实是进入高内卷程度。
app开发也会要求framework经验
但是在投递简历过程中发现了一些车机,手机,等安卓设备类的厂商,这种岗位相对还多一些,于是考虑换个非互联网公司的准备去做设备类相关的安卓开发。但是了解一圈下来,设备类的安卓开发普遍要求有framework的经验优先,虽然是系统应用的岗位也会要求framework相关经验。

在这里插入图片描述
这个也是开始慢慢重视到原来现在做android开发,无论是app开发还是说专门的framework工程师,都需要对framework部分的知识要求很高。当时看到这些设备类开发的岗位,我并没有着急投递,因为大家都知道大厂机会宝贵,不能随意投递然后被刷下那就很难再投递了,即不想浪费机会,所以想着自己刚好也有时间,准备恶补一下framework相关的知识后再去投递面试。

发现马哥的framework课程
因为framework部分知识其实以前自己或多或少也有了解,也分析过一些源码,但是说实话对于framework认识可能就是只停留在一点点源码分析,而且我感觉分析后很快就忘记了,即在做互联网app开发工作中根本没有相关机会来深入framework。所以自己也清楚离招聘岗位要求的熟悉framework还很远,这样的一个背景,我开发是网络寻找相关的资料进行学习framework入门教程,找了一圈发现b站有一个“千里马学框架”的up主(也就是马哥)讲解framework视频实践性很强,有那种实战编译系统,开发系统framework需求的视频。于是深入看了几节后发现确实干货满满,还发现up主居然是专门做framework实战培训的,有整套从入门到精通的framework课程可以学习,然后联系了马哥,发现价钱还不贵,而且马哥那边还有亲自答疑,面试指导,工作后也可以问问题等服务,马哥也说全职学习一两个绝对可以达到framework工作水平,于是果断报名了,毕竟为知识付费哈,我在意的是可以跟着马哥学到相关的framework技术,可以快速找到大厂framework或者系统应用工作。按照马哥建议把自己的台式机电脑搞出了Ubuntu,手把手跟着马哥的入门课程开始学。
在这里插入图片描述

学习马哥课程经历

报名马哥framework课程后,那说实话几乎每天都在拼命刷framework课程,可能比上班还忙,可能因为自己失业了,心里总想着尽快把自己的知识短板补齐,可以找到一个好工作。

说说学习马哥课程的感受,刚开始入门课时候,这块主要是对aosp的源码进行下载编译运行,整个framework的架构讲解,还有一个小实战项目跳过第三方广告页面。

感觉马哥的入门课对于我这种从来没有事件过系统开发的同学来说不要太友好,也是我第一次感受到了自己编译系统修改系统的乐趣,学完入门课程后,感觉自己的兴趣被勾起来了,觉得framework确实很有意思,可以干很多自己app层面根本干不了的事情,当然入门课也有遇到比较多问题,比如环境搭建这个坑就比较多,还得感谢马哥的细心指导和回答,还有马哥的武功秘籍blog,让我运行起来了人生第一个编译修改的安卓系统,还有就是认识了framework其实代码上还分为公共framework部分代码和system_server专属代码,现在回头一想这块的基础确实是重要,只有清楚这个是公共代码还是system_server专属代码才可以非常清楚自己修改东西该编译哪个目标,运行在哪个进程。

有了入门课的收获后就开始继续实战课程,跨进程课程,这两个其实都没有太多的阻力,都是那种实战风格的课程,我也严格按照马哥建议手把手跟着课程敲相关的代码,加相关的堆栈分析,当然也没有那么顺利,实战过程中经常发现会遇到一些问题,遇到问题开始肯定是自己会努力寻找原因,实在找不出来再找马哥帮忙,哈哈马哥也确实用心,都会及时回答我,还有马哥vip群里也有很多师兄弟也比较热情帮助,一直坚持实战学习所以整体收获也很大,也确实明白马哥一直和我强调的新手一定要实战,因为只有通过实战真的自己做过,才可以真的变成自己的知识,深刻理解代码为什么这样运行,自己代码为什么这样写,这种深刻的理解认识,是只看视频,不练习无法代替的,而且问问题也会更加有条例和具体。不过在binder课程学习时候,发现binder kernel部分有些难度,而且这块好像也比较容易忘记,这个询问马哥建议是属于正常现象,让我继续学习后面课程,后续面试前再好好温习这个binder整个流程就不容易忘记。

其实学习了前3套,自己对framework就有一个清晰的认识了,也就是自己已经不再是一个framework小白,已经具备framework工作基本能力。后来就开学学习input专题了,因为马哥那边和我说input专题开始,就是企业里面的实实在在业务模块了,说这个实战行和工作面试中遇到的概率会非常大,也就是在大厂framework工程师里面可能有人专门负责input模块,wms/ams模块等。

开始学习input专题时候,发现全是c++相关的代码,刚开始可能心理上有点惧怕,但是好像代码也能基本看懂,于是也鼓起勇气去努力的尝试跟着课程学,慢慢也不那么害怕c++了,实在看不懂的就去百度,问马哥。跟着课程顺序,从InputReader部分一直到app接收到MotionEvent整个流程串起来后,感觉成就感很大,对于以前app开发接受的触摸事件是怎么一步步从底层来的,也理解了anr的触发原理啥的,以前做app可能并不清楚anr原理,只是知道怎么规避anr,哪些情况会anr等,也跟着课程的那几个实战项目实践了。

接下来就是学习wms专题,因为马哥重点强调这个wms专题是重点中的重点,说wms专题学好了,面试加分会很大,一定要学了这个wms专题课程后在考虑找工作的事情。

在学习wms专题时候,其实的前十来节课,马哥一直强调的窗口层级结构树,刚开始感觉其实还挺陌生的,因为感觉有点偏理论一样,因为只知道一个课窗口层级树,没有一个实际上和窗口结合的认识。但是在学习了层级结构树的理论前10几节课课程后,开始从0讲解一个窗口如何添加到系统时候,发现这个时候是那个wms层级结构树在起着最重要的作用,有了这个树才可以让各个层级的窗口可以有序的挂载到正确的位置,不会存在37层窗口层级之间不会有任何的冲突,而且各个节点都是WindowContainer子类挂载在层级结构树上,很多操作都可以进行统一。现在回顾起来。这个wms学习顺序确实是马哥设计
这样先让我们对一棵树有一个明确认识,然后再用实战窗口添加等,让我们可以更加深刻的认识他的作用,经典的理论用于实践的过程。
还有印象深刻的点,就是在马哥在wms课程中有重点讲解壁纸闪黑相关问题手把手分析和解决,这个闪黑问题说实话我原来确实是完全不知道怎么分析这种闪黑问题。可以说连怎么动手都不知道,在马哥的课程后才知道可以使用Winscope这种神器分析,马哥针对Winscope使用程度也是炉火纯青,我也整体跟着把壁纸闪黑这个问题从头到位的分析解决了,确实修改了一个这种闪黑等疑难bug成就感很大。所以也慢慢理解马哥为啥一直说wms非常重要,毕竟对于公司而言确实非常需要这种可以解决这类闪黑等疑难问题的人才。

因为wms课程学完以后,本来想着去找工作,但是看着马哥课程还有一个专门给车机做多屏互动的一个小课程,马哥建议我是尽量学完它,那样你找车机相关工作也会占很大优势,因为毕竟属于车机相关的一个亮点功能,现在车机相关的开发招聘framework需求也很多。所以也就多花了一星期学习完了这个多屏互动的课程,这个课程其实整体上的基础知识还是wms课程学习的那些,但是这个课确实是完全手把手的实战项目课程,马哥也全程手把手在敲项目代码进行实践,整体上跟着马哥做了后发现对wms知识确实是又一次的深入实战。当然也遇到了一些困难,比如多屏互动在触摸滑动时候老是收到相关的cancel事件中断了,明明看着啥都和马哥的一样,然后请教马哥大概是因为自己的导航栏设置和马哥课程的不一样导致,具体原因马哥也给我发了相关的blog。

因为整体课程全职学习也都一个多月了,心里也想快点找到关注,学习马哥的6套课程我就开始准备找工作了,下面分享一下我的找工作经历。

找工作情况

找工作这块首先是简历部分的修改,这个部分还好有马哥的帮忙指导,修改成了一个系统应用和framework都可以的简历,然后针对一些大厂,中厂的framework岗位和系统应用岗位都进行投递,同时也找了一些大厂同事内推等,所以整体上获得面试的机会也多一些。

面试过程的话,整体其实也比较顺利,因为在去面试前找马哥请教了相关的面试经验,也看了马哥那些模拟面试的视频,所以获得了比较多的宝贵经验,去了几家面试大部分面试官算比较友好,只要是问道简历上的技术问题我其实都是答得比较清楚,面试官也确实和马哥说的一样,简历上写的面试官一定会深挖,还好自己这块也确实准备充分,因为比较写上去的都是经过自己的深入实战的,相信这也就是马哥给我一直强调一定要进行实战的原因。

当然面试过程中也有遇到一些非简历上没有的,自己没做过的内容,这块我这边应对的策略也是尽量不放弃每个面试官的问题,如果自己没做过也是说了一些自己的想法观点和思路,自己如果做回去怎么干。

因为面试了最先投递两家的framework工程师都通过了,所以也就没有再继续投递了,其实找到framework工程师工作算比较顺利的,最后我选择了一个做系统窗口交互相关方向的岗位,薪水方面也是有参考我原来app的,整体也较为满意,还好当时遇到马哥转到了framework,不然很可能现在和我其他同事一样,还在为找不到好的app工作发愁。

感谢马哥及其他师兄弟

最后再次非常感谢马哥,马哥的课程确实是一个非常适合app开发者快速转framework开发教程,简直就是量身定制。马哥也是一个非常负责的老师,课程相关的疑问问他都会及时的给我回复指导我,同时发现群里很多小伙伴提出的一些公司项目问题也可以学到很多额外的实战知识,也感谢vip群里的师兄弟们的帮助,framework的技术道路我们一起前行。

-----------------------------------------------投稿结束-----------------------------------------------

更多framework技术干货,请关注下面“千里马学框架”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值