大家,欢迎走进今天的法治在线,我是吴老师,今天从另外一个维度,为大家解读《中兴42岁程序员坠楼事件》。

容易的生活,先引发大家的思考

在正式开始之前,先给大家看一段小视频——《容易的生活

02:22过后。。。

大家有没有细思极恐的感觉?

好,那么我们先不讨论这个,还是先回到中兴42岁工程师坠楼事件当中。

事情的经过大概是这样的:一名中兴42岁工程师,本科考入北京航空航天大学,毕业后曾在深圳华为公司工作8年,在此期间又通过自己的努力考取南开大学的硕士研究生。2011年跳槽到中兴网信科技有限公司,具体工作在研发部门搞研发工作。然而于2017年卷入中兴公司内部斗争而被离职,最终于2017年12月10日从公司的高楼坠下,结束了自己宝贵的生命。

在这个后真相时代,真相究竟是什么也许可能我们很难知道,但这个悲剧再度引发了我的思考——写程序是一门青春饭吗?

我一直都很关注这个问题,或者说我一直对此都特别焦虑。

其实我是一个有比较强危机感的人。也许跟我高中的经历有关。初三的时候,也不知道怎么滴,当时化学老师总是跟我们说,突破了中考,上了重点高中,日子就好过很多,轻轻松松就能上大学。结果我信了,然后高一的期中考试给我来了一拳。事后没过多久,高中的语文老师在一次课上告诫我们,需要“居安思危”(其实我一度忘了这个词,但意思一直记着),这个词让我在高中和大学都成了学霸。可能也是这个词一直给我带来危机感。

针对这个问题,今年我得出一个阶段性答案——对于不具备反脆弱性的程序员来说,写程序确实是一门青春饭。

反脆弱性,即迅速应对变化的能力。

因此,不能迅速应对变化的程序员,终究会被时代所淘汰。

那问题来了,为什么需要迅速应对变化?

某高人曾提点过我,思考一个问题,最好从“古今中外,上下左右”这几个维度来找参考系。

需要应对变化,肯定是因为某些因素发生了改变才需要应对变化,那接下来,我们从三个方面来聊聊究竟是什么发生了变化导致我们需要应对变化。

这三点分别是:

  1. 时代在改变
  2. 市场在改变
  3. 别人家在改变

时代在变化

“古今中外”,这个维度让我想到了时代。

每个时代都有不同的主题,但,有一个主题是各个时代共有的——提高社会生产力,简单来说就是提高效率。

那我们熟悉的技术领域来举例吧。

前端的发展史

我们先看看前端的发展史。

  1. 1994年可以看做前端历史的起点,这一年10月13日网景推出了第一版Navigator;这一年,Tim Berners-Lee创建了W3C;这一年,Tim的基友发布了CSS。还是这一年,动态web网页设计的服务端脚本PHP诞生。
    • enter description here
  2. 1995年网景推出了JavaScript,实现了客户端的计算任务(如表单验证)。
  3. 1998年10月DOM1级规范成为W3C的推荐标准,为基本的文档结构及查询提供了接口。
  4. 1999年W3C发布第四代HTML标准,同年微软推出用于异步数据传输的ActiveX,随即各大浏览器厂商模仿实现了XMLHttpRequest。这标识着Ajax的诞生,但是Ajax这个词是在六年后问世的,特别是在谷歌使用Ajax技术打造了Gmail和谷歌地图之后,Ajax获得了巨大的关注。Ajax是Web网页迈向Web应用的关键技术,它标识着Web2.0时代的到来。
  5. 2006年,XMLHttpRequest被W3C正式纳入标准。
  6. 2006年 John Resig发布了jQuery,jQuery主要用于操作DOM,其优雅的语法、符合直觉的事件驱动型的编程思维使其极易上手,因此很快风靡全球,大量基于jQuery的插件构成了一个庞大的生态系统,更加稳固了jQuery作为JS库一哥的地位。
  7. 2008年,起初制约Web开发从后到前的因素很简单,就是前端很多事干不了或干不好,当时的浏览器性能弱,标准化程度低。特别是占据大量市场份额的IE,不仅ugly,并且buggy。于2008年问世的谷歌V8引擎改变了这一局面。现代浏览器的崛起终结了微软的垄断时代,前端的计算能力一下子变得过剩了。标准组织也非常配合的在2009年发布了第五代JavaScript,前端的装备得到了整体性的提高,前端界如同改革开放走进了一个令人目不暇接的新时代。
  8. 2009年AngularJS诞生,随后被谷歌收购。2010年backbone.js诞生。2011年React和Ember诞生。2014年Vue.js诞生……前后端分离可谓大势所趋。

以上有几个时间点比较特殊,分别是:

  1. 1998年已经确定了DOM1级规范,但jquery在2006年才出现
    • 结合前端编辑器来看就很有意思:
      • 记事本
        • 1985年
      • Dreamweaver
        • 1997年12月第一个版本。只有Mac OS版。
        • 1998年3月,第一个Windows版本
      • Notepad++
        • 2003年11月24日
      • Subline
        • 2008年1月18日
      • Atom
        • 2017年8月8日
      • Visual Studio Code
        • 2015年4月29日
    • 这说明很长一段时间,前端的开发者都处于没有代码提示或者代码提示弱的状态。如果这不直观的话,看看前端document的操作就明白了(ppt上贴一张代码图片
  2. 2008年chrome出现之前,所有web前端开发者都需要兼容IE浏览器

前端的发展史,从纵向来看,前端的页面承载着越来越多的功能,不再是最初的仅仅只是提供文档预览。越复杂会导致开发者开发的时间越长,这就催生出高效编辑器之类的工具,以及jquery之类的框架。

同样,浏览器标准化程度低的魔咒被chrome于2008年打破,实在是为当年苦苦兼容IE浏览器的前端工程师致敬。

然鹅,虽然前端发展到现在很多方面都取得了很大的进步,但,这就够了吗?

不是的,前端还在继续改变,还在继续往高效的一面倾斜。

来,我们看看一个很近的例子:

tab动效切换demo

这是元旦的时候,尧晖做的一个动效demo,一共花费了1个半小时。动效一直都是比较费时的事情,除了需要想具体的实现方案,还需要调里面的细节。但,如果我现在告诉你,以后都可以不写动效啦,有一款工具可以将设计的动效装换成代码——【第921期】大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

请问,你愿意使用吗???

这不够直观,那么再来一个更痛的例子——pxcook,现在我们使用的标注工具。在没有这个的去年,我们的工作流程是设计师必须帮我们标注好设计稿(其实这个还好,有工具自动生成),但是,前端写页面时就尴尬了,特别是写阴影、渐变之类的,需要跟设计师一点点调。那个场景脑补一下也非常搞笑。而现在,直接copy代码就可以了。

这还不够,还有更惊讶的,【第926期】UI 设计师未来的全新工作方式?React - SketchApp 新手上路

这是啥?有了它,你压根就不用再写界面了! 满屏的效率,激动了有木有?

再看看我们的安卓

  1. Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes ,一定会让你的写代码的生活更加美好。
  2. Kotlin: 作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。
  3. React Native: 跨平台一直是程序员的梦想,而且移动应用的跨平台解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具。(解决了需要维护ios和安卓两套代码的麻烦)

小总结

无论你是否愿意,时代都在慢慢发生改变,天平一直都在往高效的一边倾斜。这影响着各行各业的每一个人。

正如《集装箱改变世界》里说的,集装箱的出现,改变了水手、码头工人甚至是码头附近妓女的命运,同时催生出造船业、起重机等的发展。

时代的变化早在我出生的时候就深深地影响了我。

市场在改变

除了时代,我们的市场也在发生变化。

先聊一下技术入门门槛

如今,其实技术入门的门槛其实已经很低,在不久的将来,其实有保持的趋势,甚至会更低。

为什么这样讲?

首先看看国外的情况:

  1. 首先聊聊iOS开发
    • iOS的同事可能都清楚,当年没有mac的时候,如果想学iOS开发,恐怕只能安装黑苹果,然鹅,当年安装黑苹果的同学可以发表一下当年的感受。
    • 再看看今天,如果要安装黑苹果,上淘宝就可以解决
    • 甚至,如果想学Swift,可以有三种途径:沒有 Mac 如何學習二十一世紀的程式語言 Swift ?
      • 其中最惊讶的是:Apple 為了實現人人都可以學程式,人人都可以寫程式改變世界的夢想,精心研發推出了 iPad 上的 Swift Playgrounds App 。
  2. 再聊一下美国和英国
    • 2014年,英国提出了“编程者国度(A nation of coders)”计划。2016年1月30日,美国总统奥巴马发表演讲,宣布了“全民电脑科学教育(Computer Science For All)”计划。
  3. 最后看一下我们国内:
    • 2000年-2005年,当时网络还不算非常普及,网速也。。。你懂得。还记得前年在东莞一家企业工作时,当时我们老大正是处于这个时代,当时他们学pl/sql、学VB等都是拿着书硬啃。
    • 但看看我们今天,网络资源不止丰富,而且非常泛滥。每一项技术一出,各种文档、视频、教学视频等等都相继出现,我们学习新技术已经不单局限于书本,各种资源可以给我们利用。
    • 再看看当下的培训机构,如雨后春笋,数量之多,让人惊叹(这里还不包括线上的培训机构,如慕课网之类的)

另外,随着技术的发展,各端都往高效的路线发展(呼应上一part--时代),第三方工具库、第三方工具等等在我们这个时代一点都不缺。

很多时候,我们并不需要自己写代码,善用谷歌、善用github,往往可以拼凑出我们需要的系统。

技术入门的门槛越来越低

再谈一下市场需求的改变

2007年第一代iPhone发布之后不久随着网速的提高以及手机计算能力的上升,市场迎来了“应用元年”,但目前应用类在市场上已经慢慢饱和,迎头赶上的是游戏类。(参考:最新最全2017苹果应用商店年终报告

市场绝不可能一直停留在一个战场。

基础设施变化——网络变快、硬件性能不断升级等,很容易催生出一个个新兴的市场。

拿前端来说,就经历过从pc到移动端再到微信公众号,以及现在的小程序、小游戏。

还记得,之前跟一些老一辈的前端交流时,有一些就错过了pc到移动端的改变。移动端刚刚兴起时,并不是所有的前端工程师都看好移动端,很多人都觉得基于硬件的限制和网络的限制,移动端没那么快可以兴起,但最终的结论却让大家都非常意外。(参考:你清楚1G–2G–3G–4G–5G之间的区别吗?),从3G到4G,仅用了4年的时间。网络和移动设备的兴起,让前端的阵营从原本的pc端转移到移动端

这里跟大家预告一件事情:

之前我们的CTO瑞宏试过用U3D打包H5游戏,发现底包是4M,按这样来算,预估一个消消乐游戏的H5包在10M左右,而现在4G的下载速度平均在400K,这样算,一个10M的U3D H5包的加载时间大概需要30s。如果按网上的说法,5G的速度是4G的10倍的话,只需要3s的时间。

这样说的话,也许在5G时代,我们前端引以为豪的白鹭、coco和laybox可能会迎来U3D的挑战。

小总结

时代的变化,无形中也带动了市场的改变。市场的变化催生出一个又一个新的战场。我们需要面对的已经不是一个维度的变化,而是多个维度的同时改变。

别人家在改变

聊完时代,看完市场,最后我们看看别人家现在如何。

滴滴出行,一家我看错了的公司。为什么说我看错了,这里还真有一段故事跟大家聊聊。

前年,在校招的时候,尧晖过关斩将,拿到了深圳Uber的邀约,当然,最后因为各种原因,并没有去(具体百度关键字uber实习生)。但正因为这件事,让我关注起滴滴出行。当时我自己下了一个判断——滴滴出行的模式基本上是复制了uber,并没有什么创新可言,如果Uber在中国起来了,滴滴会非常危险。

然而,时到今日,滴滴的表现完全推翻了我这个狂妄的预判。

滴滴出行,已经不单只是表面上看到的呼叫快车的形式,他们在背后做了很多创新的点。

从技术上,他们结合大数据以及人工智能,缩短了用户等车的时间。

要做什么才能使得我们提供的服务比别人好?最核心的力量在哪里?肯定是大数据和人工智能。比如说北京,我们把北京划成特别多的六边形的小格子。我们过去几年在积累每一个小格子(的数据),雨天、晴天、高峰期、平峰期、上班、不上班,从这个小格子里面出来多少人,这个格子里的人又去了哪里。我们不断积累,这个人工智能系统相当于在学习。然后就有了预判功能(预测未来的供需情况),这个非常重要。因为在短缺经济的情况下,车不可能即刻出发,必须是提前。这个预判功能,今天我们的系统能够提前15分钟预判,每一个地方大概出来多少人,准确率现在是85%-90%,还会不断提升,越来越准确。

再结合和政府合作的,提供街道的红绿灯的优化方案等改变,滴滴目前已经不单单只是一家提供简单呼叫快车服务的公司。

滴滴的改变造就了今日的成绩。

可能谈公司对大家来说有点远,那么我们看看其它团队。

在小米发布了吃鸡游戏之后的一周之类,腾讯团队也马上发布了自己的吃鸡游戏,这种速度,背后是非一般的付出。

以前,一些公司996的作息时间,可能在很多人眼里已经是非常不人道的了,但是,吃鸡游戏的团队的作息时间是247,什么是247?一天干24小时,一周干7天。啥?怎么可能?怎么不可能,24小时3班制。

大总结

无论是公司还是团队,甚至是个人,都为了在时代的变化以及市场的变化中生存下来或者从中获利。付出的都是非一般的努力。

时代的变化就像跑步机,启动之后,我们需要不停地跑、不停地跑才能保持原地。但是,不同的是,这台跑步机是永远不会停止的,其速度也不是我们能够控制的,而且,它一直在加速,一直在加速。

《爱丽丝漫游奇境》里红桃皇后说过一句让人很费解的话,“在我们这个地方,你必须不停地奔跑,才能留在原地。”之前,我们以为这是童话;2017年,才意识到这是现实。

结论

既然时代、市场和别人家都在改变,那我们还有什么理由“一成不变”?

对于改变,2017年又给我了一个狠狠的巴掌。

我曾一度认为,自己非常积极改变自己,非常积极给自己充电。

但我的改变很多时候都是掩耳盗铃式的改变,是伪改变,表面上再改变,但实质压根就没变化。

为什么这样讲?

我总结了三个参考系来判断自己是否在2017年中积极改变。

  1. 经验
  2. 姿势
    • 拼与熬,两种姿势
    • 如何才是拼,总结了三点:
      • 能用1小时完成,绝不用2小时
      • 可以通过改变,将原本用1小时的任务用半小时完成,那就去改变
      • 今天还要完成计划中的学习任务(而不是今天太累的,明天再说)
    • 想引用动漫中主角逆转的插曲来表达怎样才是拼的姿势
  3. 学习能力与学习效率
    • 人生的开挂利器
    • 这点留一个悬念,下回分解

早知道比晚知道的优势不言而喻,如果时光可以倒退回2005年,我肯定会大量收购比特币,如果时光倒退回1998年,什么都不做,先注册weibo.com和weixin.com两个域名。

人生也是如此,越早知道自己需要改变,越早知道自己应该怎样改变,对我们越有利。

生活从来都不容易,当遇到生活中有两条路的时候,选择那条难走的路。

我的演讲到此结束,谢谢大家!

观众互动

1、东辉:有人说程序员是一门让大家或者让自己失业的工作,发哥你怎么看?

(发哥)答:正如我在PPT中所说,只有不具备反脆弱性的人,才容易被取代。

2、田楠:其实我也有调闹钟,每天5点,很想练就,但总是起不来。在日常工作中精力分配是否有什么独到的分享

(发哥)答:精力分配是一个很大的点,可以用来说好几节课。番茄工作法,定期稍微休息下,符合人体的生理状态。正如我们的课程设置一般在45分钟 左右。具体内容,我们可以找看是否还有机会,再给大家做个分享。

3、东辉:宏辉是否有想过,可能某一天自己也会被新人所取代?

(宏辉)答:肯定有想到,市场越来越拥挤。正如前几年,移动端兴起了O2O热潮,兴起了学习IOS、安卓开发的热潮,现在热潮褪去, 在一定程度上,会导致这两种开发工程师找工作相对较难。但是,就和发哥说的一样,只要你学会改变,具有反脆弱性,那么就不需要 担心这些问题。

4、东辉:圣君作为U3D游戏开发,对于H5游戏有什么看法

(圣君)答:U3D游戏可以跨平台使用,这是一个很大的优势,这些平台中也包括H5。但之前由于网速影响,H5游戏并没有兴起, 但从现在的一个趋势,特别从微信小游戏看,H5游戏的画面质量、游戏体验都上来了,如果真的来到5G时代,相信H5游戏肯定会迎来一波井喷。

5、溯源:前端开发、IOS开发、安卓开发、U3D游戏开发有什么区别?

(发哥)答:前端开发、IOS开发、安卓开发都是为用户提供交互界面的开发过程,而U3D专门为游戏而生,为游戏服务。