早几天逛论坛,发现了这样一个有意思的帖子分享给读者。
网友发问:“想问下做了四年的 Android 开发应该要有怎样的技能树?”
如题,上月被裁现在找工作,准备面试的时候看了好多技术文章越看感觉自己掌握的东西越少。马上要去面试了感觉心好虚。
其中有位面试官的回复直接带火了整个帖子,面试官讲起来自己招android开发的经历。
![](https://img.haomeiwen.com/i24099992/40b7b61eeb723355.png)
![](https://img.haomeiwen.com/i24099992/1e5ba0d7a422bf8f.png)
前后招的几个android开发都不能适应岗位需求。一边是抱怨Android开发找工作难,Android开发前景凉了。
另一边是Android岗位招聘不到合适的工作。
今年,常常有人问我两个问题:“现在学习移动开发还有前景吗?”“移动开发还有什么可以研究的?”。
这两个问题其实对应着同一个现象,无论是准备入行或刚刚入行,还是比较资深的开发者,对于移动开发职业的未来,都有一些迷茫、一些焦虑。为什么会这样?
现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。
从技术的角度来看,今年移动端的技术变革也有点缓慢。大前端的概念虽然说了很久也很多,但 React Native、PWA(Progressive Web App)的效果依然不尽人意。在插件化热潮之后,移动端的精品文章开始变少。去年“安利”完 Kotlin 之后,今年讲得比较多的还是 Flutter。
这么看来,移动开发的前景不明朗,再加上竞争激烈以及技术变革放缓,我们感到迷茫、焦虑似乎就不难理解了。
我目前在某知名互联网企业负责海外产品的技术工作。
回想一下自己的过去,经历了搜狗手机输入法用户从一千万到一亿,也见证了微信用户从一亿到十亿的增长。在快速成长的同时,让我感到更加快乐的是对社区还是做出了那么一点贡献。写了一些文章,建立并运营了 WeMobileDev 公众号,输出了一些技术干货和思考;拥抱了开源,Tinker、Mars、WCDB 相继开源,特别是 Tinker 作为腾讯在 GitHub 的第一个开源产品,让我体会到了开源的魅力。
那企业需要什么样的移动开发人才?移动开发还可以做些什么?我希望通过这个专栏来回答你这两个问题。专栏里,我会结合业界的现状,讲讲国内外各大公司的尝试,以及他们的发展方向。我会尽量少放源码,侧重结合工作上的实践经验,分享一些疑难问题的解决思路。整体来说,主要包括以下三个部分 (注:60% 是 Android 相关的,40% 是可以跨平台的)。
1. 高质量开发。
在如今的竞争态势下,保证产品的基础用户体验尤为重要。最近国内外各大公司,对 APM 性能监控系统也越来越重视。我挑选了崩溃、内存、卡顿、启动、I/O、存储、网络、耗电、渲染、安装包体积等比较常见的关键点,为你全面梳理性能优化的经验技巧与方向,帮你学会如何解决已知的存量问题,同时也能及时发现增量问题。
2. 高效开发。
持续交付、DevOps 近年在国内非常火热,我们都在寻找内部突破,提升效率。一个应用从想法到成品,需要经历开发、编译 CI、测试、灰度、发布等多个阶段,那怎样提升各个阶段的效率,也是你我比较关心的话题。跨平台开发可能是解决开发阶段的一个答案,动态部署可能是发布阶段的一个答案。头条和快手如何做到数据驱动式的开发,怎样才是高效的运营,在这个模块,我将围绕这些内容一一展开。
3. 架构演进。
“君有疾在腠理,不治将恐深”,对于一个应用来说,架构一定是核心中的核心。在这个模块,我会讲到 Google 的一些架构演进,例如 Android P、App Bundle、虚拟机、耗电等,也会讲到移动网络架构的一些选择,跨平台开发、动态化实践等热点知识。
在我看来,如今的移动开发开始冷下来了,或者有人说开始进入移动互联网的下半场了。其实,对于我们开发人员来说,不管是下半场还是上半场,我们重要的是要把技术做好做精做深。是的,现在移动开发已经不再是风口,但是,这并不是说移动开发已经被淘汰,而是说移动开发的发展进入了成熟期,就像 Web 技术一样。
如果说现在,你还只是能做好产品给过来的“需求”,我认为这是远远不够的。作为一个移动开发工程师,你我都需要深耕细作,都需要有工匠精神,把已有的事情从好做到更好。因为在迈向更好的过程中,你必然需要学习底层原理,你必然需要拓展知识面,你必然需要结合其他的技术,有了这么多必然,你也必然会变得更强。
所以,我在这里回答我一开始提出的那个让人焦虑的问题。首先,我认为,移动开发不等于 App 开发,所有新的技术浪潮其实都可以融入到移动开发的体系里,比如 IoT、音视频、边缘计算、VR/AR,我们要做的,只是打好基础,随时准备战斗。其次,从心态上,我觉得我们千万不要把时间浪费在纠结问题上,而是应该放在解决问题上。“王者荣耀”“吃鸡”并不能解决我们的焦虑,拥抱变化,才能拥有未来,让我们共勉。
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...
网友评论