美文网首页移动产品PM程序人生iOS入的那些坑
大前端时代下App开发者的生存之道

大前端时代下App开发者的生存之道

作者: 没故事的卓同学 | 来源:发表于2017-02-11 23:39 被阅读9229次

在16年底我写过一篇谈未来的文章《2016年末闲谈iOS开发的未来》,当时刚参加完秋季的Qcon,整理了一下写了出来。到现在17年的春,过去四个月,社区里讨论气氛已经从《从入门到放弃》变成了《从入门到转行》、《从上架到上吊》。

你们这些人啊,中国有一句古话叫做富贵险中求。不要见风就是雨,这么来皮皮虾也遭不住。

移动开发市场很稳定

我们先从需求方看起。移动开发市场其实在过去半年里并没有太大的变化(就像股票一样,跌20%也算是正常的波动区间)。运营的朋友喜欢用“下半场”、“回归理性”这样的词来形容。

早期这个市场从无到有,赶上中国一批手机换代潮,大家都是野蛮成长。当一个市场在增长时,就算你做的不好,也可能因为市场总量在增加而活下来。又刚好赶上国家大力号召创业潮,给人一种到处是金子的感觉。我和扎克伯克之间只差一个点子,那我在沙县小吃吃混沌的时候有了个点子,就只差一个程序员了。

但是商业本来就是逐利的,万恶的资本主义先进性和我们社会主义当然不能比。所以这些没有商业模式的公司持续一段时间后终将退出舞台,就像前些年的跑马灯大功放山寨机一样,只是快了一些。

在16年里已经没有一个平台级的产品出现了。原本从web时代就有产品转移到app的就不列举了,比如优酷土豆。举几个例子:

  • 饿了么在11年拿的A轮
  • 滴滴在12年拿的A轮
  • 斗鱼在14年底拿的A轮

直播是因为刚好刚上中国的网络升级,带宽明显变高,价格也变低。不过说起来秀场这种模式原来在pc也存在已久。
我只是想说明,移动市场已经不是风口了。什么样的市场才能算是风口呢?我觉得就像雷军说的,猪都能飞。显然,现在猪飞不起来了。不然你飞个我看看。

但是中国目前大约有7亿的智能手机用户,这个流量已经够大了。只是增长有限。这些用户的计算能力依然通过手机实现(有些计算可能在云端,手机只是一个连接设备)。如果你看清了这个事实就能明白现在行业处于健康发展状态。并不是像某些行业在坍塌式的衰退。

好像都找不到工作啊

有的时候遇到问题真的要先想清楚是你的问题,还是这个世界的问题。
我现在到拉勾上搜一下10-15k的职位,把职位数量列出来:

上海 北京 杭州
iOS 104 152 70
Android 156 252 89
PHP 228 349 134
前端开发 500+ 500+ 268
Java 500+ 500+ 500+

我觉得如果公司发展健康的话,10-15k的这部分程序员应该是中坚力量。有的公司可能业务简陋,堆几个5k程序员就够了,这种职位没有参考意义。
假设你在上海是个iOS程序员想换一个工作,你有104个职位可以选。只是没有几年前有好多个offer可以选,但是我觉得这也是一个可以接受的水准。当然还是没有前端和java吃香。当然如果你在三线城市选择做移动开发确实是情怀值max,我敬你是条汉子。

那么我如果是一个新手呢?这个行业正常发展,就肯定也会需要对应数量的新人,当然这个比例是多少我无法估计。只是原来可能及格线是60分,现在标准提高到了80分。只是需要过滤掉后面的人。那是不是变难了很多?

如果你只是为了就业你就找最容易就业的岗位啊,比如前端和Java,赚钱还考虑什么姿势喜好。

如果你就是想做移动开发,宁愿选择一条稍微难一点的路。移动开发就算入门难度提高了,IT行业的付出收入比还是比其他行业高。你可以看下同个公司同样待遇的运营或者其他岗位需要什么样的要求。你也可以参考下其他系的同学,比如新闻、外语要获得一个类似的工作需要付出多少努力。讲真他们毕业时也就是有个工作就满足了,哪里敢奢求什么皮皮虾。之前培训三个月就出来月薪就上万也这就是了赶上了多少年一遇的黄金时代,哪能每天都是黄金时代。就知足吧,程序员这个职业几乎不看出身,你可以是大专,可以是没考上大学,可以是三流本科,只要花足够多的时间去提高自己。你要是真像那些考研的人那么努力依然不用担心就业的问题。

正题:移动开发的大前端时代

现在我们来谈下app开发的趋势。
在过去的半年多了,最大的变化就是js to native(rn & weex)开始逐渐变的强势。印象中rn是15年10月左右的开放的安卓sdk。为什么要强调安卓的sdk呢?因为本来这个技术的主要优势就是提高开发效率,原来两个端的代码只需要写一份。热更新这件事对于大多数团队而言只是锦上添花,并不是选择这个技术的主要原因。

在经过一些团队的实践后,无论是RN和Weex在实际项目中的使用已经没有太大的风险。虽然还是有诸多不尽如人意的地方,但是现在看那些用了这些技术的公司,比如携程、去哪、QQ、阿里似乎都没有回头的意思。

摘录一些一线公司的招聘上面写的要求或加分项:

  • 有React Native或者Weex的实战经验
  • 掌握一些前端开发技术,HTML/JavaScript/CSS等
  • 有ReactNative开发经验或者兴趣
  • 负责iOS APP原生及跨平台相关的关键模块定义和开发
  • 有跨平台开发经验和工具开发经验者优先
  • 了解HTML5,JS相关技术者优先

虽然现在还只是一部分公司在尝试使用这个技术,然而我认为他们开始在主营业务大部分应用这个技术已经说明了这个技术体系的成熟,只是早期在最佳实践或者一些工具链会有所欠缺,但是这不会影响这个趋势,只是快慢而已。

有句话叫语言决定世界观,我把这个阶段称为大前端时代。

因为业务代码主要由js构成,而这部分一开始的动力来自传统前端。但是从大一点的角度看,离开了服务器和桌面都可以称为前端也没有不妥。不过看到有的公司称为“大无线”,这个叫法也好理解,不过猜测可能直接带“前端”会让原来一些native的开发者不适应所以这样称呼吧。

接着我们来思考一个问题:假设js to native是半壁江山,那么代码是前端写还是app程序员写?

这里要意识到一个点就是:JS Native不能完成native所有的功能。也许是性能的原因,也可以是其他一些客观的原因。比如逐帧动画,在RN体系下肯定就是要native,不然掉帧掉成狗。再比如一些第三方的sdk,可能人家就是写好的native给你,你需要native调用。

在大前端的时代下,一个合格的开发者显然是 js + iOS / Android 。可以是一个熟练的前端学习一点native,或者是native程序员会js。如果考虑到现在公司状况进行转型,一个合理的路线是app开发者开始学习以js为主要开发语言的开发状态。

如果此时公司业务没有增长保持现状,因为这套技术提升了开发效率,肯定要进行“人员优化”,淘汰掉不能适应新体系的程序员。其实就算按照劳动法的规定,赔偿N+1,假设你做了2年,也就是赔你3个月的工资。如果公司想省这笔钱,就会故意把你调到不相干的部门,比如你是iOS,就让你去后端写php,让你难受自己辞职或者以你后端工作绩效不合格逼走你。当然了。以我国管理者的智慧,想逼程序员走的方法肯定是很多。

当然比这更值得思考的是:从这里离开以后你又要从哪里开始呢?不过是更举步维艰。聪明的做法是顺着时代的浪潮。而不是固执的被拍死在沙滩上。

转...转...转行?

我有一句话不知当讲不当讲。。。



没有金刚钻别揽瓷器活。
我有一个朋友,有次一起吃饭我问他最近在干嘛。他说在看python,我说怎么想到看python了。他说看了python打算转行去做大数据或者机器学习,感觉这个比较来钱。其实很多盲目涌入的开发者就是这样的素质。我只想告诉你们,如果21天就能搞大数据了,那你怎么不去报个一周的速成培训班?原来培训iOS还要几个月呢。

多年前有一个畅销书,中文翻作《大数据时代》,英文名叫《big data》。



这本书写于2012年。其实摩尔定律已经算是失效了,回想一下桌面端的CPU的计算能力与五年前的2012年相比并没有太大的进步。作为开发人员请想一下,从大数据这个概念被社会理解,到我们开发中真正开始大规模的应用在身边的企业中(Map/Reduce 在 06 年被引入hadoop项目),中间过了多久?即便现在扣掉体量巨大的公司一般规模的公司里又需要几个大数据工程师?有iOS和安卓想凭几个视频几个21天上手转行拿高薪的多吗?

现在开始热的VR,大家都觉得是下一代计算平台,问题是,这个你等的到吗?你又怎么为一个没有统一技术标准和框架的平台做准备?如果你有这个能力,你根本就不用担心就业的问题。大多数人不具备这样的能力。

当然转行也可以是一个务实的选择,如果你愿意的话:离统一世界只差500年的JS,最好的语言php,还有:



欢迎关注我的微博:@没故事的卓同学

相关文章

网友评论

  • sdxuit:老卓,精彩啊,学到很多👍
  • 乔英:找IT方面的工作还是去大城市比较有发展钱景啊
  • jackiehoo:文章写的很赞,没想到一两年过去,工作真的很难找啊,我在平安做高级开发一年了,现在出去都不好找工作。世风日下啊。。。
  • 夜郎人:当下的技术变革很快,不能保证哪一种语言一直是很流行,我们只有去学通一直去拓展别的语言开发,语言之间也是相同的;形成之间的技能树但是要有一个主干。
  • 孜孜_:这个行业容易造就一批不善言辞,闷头闷脑的宅男……真要钻研技术,对性格会产生很大影响,不知楼主怎么看
  • SomeBoy:确实iOS这一行确实不是太好混了,连跳槽的勇气都没了
  • DevelopMyLife:Python 人人都会点,如果只是一般水平,转行大数据人工智能什么的还是算了。
  • 乔布司:卓同学很多话都说到心坎里来了。对于大公司技术大牛要的就那几个,大牛把底层核心代码封装好,剩下的全部交给搬运工了。当然iOS招聘职位变少了我觉得不是完全是受需求影响,现在真的混在iOS好几年的,谁没有自己的圈子,很多公司招iOS都已经不在网上发招聘了,我目前所在的这家公司就是,除了iOS其他岗位还有网上招聘,iOS已经只接受内推了,所以我想这样招iOS的大有人在,你想想一个iOS招聘发出去,一小时不到收到上千份简历,我想HR也是崩溃的。
    关于发展的问题我是这样认为的,既然是iOS开发我们应该还是不断的提升iOS得技能,其他的语言可以有兴趣的带着看,但不要见水火就去看两眼,最后啥都没深入了解,还是各方面都菜鸟的小程序员
    戒惜舍得:@乔布司 你说的底层是指写C还是C++?
    乔布司:@没故事的卓同学 目前市面上大多数的所为iOS开发,他们的技术还是停留在搭界面,而大公司所要的高级iOS工程师是要能写底层的,优化性能。而小公司的iOS开发无非就是用第三方,拼拼凑凑一个APP出来了,更像搭积木。而公司要的是能做出来积木的人
    没故事的卓同学:@乔布司 说的挺好。不过我招一个高级的iOS工程师还是收了一百封简历都面不到一个靠谱的。
  • 吃蘑菇De大灰狼:现在的行情其实是筛选真正符合未来需求的人,夯实基础,把握趋势,方能更进一步。谢谢卓同学的指点~
  • 2caa0c533213:说的好
  • f81c8c954040:转行写游戏算了:joy:
    FanChason:@功夫肥猫靈靈九 cocos2d-x 和 unity3d 都有,公司有不少游戏团队,本人不写游戏
    f81c8c954040:@CHASON_FAN 你们公司用什么写游戏
    FanChason:@功夫肥猫靈靈九 游戏似乎也不好混,现在正在游戏公司
  • 江流儿涛走云:每天我都是写着js,骂着js,因为感觉怎么写,自己都是这么弱,原地打转思密达
  • b59b5a9214e5:正在黑马培训安卓 一波真实伤害
    o0阿拉斯加的狗0o:@b59b5a9214e5 除了牛逼我还能说你啥,都什么年代了,还培训iOS,自寻死路。。。
    doyle_诗豪: @b59b5a9214e5 勇气可嘉。
    守护地中海的花:@b59b5a9214e5 厉害 勇敢
  • 6acea6c9e2de:二线城市 大学生自学iOS 出来发现连实习岗位都没几个 有点打击人啊
    咋么野:一样
    HideOnBush:@19950908 我也一样:cry:
  • 开发者头条_程序员必装的App:感谢分享!已推荐到《开发者头条》:https://toutiao.io/posts/dv3edu 欢迎点赞支持!
    欢迎订阅《卓同学的iOS和技术分享》https://toutiao.io/subjects/22992
  • hauibojek:我就是三线城市做iOS开发的那个😂
    FanChason:@HUswIft 能打听下在哪个城市?待遇如何吗?一线城市工作机会是挺多,但是安居的压力还是挺大的。想了解下二三线城市的就业情况:yum::kissing_heart:
    hauibojek: @ChasonFan 没有啦,公司6个iOS开发。。
    FanChason:@HUswIft 那岂不是被公司热捧!:scream:
  • 左左4143:中枪,iOS开发一枚,技术菜的抠脚那种,真正自己独立完成上线的只有两个APP,年后来了老板跟我说公司快发不出工资了,让我提前找着点工作,感觉自己比较幸运,没有在那种拖欠工资逼你走的地方工作,感觉移动端确实正在经历变革,有时候也会很迷茫,后悔当初为什么选择了这个技术,但是转念一想,就算当初选择了xx,xx,xx等,谁又能保证靠这个一劳永逸,如果看着什么技术好就业,挣钱多就去学,那我感觉计划永远赶不上变化, 人最重要的还是自己的价值,所以看了你的文章之后,我决定转后端!(哈哈😀 ,最后一句玩笑话,我也感觉传统的前端+iOS+安卓的形态确实有浪费人力的嫌疑,必定会有新的技术手段来替代,我们能做的就是关注行业变化,适时调整自己,不被淘汰)
    没故事的卓同学:@swjtu_wj 哈哈哈。来人哪,拖出去。。。
    swjtu_wj:冠希吗? 有句话不知道当讲不当讲......
    灯不利多: @Elephan_z 谁能保证做什么能一劳永逸,说的好
  • Link913:作为ios➕音视频表示不虚
    Link913:@我帮你打水 :stuck_out_tongue_winking_eye:我也是个坑啊
    AppleIdGX:@SkyHarute 求带入门
  • 989078cec84b:人不能去顺应时代,而是「让时代顺应自己」
  • 守护地中海的花::scream::fearful::relieved::blush:加油吧自己
  • 57f21ae7bdab:我的理解是,一个合格的程序员,本身具备的素质就是全面发展的。作为app开发者,当然要去学习相关的前端技术,拓展自己领域里的技能,只会一样是很难永久生存的。至于提到的Python,我个人也是很鼓励学的,转不转行完全看个人情况和机遇。卓同学应该是针对的那些完全没主见,随波逐流的那些人。:smile:
    没故事的卓同学:@Sealed_Ace 说的很好
  • 07d93406ec39:感覺最後總結的一句話就是 原生開發也要老實寫js 不然你混不下去的
  • 芒果微笑:我中文不太好…… 可以解释一下那发展之道到底是什么了?
    Joy___:@芒果微笑 睡大觉:stuck_out_tongue_winking_eye:

本文标题:大前端时代下App开发者的生存之道

本文链接:https://www.haomeiwen.com/subject/ufroittx.html