写点什么

Android 开发没有一技之长就废了吗?

用户头像
Android架构
关注
发布于: 11 小时前

不知你发现没有,人到中年之后,时间流逝的速度仿佛越来越快?


还记得毕业那会儿,我们怀着新鲜和好奇踏进了职场,那个时候每天都是满满的挑战和需要学习的东西,感觉时间过得真慢啊;


不知道从什么时候开始,工作渐渐变得索然无味,日子过得越来越快了,还没等你察觉,大把大把的光阴就在你眼皮底下溜走了。


时间像是飞速旋转的车轮,裹挟着我们每个人。


对于一些 35 岁以上的 Android 开发来说,正面临或即将面临一个尴尬的境地——


当所处行业不再负有过去的风光,自己多年磨练的技术也面临着惨淡的前景,渐渐地,曾经引以为豪的


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


职场经验,正在无形中加速贬值。


或许,正是多年前那句“学一门技术吧,越老越吃香”的至理名言,把这些中年人推向了极度寒冷的“职场断崖”。



一、人到中年是怎样的一种体验?


================================================================================


两个字,孤独。


有段话是这样说的:


“所谓人到中年,就是时常会觉得孤独,因为一睁开眼睛,周围都是要依靠 TA 的人,却没有 TA 可以依靠的人。”


一位朋友在和我聊天的时候谈到今天遭遇的职业困境,长长地叹了一口气。


“从刚毕业那会儿工作到今天,从来没有想到过自己会走上这一步…”他感慨道:“倒也不是没有先兆,最开始是削减年终奖,到后来是工资缩水,那几年也都人心惶惶,有的人就选择了离开,自谋生路去了…”


“也有人劝我走,但是一来我的年纪也大了,转眼都快 35 了;二来我当年学的这项技术,如今整个行业都已经非常饱和了,出去了也不好找工作;三来我对这个公司多少还有感情,我和老张老李这些人共事了四五年了,大家相处的和一家人一样。怎么能说割舍就轻易割舍下呢?”


他说着,眼眶不禁湿润了。


二、断崖之痛


=======================================================================


Android 作为一个已经市场化十余年的技术门类,它必然早已经是成熟常态。这样的技术行业都不再会有爆炸式的增长。连同 Android 硬件、手机、平板等都会趋于稳定,再就是一个稳中逐步下降的趋势。对于这方面人才供需也会趋于稳定,市场对开发者的从业经验,项目背景要求都会逐步提高。


我心知肚明,我的这位朋友面临的职业困境用“断崖”来形容毫不夸张。


一方面,由于他这些年在公司过得比较安稳,再加上没有一个拿得出手的项目,意味着想要保持现有的收入跳到另一家,几乎是没有可能了;另一方面,新技术的涌现以及大批 90 后、00 后的崛起,让他面临着极为严峻的再就业压力。


多年以来,那句“没有一技之长是中年人最大的可悲”放在当今的时代背景下,似乎渐渐不适用了。


瞬息万变的技术圈对于我们这些从事技术工作的职场人提出了更高的要求,如果能尽早在原有技能基础上添加一些新的技能,形成“技能混合体”,则未来的职场竞争力会更强。


三、Android 开发人员应该掌握哪些技术?


=======================================================================================


这里我找来一则高级 Android 开发的招聘要求



这是小米在拉勾上的招聘要求,相当于 p5 到 p6 级别,除开学历的要求外,我们可以看到它在 Android 基础要求之外,把 JNI/NDK/Framework,甚至 JS、Server 端开发也作为了提升点,是全栈方向的雏形。我觉得大家可以经常在招聘网站里看看现在的企业需要什么技术,当然也不能把企业要求的都学了。我这里大致总结了一下,Android 开发人员的发展方向


第一,横向提升。


基于全栈发展的趋势,在自己擅长领域深入专研的同时横向扩展,不要关起门来闭门造车。而这里说的横向提升就是向全前端转型,在除了要在 APP 会 hybrid 开发(web、native、前端交互、硬件交互)之外,还要会 web 开发,微信小程序,H5。


比如服务端开发,我们做 Android 开发很多时候,要依赖于服务端接口返回数据,可以自己试着搭建一下,至少要对服务端的结构理论、服务与服务之间通信、聚合是什么样的流程也是需要有所耳闻。


第二,纵向重塑。


一直以来,做 Android 开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合适,如果是做系统层开发,往往底层驱动比较合适。这里我是比较赞同的,那具体应该学习什么呢?


1.移动架构:架构展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components;架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似 Docker, 每个页面都是插件,类似 Vue.js 中每个页面都是组件。


2.基础进阶:这个方向可能比较多,比如 VIEW、Android 动画机制、四大组件工作原理、多媒体技术等等。我们平常在工作中碰到的 View 滑动冲突问题、其实通过掌握 View 工作机制和 Android 触摸事件体系就能轻易解决掉。还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。Android 中的四大组件工作机制其实底层应用的是 Binder 机制,我们不妨从 AIDL 这个接口来了解 Binder。


JNI 和 NDK 开发也是比较常见,特别对于一些做 SDK 项目为主的,这一块开发流程也是需要掌握,NDK 开发(含 JNI)也是用人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握 NDK 来筛选人才。


3.语言学习开发语言:这里我要纠正一下学习语言不是跨行业,比如 Kotlin 可以说是 Android 世界的头等公民了。再有时下比较火的 Python 和 GO,另外做底层 C/C++是必不可少的。

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android开发没有一技之长就废了吗?