写在前面的话
很多时候,你的努力在别人眼里就是一个傻瓜。但是,天道酬勤,你的努力终会在某一天以另一种方式回馈给你。
我有一个朋友,漂泊半生,碌碌无为,直到一手把他拉扯大的奶奶离世前把他骂一顿,他这才开始真心悔过,开始奋进。那一年,他已经虚岁三十了。
三十而立。
“你说的这个‘朋友’到底是不是就是你自己?”
讲个笑话,有人30岁了转行做Android 开发……关键还成功了。
当事人背景
我的朋友是农村出身,家庭条件不好,小时候父母私下做鞭(泡)出了事故,后面就一直跟着奶奶过日子。
但是,这一切并没有让他立志上进。失去亲人后,他只是一味的放纵自己,拉帮结派,打架斗殴,旷课上网打游戏……最后,他成为了老师最头疼的学生,但是他们总是念着他是一个孤儿而多了很多宽容,但是这样的宽容只是让这个处于叛逆期的孩子越走越远。
结果可想而知,不管是中考还是高考,他都是名落孙山,最后凭着那么一点点天分进了一民办的三本院校——学费最贵的那种,学了个计算机专业。
“好歹也是一个本科学历吧。放心,奶奶一定供你读……”他的奶奶这样笑着安慰他,殊不知他根本就不曾上心过。对他来说,什么都无所谓。
碌碌前半生
进入大学后,少年也没有什么特别的改变,不过是有了更多的玩乐时间,学习也就一般般。最后就那样勉勉强强的毕了业,进入了社会,随随便便找了一份测试的工作,也算是专业相关吧。
到现在,一晃走过了14个年头,尝尽途中的酸甜苦辣,默默望着窗外,掐指一算,从事计算机行业已近6个年头。其中三分之一的时间在做测试,也是从事过时间最久的一份职业。为什么能做这么久?他说因为自己没有目标,只想勉强度日。
那你现在转行是有目标了吗?
“是的,我要转Android开发。”
转行导火线
最近《你好!李焕英》这个电影很火,主角的妈妈在孩子不争气的事情后意外去世了,做孩子的心怀愧疚,意外回到过去后一直想让妈妈开心,为妈妈做了很多事情。
我的这位朋友是奶奶一手带大的,却没有给奶奶争一口气,还让老人为了送他上学辛苦还债,没有过上一天安生日子,他一直很愧疚。
他从来没有见过老人骂人,但是她走的时候,说了我:混账——连自己都照顾不好!
后面老人跟他说了几句些话,意思是不放心,要他好好活出个人样儿。
他想,自己能为这个伟大的老人做的最后的事情就是好好在这个世界上活着了吧。
- 看官:你说的这个“朋友”到底是不是就是你自己?
- 笔者:是的。而且我现在已经进入阿里,这也算是转行成功了吧?
转行流的汗
转行之难
我这里不是搞歧视,但是测试做久了技术真的会退化。
我大学里本来也没有学到什么东西,刚毕业的那段时间本来是学习技术,个人成长的黄金时期,我也没有好好把握,说不后悔是骗人的。
后面我向公司提出了内部转岗,但是公司不同意。这个也能理解,毕竟现在市场上的Android开发人力资源已经供过于求,尤其是初阶的,竞争特别大。看不上我也是情理之中。
这里也给大家提个醒,要转行就要做足准备,在不了解行情的时候不要轻举妄动。
由于我转行的时候已经32岁了,当时身边的人都在劝我好好做好当下的事情,不要轻易冒险,关键是,现在“Android 已经凉了”,我身边的人不止一次跟我说这些内容。
但是我还是这样一路走下来了。我想要坚持一次,为自己。
我去报了辅导班,和很多非专业的朋友一起学Android开发,他们很多都是有基础的,而我的基础远远跟不上他们,这让我不得不付出更多的时间和精力去学习。
所幸,我得到了很多大佬的帮助。
我的学习经验分享
下面这段简述自己的过往经历,作为一个转行的人,我深知转行的不易,而根据我多年的工作经验,高Android开发的很多都是非本专业的。
所以,我希望自己快要让大家少走弯路,不管是初入Android,或想转Android,还是已经踏上Android的路上,容笔者说说自己的想法,希望能帮到大家。
以下是我转行Android 学习成长的心得体会。
我对那些想转行的人的建议
俗话说:干一行,爱一行,学一行,专一行。👈
半路出家的人员心态都比较走两个极端,一是看中他的前景;二者是不喜欢原工作(薪水低或干得不爽)。我自己就是属于二者。但不管是你已转行了,还是将要转行做Android,我都建议您静下心来思考下面几个问题:
- 我能做什么?
- 我不能做什么?
- 我的优势是什么?
- 我的劣势是什么?
- 做前端对我有何好处?
- 做前端我要付出何种代价?
- 我能不能坚持做下去?
如果你不能好好的,清楚的回答这些问题,我建议你还是不要轻意转行做Android。
Android需要学哪些?
知识体系
广度
- 对新技术充满热情,乐于尝试
- 阅读一些课外书籍
深度
- 探究设计模式,算法,框架底层原理
- 学习、探索并总结属于自己的Android开发方法论
- 一颗不满足于浅尝辄止的心
学习路线
根据对应的知识点找对应的学习资料(如视频、书籍、文档、文章、项目实战等),学习路线图想必大家都见过,精华咏流传。
笔者在这里推荐一份详细 Android 学习路线,附参考资料。
- 架构师筑基语言基础
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
知识要点:
1、设计思想与代码质量优化
2、程序性能优化
启动速度与执行效率优化
布局检测与优化
内存优化
耗电优化
网络传输与数据储存优化
APK大小优化3、开发效率优化
分布式版本控制系统Git
自动化构建系统Gradle4、项目实战
启动速度
流畅度
抖音在APK包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德APP全链路源码依赖分析
彻底干掉OOM的实战经验分享
微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析**
- NDK模块开发(音视频开发系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
- Flutter学习进阶
2020 年无疑是 Flutter 技术如火如荼发展的一年。现在这门技术也依然非常有价值。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门**
……
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
-
Android相关源码解读
这里大家可以去看这一篇文章:牛掰!阿里P7大佬爆肝半个月,把安卓源码解析编成了508页的PDF。
完整资料获取途径:点击此处可看大佬的公众号原文,里面有获取途径。
关于 Android 程序员的一些Q&A
借这篇文回答一些刚入Android大门的朋友的一些问题。
自学Android可能吗?
推荐以前看到的一个文:2020年,Android开发想自学可能吗,大概要多久?
我个人觉得自学是没有问题的,关键是要有毅力和资源,资源可以来我们的交流圈的共享文件夹(添加我的威+信:study5233,备注:进圈)。
共享文件夹部分内容截图程序员真的有“35岁危机”吗?
程序员35岁危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。
- 技术要深入到什么程度?
- 做久了技术总要转型管理?
- 我能做什么,我想做什么?
这里推荐阅读:程序员的出路在哪里?八年半老Android现身说法
永远不要放弃一技之长,它值得你长期
信仰持有
。独立生存的能力,是消除中年危机的终极答案。
最后
我高龄转行成功了,现在在做技术管理,但始终不会放弃我作为Android 开发者一技之长的根本。
遇到一些中途又转其他行业的朋友,我想说,当你转行那一刻起,就把要转的领域变成了你新的“栈内技术”,然后又要重新走一遍技术沉淀的过程。
匆匆几年,又过去了,所以不要轻易"换方向",Android 绝对是可以长时间坚持的领域,现在无论是小程序,快应用,甚至区块链,都会需要我们Android 开发者,因为有庞大的用户群体,所以长期坚持从事移动开发工作,在可预见的未来都不会“过时”。
人生是没有局限的,只要你想努力,什么时候开始都不算晚。尽然选择了Android,就要做好打持久战的准备,把基础打扎实后,随时关注并学习最新的技术和框架,与时俱进,才不会被淘汰。
技术提升需要一定的过程,脚踏实地走好每一步,先定好一个个小目标,然后去一一实现。
最后,希望大家好好利用这份资料,最终达成所愿。
网友评论