iOS 2019 隆中对

9,683 阅读12分钟

又到了回首过去,展望未来的时刻。最近密集的企业裁员消息促使我们重新思考一个问题:如何规划我们的未来。前有“程序员干到 35 岁就没人要了”,后有“iOS 开发没人要了”,真是惨呢。

到底是不是“寒冬”

有人统计后发现,过去每年年底都有人说是寒冬,只是一个月经说法。

也有强者说,我觉得“寒冬”是弱者的说辞,我还是很好找工作的呀。

我觉得上面两个逻辑都是欠妥的:

我以前用小拳拳锤你胸口,你说疼。我现在用锤子锤你胸口,你说哎呀,疼!!!你以前说疼的时候不怎么疼,那现在也不疼。

至于“寒冬”是因为你不够强的逻辑有句老话叫做“站着说话不腰疼”。按照这个逻辑只有南北极才能叫冬天了,非得所有人都觉得冷才能叫冬天?

我觉得招聘的数据可以最直观的体现现在的行情。100 offer 的数据显示:相比于 2017 年,2018 年 Android 程序员人均面邀数减少 40%,iOS 程序员降幅更高达 57%

近乎腰斩,都打五折了你说是不是大减价?

从”稀缺”到“过剩”,再到?

一个行业处在上升的时候,市场上的技术人员肯定是稀缺的。业务需要有人做,不可能等两年能招到经验丰富的人才启动项目。所以初期会有大批的初级从业者涌入,招聘市场的反馈又肯定会慢一拍。不断的有新人涌入,而且后面的新人的数量也在不断增加(我国培训机构的效率真的是没得说)。供需真正到达平衡点的时候,招聘上游培训班的人并不知道,还在持续产出。因此在某个时期市场上出现了大量的新手过剩。这是当时广为流传的“iOS没人要了”的起因。

一个岗位一天收到几百封简历的事情大家可能都有耳闻,我说一个我身边看到的例子,希望能让大家对当时的情况有一个更好的理解。当时有一个人朋友的朋友想学习 iOS 开发,于是就加了我微信想问咨询。他在一个 2.5 线城市的一个医院药房上班,以他的专业能力在这个行业做下去也没有什么上升空间。他一直想找一个机会换一条赛道。当时移动互联网也正是风口,他又看到那些招聘机构的广告,培训几个月月薪 8000 以上,不乏上万。对于一个传统行业的人来说,这是一个很诱人的机会。他找我的原因是纠结是去上海上一个线下的培训班还是直接上那种线上的培训班。我说你连程序是什么都没概念,花更多的钱去到线下也不会得到什么本质的提升。先报个初级班先了解一下什么是编程再考虑要不要去线下。

他只是那批找不到开发工作的人的一个缩影,他们期待有一个机会可以通过几个月的努力,月薪上万改变人生的轨迹。“浮躁”这个词可以特别好的表示那个时期的状态。也说明了程序员真的不是一个完全没有门槛的职业。当时肯定有大批的新人找不到工作,然后另谋出路,但是对于真正有志于做编程工作的人影响并不大。还是很容易在这些鱼龙混杂的人里脱颖而出,所以当时虽然一边是论坛上找不到的工作的人的抱怨,另外一边社区里却充满了“快活”的气氛。

不久之后一大批跟风创业公司倒闭,这些公司的程序员当然也失业了。于是“iOS”开发没人要了又有了传播场景。但是依然是大浪淘沙,如果一个程序员没有放弃对技术的追求,他还是可以很快找到下家。但是本来只是因为运气好找到一个高薪的工作的人,自然是要被市场淘汰的。 死掉的人不会开口说话,我们在网络上不怎么看到我转行了不干 iOS 开发了,不是这件事没发生。是转行的这群人没到网上说,或者他们说了没进入到我们的圈子里。我们没看到,但是它在确确实实的发生着。冷静的算一算就知道每一波都至少淘汰了几万人。

可能没有下一个“春天”了

那么现在是怎样的情况呢?18 年上半年的智能手机出货量同比比去年下降了 10% 左右。移动互联网能渗透的地方都已经渗透了,移动市场的用户数已经接近饱和了。更重要的信号是:iPhone 第一次卖不动了。虽然从乔帮主去世以来,大家都说苹果要完,然而伴随着一次次的“真香”后苹果的市值上了万亿。不过随着 XS 的价格再一次上涨,这次是真的卖不动了。而且在中国的营收下降了一半!!!

过去几年里移动互联网也没出现新的独角兽了。本来也许各种“共享”类 app 算一个,但是现在已经明显都失败了。互金的 P2P 反而倒闭了一大批。资本都是逐利的,在市场初期可以接受亏损,因为认为后期有盈利的可能。现在行业格局已经确定了,一个公司赚不了钱就是赚不了钱。

那么最后面临的情况是,你被裁员了,虽然你有着不错的技术能力,但是你也未必能找到一个能与之匹配的下家。以前因为不断有新公司的出现,与之对应就不断有新岗位放出来。现在市场上新的公司少了,对应的坑也就少了。你要去的更好的位置早就有人坐着了,除非有人退出了才会招一个人补上来。

我来量化一下这种感觉:现在在拉勾上搜杭州 25 - 50 K 的 iOS 岗位只有 4 页。扣掉一些只是挂着占位的企业,其实你真正可以投的岗位大概就是 30 个岗位。这些岗位再根据你的个人喜好挑一些公司面试,再到你通过公司的面试,最后你的选择余地其实是很有限的。你还要考虑到随着时间的推移,满足技术专家能力要求的人会越来越多,但是岗位并不会随着增多,岗位是根据市场增长走的。

我觉得未来大概就是现在桌面软件的场景。电脑依然在卖,桌面软件的开发也有市场。但是你会发现过去几年里,用来用去都是那么几个软件。每年又有多少让人惊喜的桌面软件出现呢?只不过移动开发的基本面比桌面更大一点。

柳暗花明又一村

算命经常会说若干年后你会有一场大劫,但是你现在可以花 998 让他做一个法事,这样可以帮你渡过那个劫。我觉得这句话也适用大多数 iOS 开发:数年后你会有一次主动或者被动的离职。前面我说了,因为市场饱和如果继续这样下去不做点什么找到满意的工作的概率不太高。下面是我的几个想法。

硬转行

移动市场发展了 10 年停止增长,那我换个继续增长的行业行不行?你还别说,真。。。真的可以。这个思路你唯一需要担心的是:你完全换了个岗位,你原来的开发经验有多少的转换价值。假设你做了 3 年 iOS 开发,然后你自学了一些后端技术,写了几个小项目,满打满算一年后端的开发经验。那么你跟做了一年后端开发应届毕业生开发能力能拉开多大的差距?好的情况下你原来的开发经验可以让你更快的学习后端的技术。比如你有更好的代码质量,网络、并发、操作系统相关的你可以学习的更快。虽然你现在后端相当于 1 年经验,但是两年后你的技术能力已经相当于三年的后端。这样虽然初期你要接受薪水下降的预期,但是两三年后可以追平正常的水准。

值得关注的跨平台技术:Flutter

立足于现在有的专业,再去夺取一些其他人的底盘把蛋糕做大是一个有效的思路。这就是为什么各端的人发展到稳定的阶段都希望有跨平台的能力的原因。

JS 是一上手简单的脚本语言,各个平台上又有现成的 JS 引擎。上层使用 JS 描述逻辑,各端提供 native 能力给 JS 引擎,是一个相当可行的跨平台的方案。这也是现在主流的应用层跨平台技术模型。但在 RN 发布了多年后,大家意识到了这个模型的根本性弱点:1. JS 作为一门动态脚本语言,有着天生的性能缺陷。2. JS 引擎在各端有着不同的实现,如果底层的 JS 引擎 bug 上层的框架除了避开没什么办法,甚至调试起来都很困难。

所以下一个替代性的框架应该是能把程序编译成二进制文件的静态语言,各个端的引擎有着强有力的控制能力。Flutter 采用的正是这个技术架构。看好 Flutter 另一个原因是 Flutter 符合谷歌的利益。Flutter 如果要成功,需要谷歌在在各端提供完善的支持,这不是一个小工程。需要数年的不断投入,如果厂家不能从这个技术中获得利益那么这个技术一定发展不长久。谷歌需要一个可以自己控制的开发环境未来可以使用在自家操作系统 Fuchsia 上。

做个和苹果的对比,使用 Swift 可以开发 iOS 上的应用,也可以基于 AppKit 开发 macOS 上的应用。UIKit 是基于 iOS 提供的 UI 框架,现在为了统一 iOS 和桌面的开发体验,苹果未来会推出 UIKit for mac。这样可以使用同样的 UI 框架、语言开发两个平台的应用。对于谷歌也有着这样的可能,基于 Flutter 可以是移动端的 UI 框架,也可以是未来 Fuchsia 上的 UI 框架。

Flutter 相比基于 JS 引擎的框架有着更广阔的前景,能力也更强。我建议大家多关注一下 Flutter 的技术发展,未来说不定是一个很有用的技能点。

全栈

这里的全栈指的不是什么什么都会一点的纸糊全栈,是一专多精的那种。

类比音乐表演里的两种角色:

  • 一人乐队。演奏歌曲时一个人同时处理多种乐器。
  • 交响乐的作曲家。需要知道各个乐器的特色,然后写出各个乐器配合的乐谱

我们追求的不是一人乐队,不是一个项目里我写点后端,再写点前端。而是更高的要求,能理解各个技术栈如何连接,能够解决系统性的问题。而不是把自己局限在一个小的细分领域里。

融合机器学习

2018 年,机器学习终于过了概念的顶点。事实是检验真理的唯一标准,技术不能只留在纸面上,流行最后还是要基于能够确实的提高生产力。虽然机器学习不是宣传般的包治百病的灵丹妙药,但是不可否认机器学习在一些领域有着极高的利用价值。

现在机器学习的使用场景一定是与某个细分领域结合,因为不存在一个通用的人工智能模型。一定是某个业务的从业人员意识到有一个问题用机器学习可以解决的更好,然后使用某个机器学习框架解决问题。是一个自底向上的模式,而不会是自上而下式的。因此在做好了自身的业务领域后,可以多关注一下如何把机器学习的技术结合到现有业务中。

有一些场景机器学习的模型一定会跑在移动设备上,无论是基于 CoreML 还是 TensorFlowLite。未来机器学习成为 app 核心的卖点后,对这个技术有所了解也一定会为你加分不少。

总结

以上的建议不是说现在就要做出一个决定,采取怎样的行动。只是一个抛砖引玉:如果几年后 iOS 不景气,你会如何做呢。所以趁现在还有时间,规划一下自己的未来的方向。