本文是同事 Van Bruce 在知乎专栏上发表的文章, 是2017年1月时候对移动端的预测,不到一年多,小程序已经成了前端主流, 这里强烈推荐下移动开发关注下Van Bruce 的知乎


小程序带来的恐慌,要不要走移动端开发这条路?_java


微信小程序带来的失业恐慌

2010年,笔者初入Android开发的大门,犹记得当年诺基亚销量达到4亿6000万,市场占有率28.9%稳居第一,还在做kjava开发的比比皆是,丝毫不见颓势。然而iOS和Android的快速发展令我放弃了继续做J2ME程序开发,转向了Android这个新阵营(没有做iOS纯粹是因为当时太穷了…)

彼时跟同事说,J2ME的移动开发未来会愈发艰难,估计是绝难取信于人的。从表面上看,黑莓开发环境支持J2ME,诺基亚也仍然雄踞一方,iOS和Android还只是裂土分疆,连三足鼎立之势亦称不上。但这只是”当下的事实“而已,但从快速发展的趋势上看,已经不容小觑。

而我身边仍然愿意守着自己”一亩三分地“的诺基亚和黑莓开发者们,到了11年就开始艰难了,有的人选择转型iOS,有的人则继续坚守,然后12年,13年……坚守着直到被淘汰,直到没有选择。这种缓慢死亡的过程,现今回头来看,令人惶恐。

而微信小程序昨晚正式上线,令我感到了似曾相识的惶恐感。

从目前来看,在Android端实现的微信小程序,还仅仅是webview形式的实现


但是其想象空间却极为广阔,抛开未来将前端语言直接render成native控件的展望不谈,小程序能够享受怎样的”微信福利“呢?

  • 网络库:微信自带Mars网络库,针对弱网络优化

  • 自研的浏览器内核

  • UI组件库:小程序WXSS\WXML

  • 通信加密:mmtls

  • 音频、视频编码、解码

  • 文件解压缩

  • Etc.

可以想象,创业公司现在有必要招一个 Android 客户端和 iOS 客户端开发吗?并不需要,因为不只是大部分startup阶段的APP功能已经被小程序涵盖,而是小程序提供了一个完整的 APP 生态的解决方案——

  • 账号系统可以用微信登录

  • 后端直接用微信云服务

  • 前端只需要遵循小程序的UI设计风格,基本上可以无视 iOS 和 android 的 Material Design了。

  • 音频、视频需求,想象空间丰富(腾讯视频的小程序效果已经非常接近native体验)

IM需求?微信呗

可以想象,除了要做海外业务的创业公司之外,仅仅是做国内业务或者仅仅是工具类应用,小程序已经提供的便利,和未来将要提供的可能性,加上跨平台、低成本、快速开发的特性,招个小程序的开发,远比招两个客户端开发要”划算“。

或许听起来有些耸人听闻,大概因为我是一个非常悲观的人,我一直相信所有可能发生的坏事,最后都必将发生。从创业公司的角度讲,对移动端开发的招聘需求必将缩减,对于培训班出来的开发者,或者常年忙于业务开发,而没有自己核心竞争优势的开发者而言,恐怕面临越来越少的选择。从前技术水平一般的研发者进不去大公司还可以去创业公司混饭吃,而小程序的出现,将这条退路已经堵死了一半。

曾经移动端重估了前端开发的价值,现在,移动端本身的价值也渐渐在被重估。

移动端开发的红利逐渐褪去,市场趋于理性,对于管理型人才、有某方面技术深入的人才,当然不至于有失业的风险;对于平台来说,做海外业务的公司、中型或大型公司会做小程序方面的尝试,但移动端的职位不至于被替代……但若自身能力和平台优势两方面都不占的话,职位重要性必将随着小程序的发展越来越受到挤压。

倒退6年,移动端市场何等疯狂,培训班遍地,简历上写个空壳项目都能拿到个offer。但是所谓合久必分,盛极必衰,变化的风已经开始吹起来了,或精进,或转型,即不愿跟风而起,便只有深深的向下扎根一条路可走了。

对移动端开发者们而言,“普通”,几乎是条死路了。


还要不要走移动端开发这条路?

这个问题大概是我今年被邀请过最多次的问题。经过我很多天的深思熟虑,现在我的结论是

小程序带来的恐慌,要不要走移动端开发这条路?_java_02

不要。

理由……理由重要嘛?理由很多人都已经说过几百遍了呀——

  • 工作竞争压力大,一个岗位很多人竞争,不好找工作;

  • 薪资水平下滑,同比没有竞争力;

  • ……

所有理由都是对的,我发自内心认同。

所以我的结论也一样,不要做了,真的,我说的不是反话。

不得不承认的是,这一行的门槛真的太低了,或者换句话说,任何培训班能够放话说“零基础培训4个月”学员就能找到工作的技术方向,都是入门门槛不高的。比如现在时下最火的深度学习,对于很多人来说高中数学都学不明白,想要入行你连公开课的教程里讲的啥都听不懂。但是前端开发则不然。你再笨的人,一个礼拜也能入门HTML了,仨月也能搞出来个看着比12306好看点的网页来了。无论是Android还是iOS也都如此,学学布局,照着Hello World代码改一改,应用也就跑起来了,在很多人心里,这就算入门了,几年前这样的水平也能某个饭吃——哪怕你不懂算法,不懂数据库,不懂网络,甚至完全不懂你的UI是怎么显示在移动设备上的——用某些人的话说,用到了上论坛搜搜代码抄过来呗,基础有啥用,反正你也记不住。

就是这样的属性,决定了前端或者客户端开发成为了培训班的宠儿,大量培训班遍地开花。一方面靠着堂而皇之的简历造假,在求职市场上不正当的竞争,不要以为这是过去的事情,现在仍是如此,并且丝毫没有收敛。


小程序带来的恐慌,要不要走移动端开发这条路?_java_03


所以,工作竞争压力大,一个岗位好几百人争,我个人绝对认同。一个岗位的人员培训成指数级增长,持续了快6年,各个地方的培训班还在不断的增加,加上各个高校涌入的从业者,竞争压力怎么可能小呢?去年就听HR聊起过,一个 Android 开发职位的简历 open 出去,一个礼拜能收五百多封简历。

对于这种现状,我自己都感觉到十分焦虑。年前到年后这段期间,写了上千字的回答和专栏,无非是劝人多夯实基础,多学习增加自己的竞争力,不要在激烈的竞争中被淘汰掉。这里面当然夹杂着我自己的一些私货在里面——我说数据结构重要,java基础重要,IO和线程基础重要,也是我总是觉得,自学也好培训也好,你首先得是个“工程师”,然后才能是“移动开发工程师”吧?

然而我收到的评论和私信,最多的是:

“学那些基础有啥用?工作又用不到,用到了到论坛里搜一下就行了呗!”
“你就是秀优越感,你说的这些XXX都不会一样拿到了不错的offer!“
”你理解Android源码有啥用?你工作时候老板会问你么?“

有些人说,你瞎扯淡,我咋就看见几条这样说的?那是因为我看着碍眼删了评论,后来多到我实在是删懒得删了。

一方面,嚷着竞争压力大,僧多粥少,到处说着寒冬来了,问哪个行业比较好转行;另一方面,觉得深入学习没必要……我反复琢磨了这其中的逻辑,数日之后终于想明白了。

增加竞争力这种事……真的太麻烦了,还不如再花几个月,培训一下换个人傻钱多的行业去算了。

再加上现在移动端开发的薪酬水平,并不那么有吸引力,花那么大量的时间去提升竞争力,显得”性价比“非常低。对的,我也绝对认同这一点,不要说移动端开发了,做程序猿这一行本身离走上人生巅峰也很远。

就像知乎上的”温兆伦“,纯靠年薪也只是百万(这里我们不谈股票,毕竟这个可遇不可求),然而你到隔壁金融话题下看看?百万那只是起步好吗?北上广深买房,身价千万的答案有多少?再到成功学话题下,做个成功学培训的收入,也轻松百万了好吗?你再看看隔壁PUA培训什么的,闷声发大财的多了去了,做研发的有几个比得了?

所以说,从”面向工资择业“的角度考虑,2017年,还企图想要做移动端开发的同学们请趁早打消你们不切实际的幻想吧!甚至连程序员都不要做,快去加入金融行业,这才是一条明路!

对了,最近刚听说王者农药团队发了84个月的年终奖,所以搞游戏开发看起来也很有钱途,不如去做游戏开发吧,也是早日走上财务自由的一条明路。

这样想想看,还挺兴奋的不是嘛~ 说道这里,我不禁有些后悔,自己干嘛非要把兴趣看得那么重要呢。只可惜我这个岁数已经来不及转型了,机会摆在眼前,还望诸君弃暗投明的才是。

重申一遍,我是个坚定的悲观主义者。以上都是我个人观点,我所说的都是错的。