有人30岁转型做Android开发...居然还成功了

写在前面的话

很多时候,你的努力在别人眼里就是一个傻瓜。但是,天道酬勤,你的努力终会在某一天以另一种方式回馈给你。

我有一个朋友,漂泊半生,碌碌无为,直到一手把他拉扯大的奶奶离世前把他骂一顿,他这才开始真心悔过,开始奋进。那一年,他已经虚岁三十了。
三十而立。
“你说的这个‘朋友’到底是不是就是你自己?”

讲个笑话,有人30岁了转行做Android 开发……关键还成功了。

当事人背景

我的朋友是农村出身,家庭条件不好,小时候父母私下做鞭(泡)出了事故,后面就一直跟着奶奶过日子。

但是,这一切并没有让他立志上进。失去亲人后,他只是一味的放纵自己,拉帮结派,打架斗殴,旷课上网打游戏……最后,他成为了老师最头疼的学生,但是他们总是念着他是一个孤儿而多了很多宽容,但是这样的宽容只是让这个处于叛逆期的孩子越走越远。

结果可想而知,不管是中考还是高考,他都是名落孙山,最后凭着那么一点点天分进了一民办的三本院校——学费最贵的那种,学了个计算机专业。

“好歹也是一个本科学历吧。放心,奶奶一定供你读……”他的奶奶这样笑着安慰他,殊不知他根本就不曾上心过。对他来说,什么都无所谓。

碌碌前半生

进入大学后,少年也没有什么特别的改变,不过是有了更多的玩乐时间,学习也就一般般。最后就那样勉勉强强的毕了业,进入了社会,随随便便找了一份测试的工作,也算是专业相关吧。

到现在,一晃走过了14个年头,尝尽途中的酸甜苦辣,默默望着窗外,掐指一算,从事计算机行业已近6个年头。其中三分之一的时间在做测试,也是从事过时间最久的一份职业。为什么能做这么久?他说因为自己没有目标,只想勉强度日。

那你现在转行是有目标了吗?

“是的,我要转Android开发。”

转行导火线

最近《你好!李焕英》这个电影很火,主角的妈妈在孩子不争气的事情后意外去世了,做孩子的心怀愧疚,意外回到过去后一直想让妈妈开心,为妈妈做了很多事情。

我的这位朋友是奶奶一手带大的,却没有给奶奶争一口气,还让老人为了送他上学辛苦还债,没有过上一天安生日子,他一直很愧疚。

他从来没有见过老人骂人,但是她走的时候,说了我:混账——连自己都照顾不好!

后面老人跟他说了几句些话,意思是不放心,要他好好活出个人样儿。

他想,自己能为这个伟大的老人做的最后的事情就是好好在这个世界上活着了吧。

看官:你说的这个“朋友”到底是不是就是你自己?
笔者:是的。而且我现在已经进入阿里,这也算是转行成功了吧?

转行流的汗

转行之难

我这里不是搞歧视,但是测试做久了技术真的会退化。

我大学里本来也没有学到什么东西,刚毕业的那段时间本来是学习技术,个人成长的黄金时期,我也没有好好把握,说不后悔是骗人的。

后面我向公司提出了内部转岗,但是公司不同意。这个也能理解,毕竟现在市场上的Android开发人力资源已经供过于求,尤其是初阶的,竞争特别大。看不上我也是情理之中。

这里也给大家提个醒,要转行就要做足准备,在不了解行情的时候不要轻举妄动。

由于我转行的时候已经32岁了,当时身边的人都在劝我好好做好当下的事情,不要轻易冒险,关键是,现在“Android 已经凉了”,我身边的人不止一次跟我说这些内容。

但是我还是这样一路走下来了。我想要坚持一次,为自己。

我去报了辅导班,和很多非专业的朋友一起学Android开发,他们很多都是有基础的,而我的基础远远跟不上他们,这让我不得不付出更多的时间和精力去学习。

所幸,我得到了很多大佬的帮助。

我的学习经验分享

下面这段简述自己的过往经历,作为一个转行的人,我深知转行的不易,而根据我多年的工作经验,高Android开发的很多都是非本专业的。

所以,我希望自己快要让大家少走弯路,不管是初入Android,或想转Android,还是已经踏上Android的路上,容笔者说说自己的想法,希望能帮到大家。

以下是我转行Android 学习成长的心得体会。

我对那些想转行的人的建议

俗话说:干一行,爱一行,学一行,专一行。

半路出家的人员心态都比较走两个极端,一是看中他的前景;二者是不喜欢原工作(薪水低或干得不爽)。我自己就是属于二者。但不管是你已转行了,还是将要转行做Android,我都建议您静下心来思考下面几个问题:

  • 我能做什么?
  • 我不能做什么?
  • 我的优势是什么?
  • 我的劣势是什么?
  • 做前端对我有何好处?
  • 做前端我要付出何种代价?
  • 我能不能坚持做下去?

如果你不能好好的,清楚的回答这些问题,我建议你还是不要轻意转行做Android。

Android需要学哪些?

知识体系

广度

  • 对新技术充满热情,乐于尝试
  • 阅读一些课外书籍

深度

  • 探究设计模式,算法,框架底层原理
  • 学习、探索并总结属于自己的Android开发方法论
  • 一颗不满足于浅尝辄止的心

学习路线

根据对应的知识点找对应的学习资料(如视频、书籍、文档、文章、项目实战等),学习路线图想必大家都见过,精华咏流传。

笔者在这里推荐一份详细 Android 学习路线,附参考资料,私信我【资料】免费获取。

获取途径:点击此处,Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

  • 架构师筑基语言基础

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:
1、Java序列化、泛型、反射
2、虚拟机底层原理
3、Android内存原理
4、Java高并发原理详解
5、编译时技术掌握与实战
6、JDK高级动态代理
7、高级数据结构与算法
8、Java IO操作

Android R Frame Work源码与UI

在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
UI其实并不是单纯指用户看到的效果。因为在Android开发中,每个控件背后都有一套深层次的体系在支撑,自然而然,会UI不单纯指的是会自定义控件,我们还应该知道自定义控件背后的执行流程,包括从Activity的创建,XML的解析,到每个控件的测量、布局、绘制。当然在中间还夹杂着比如动画、事件分发机制、嵌套滑动机制等知识点。还有谷歌提供的一些UI框架也使我们要掌握的对象,比如Jetpack组件库、Material Design等。

知识要点:
1、FrameWork源码解析
2、Android常用组件深入解析
3、UI的深度剖析与自定义
4、Jetpack全家桶
5、Android R
6、RXJava响应式编程框架设计

360°全方位性能调优

性能优化是针对整个app开发而言的。一个好的项目被开发出来,不单是产品要好,开发者也需要知道,为什么我开发的这个app能够在绝大多数的手机运行,为什么用户在使用的时候绝大部分的手机不会出现bug。我们的apk文件可以优化到很小的,比如你做一个项目,打包之后可能是10m,但是经过优化之后可能就只有8m,甚至更小。另外,我们做的项目安全性如何?我们凭什么断定我们做出来的app安全性好。这都是性能优化中会涉及的。

1、设计思想与代码质量优化

一个app的性能好不好我们需要从两个层面努力。第一个层面:从写代码的时候就需要注意,让自己的代码是高性能高可用的代码,这个过程是书写高性能代码;第二个层面:对已经成型的代码通过工具检查代码的问题,通过检查到的问题来指导我们进行代码的删改,这个过程被称为调优。
如何写出高性能的代码呢?那就需要我们具备深厚的代码功底,这就是代码的基础,如:数据结构达到可以根据应用场景写出符合当前场景的特殊结构,比如google针对Android平台特征研发了sparseArray替代HashMap。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。
另外一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操作,然后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,当然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的原因等进行分析和调优。最后再加上一个屏幕适配相机适配。

2、程序性能优化

启动速度与执行效率优
化布局检测与优化
内存优化
耗电优化
网络传输与数据储存优化
APK大小优化

3、开发效率优化

分布式版本控制系统Git
自动化构建系统Gradle

4、项目实战

启动速度流畅度抖音在APK包大小资源优化的实践优酷响应式布局技术全解析网络优化手机淘宝双十一性能优化项目揭秘高德APP全链路源码依赖分析彻底干掉OOM的实战经验分享微信Android终端内存优化实践

[图片上传失败…(image-c47f3e-1614667651120)]

  • 对标腾讯T3.3架构师必备技术

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、架构师必备的代码设计准则
2、组件化架构设计
3、插件化架构设计
4、热修复设计
5、开源框架源码解析与实现

  • 高级音视频(音视频系列)

从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必需品。除了在线教育、音视频会议、即时通讯这些必须使用音视频技术的产品外,其它的产品也需要加入音频、视频元素。

正是因为这样一个大的趋势,现在除了各大厂之外,其它一些小厂也开始寻找音视频人才。

一名稍好点的音视频人才现在可能会有3-4家公司抢着要、挣着要。对音视频人才的需求从小众变成了大众,这更多的是大家对未来市场预期的结果。

音视频人才为什么难得?

音视频知识庞杂,通俗易懂的资料非常少;

网上博客,视频充斥着大量的错误信息,使得很多初学者掉到坑里就爬不出来了。

举个例子,按照传统的音视频学习方法:首先接触大量的音视频开源库,如FFmpeg、MediaCodec,往往这些API就已经把脑袋弄大了。停留在使用API,不能让你适应不断变化的需求。最开始的方向错了,不管如何努力,都学不好音视频。

本篇知识要点:
1、基础语法
2、H264视频编码
3、H265编码原理
4、H265编码应用
5、MediaCode

完整资料获取途径:私信我【资料】免费获取。

关于 Android 程序员的一些Q&A

借这篇文回答一些刚入Android大门的朋友的一些问题。

自学Android可能吗?

我个人觉得自学是没有问题的,关键是要有毅力和资源。

程序员真的有“35岁危机”吗?

程序员35岁危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。

  • 技术要深入到什么程度?
  • 做久了技术总要转型管理?
  • 我能做什么,我想做什么?

永远不要放弃一技之长,它值得你长期信仰持有。独立生存的能力,是消除中年危机的终极答案。

最后

我高龄转行成功了,现在在做技术管理,但始终不会放弃我作为Android 开发者一技之长的根本。

遇到一些中途又转其他行业的朋友,我想说,当你转行那一刻起,就把要转的领域变成了你新的“栈内技术”,然后又要重新走一遍技术沉淀的过程。

匆匆几年,又过去了,所以不要轻易"换方向",Android 绝对是可以长时间坚持的领域,现在无论是小程序,快应用,甚至区块链,都会需要我们Android 开发者,因为有庞大的用户群体,所以长期坚持从事移动开发工作,在可预见的未来都不会“过时”。

人生是没有局限的,只要你想努力,什么时候开始都不算晚。尽然选择了Android,就要做好打持久战的准备,把基础打扎实后,随时关注并学习最新的技术和框架,与时俱进,才不会被淘汰。

技术提升需要一定的过程,脚踏实地走好每一步,先定好一个个小目标,然后去一一实现。

最后,希望大家好好利用这份资料Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
,最终达成所愿,大家也可以简信我【资料】免费获取。

猜你喜欢

转载自blog.csdn.net/A_pyf/article/details/114285265