开篇词 焦虑的移动开发者该如何破局?

最近半年,常常有人问我两个问题:“现在学习移动开发还有前景吗?”“移动开发还有什么可以研究的?”。这两个问题其实对应着同一个现象,无论是准备入行或刚刚入行,还是比较资深的开发者,对于移动开发职业的未来,都有一些迷茫、一些焦虑。为什么会这样?

现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First也已经变成了AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了AI方向。

可以说,国内移动互联网的红利期已经过去了,现在是增量下降、存量厮杀,从争夺用户到争夺时长。比较明显的是手机厂商纷纷互联网化,与传统互联网企业直接竞争。另外一方面,过去渠道的打法失灵,小程序、快应用等新兴渠道崛起,无论是手机厂商,还是各大App都把出海摆到了战略的位置。

从技术的角度来看,今年移动端的技术变革也有点缓慢。大前端的概念虽然说了很久也很多,但React Native、PWA(Progressive Web App)的效果依然不尽人意。在插件化热潮之后,移动端的精品文章开始变少。去年“安利”完Kotlin之后,今年讲得比较多的还是Flutter。

这么看来,移动开发的前景不明朗,再加上竞争激烈以及技术变革放缓,我们感到迷茫、焦虑似乎就不难理解了。

带着同样的焦虑,2017年年底我选择离开了微信,目前在某知名互联网企业负责海外产品的技术工作。

回想一下自己的过去,经历了搜狗手机输入法用户从一千万到一亿,也见证了微信用户从一亿到十亿的增长。在快速成长的同时,让我感到更加快乐的是对社区还是做出了那么一点贡献。写了一些文章,建立并运营了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,我们要做的,只是打好基础,随时准备战斗。其次,从心态上,我觉得我们千万不要把时间浪费在纠结问题上,而是应该放在解决问题上。“王者荣耀”“吃鸡”并不能解决我们的焦虑,拥抱变化,才能拥有未来,让我们共勉。

最后,我和极客时间一起,为你准备了丰厚的学习大礼包,听说礼包里面有GMTC大会的门票哦。今天先卖个关子,我会在下一节“导读”里给你揭晓。

希望通过这个专栏,可以在这个节骨眼上,给你一些启发和帮助。

精选留言(15)
  • 一只拖鞋 👍(49) 💬(1)

    希望少点鸡汤,多点干货,少点焦虑贩卖,多点知识精华

    2018-11-26

  • 郭效江 👍(29) 💬(2)

    邵文牛逼,有幸用过和研究过tinker,佩服的是五体投地。另外补充一下,移动开发现在在新造车企业也大有所为,我现在在一家新势力公司,从APP,framwwork,HAL,kernel都有幸接触到,可以领略浩瀚的Android工程。之前在互联网公司的焦虑也好很多了,总归一句话,Stay hungray, Stay foolish.另外,借此打个小广告,有找工作的APP/framework工程师可联系我(不知道极客时间的评论能不能回复,随缘吧)

    2018-11-27

  • 品牌运营|陆晓明 👍(14) 💬(1)

    这条路要深耕,会往更底层去走。在物连网对标上来,同时深度学习,人工智能,以及图像识别技术跟进,加成,未来的世界不可想象。移动端的风口已经在迁移,唯有思考的方式,抓住问题的本质,能够快速脱离当前技术,进入下个战场,并能抢的先机,建立壁垒,这个才是应该有的技术敏锐度。 在技术中陷得越深,当出来时越觉空虚,不如以产品思维,项目宏观把控,用用户流量,激发开发的热情,与拥抱未来的能力。

    2018-11-26

  • Eddie 👍(5) 💬(1)

    感觉自己遇到了瓶颈期,需求写多了很无聊,最近在看计算机网络,大神觉得这个对我们研发有帮助吗?能给点建议吗?

    2018-12-11

  • thirtyyuan 👍(5) 💬(1)

    希望讲 “优化” 的点都能贴近实际或者有实际例子和项目,书上、视频中讲大同小异,都很笼统,具体怎么实践,新手一头雾水😅如果能讲清楚,感激不尽!

    2018-11-27

  • Carlo 👍(1) 💬(1)

    学了一圈回来,最后发现还是native最好。你觉得呢?

    2019-03-17

  • IOT..Yang 👍(1) 💬(1)

    最近几个月,真的感觉到焦虑了,危机感也很强烈,一直在补学基础中,调整好心态,拥抱变化,向大佬们学习!

    2018-11-26

  • ammmm 👍(1) 💬(1)

    竟然不是邵文大佬亲自读,很喜欢大佬的口音,😄

    2018-11-26

  • 风吹过wu 👍(0) 💬(1)

    移动开发并不等于APP开发,希望我的焦虑能从这里开始解除,谢谢!

    2019-03-14

  • 缘来是婷 👍(0) 💬(1)

    入行不到三年,目前在一家互联网创业公司,独立开发。公司需求基本很容易快速快发出来。但是感觉遇到瓶颈:需求开发没任何问题,但是对于App代码优化和性能优化,不知从何处下手。求指导

    2019-02-21

  • 葛明松@gms 👍(0) 💬(1)

    今天订阅了专栏,希望通过学习,能让自己的技术更上一层楼!

    2019-02-14

  • 何文策 👍(0) 💬(1)

    邵文你好, 希望通过你的课程学到更深入的东西。 希望可以组建一个交流群,供大家交流,学习。 私人问你一个问题: 目前我可以解决公司的绝大多数的软件问题, 但是我自己觉得遇到了瓶颈,Android方面我知道比较广,有一些比较深,而且我知道Android还有很多没有学到的,打算学的更加深入, 目前在公司能跟我技术交流的人约等于没有了。也考虑过离职,但是离职有点不道德,毕竟核心东西都在我手上。 不知道是否有什么指导意见。

    2018-12-20

  • 刚哥 👍(368) 💬(2)

    绍文牛逼!

    2018-11-26

  • zhy 👍(192) 💬(3)

    感谢绍文分享!

    2018-11-26

  • sadhu 👍(51) 💬(0)

    stormzhang黑粉来的

    2018-11-26