寒冬 winter:代码无捷径,只怕有心人

2018年初冬,在淘宝996乐队的《持续迭代》的余味中,winter 在 Vue Conf 上以“挖掘 Vue 的声明式交互能力”为题做了演讲

winter,本名程劭非,前手机淘宝前端负责人,阿里高级技术专家,JavaScript 专家,带领团队开发了阿里巴巴开源项目 Weex 移动前端开发框架。

说到前端圈内的技术大牛,winter 这个名字就不得不提。

winter 是谁?有人抓取GitHub中国区前100名用户,他排在第18位。

知乎三大程序员「温赵轮」中的「温」。

2016年的双十一会场,他带领团队开发的 Weex 前端框架覆盖了99.6%的会场页面,打开速度和页面流畅性都保障了完美的用户体验。

余晟评价他:「真正的全栈工程师不是什么都会,而是有足够的知识和能力,遇到什么问题就能解决什么问题。我第一次接触这个说法的时候马上想到,程劭非应当就是前端出身的全栈工程师。」


坚持自己喜欢的事,是一种什么样的体验?

winter 出生于 1985 年 10 月 24 日,恰巧是我国的程序员节。江湖人称「计算机之子」。

winter 的父母是最早的一批程序员,受父母影响,他很早就开始接触计算机。

但小时候主要是以玩儿为主,他真正接触编程是高中的时候,在文曲星上面编写小游戏。

那其实是个开玩笑的称号。当时还是在盛大的时候,同事说我爸妈都是程序员,就说我是计算机之子。本来应该说是程序员之子,是吧?我觉得程序员之子挺好,比计算机之子要好一些。

我爸的工作偏硬件一些,我妈的工作偏软件一些。我爸在大学里面教书,我妈后来转销售、市场了,他们那个时候市场和销售不怎么分。她还自己创过业,经历比较丰富,但是也没有什么特别的成就吧,哈哈。

我很早就开始接触计算机,从记事开始我家里就有电脑了,因为我爸妈都是干这个的。

但是那个时候主要是以玩儿为主,真正接触编程还是高中弄了一个文曲星,当时它提供了一门非常简陋的语言——GVBASIC。

我凭借各种研究出来的奇技淫巧,跨越了它的内存局限,在上面编游戏,形成了一套方法。

后来发展到大家有新型号的触屏版文曲星,我根据内存的变化状况,研究出来触屏的位置怎么读取。高中的时候干了很多这样的事情。

除了编程之外,winter 高中大学的时候还经常玩黑白棋。

他自己写了个黑白棋 AI,据说赵劼有一次把它某个版本的子吃光了,然后 winter 表示这是个 bug。

有人说喜欢一样东西是不需要理由的,但每个人对兴趣的选择其实并非出于偶然。

其实有一些兴趣是消耗型的,比如游戏你玩儿完了就结束了。但是编程不同,它是一种累积型的兴趣。

你可能一开始不是特别爽,一开始很艰难。但是随着你不断地投入时间,它给你的成就感和满足感是越来越高的。所以,我还是会把更多的时间放在这种兴趣上。

玩游戏我也会比较偏爱这种发展型的游戏,而不是那种短时间、快速的游戏。所以呢,我觉得这是性格的导向吧。我很喜欢这种所谓的厚积薄发或者运筹帷幄,我喜欢做很有把握的事情。

高中开始对编程有了一些基础的能力和兴趣,再往后就是大学参加 ACM 竞赛。

当时成绩也算不上有多好吧,亚洲区域赛入围,省级比赛的金奖,前几名这样。

所以大学的时候算是走上了正轨。后来自己到网上去找技术论坛开始学,然后参加工作,逐渐地有了更明确的方向。一直到现在也差不多做了十几年了。


进阶的方法论:态度与技能

编程是一种创造性的脑力劳动,这场漂流的大潮,它的规则就是不进则退。

我在上大学的时候,选计算机专业,因为我妈是做这个的,她其实很严肃地问过我一个问题。她说计算机这个事儿你选了以后一辈子跟着跑,你觉得你 ok 吗?

我当时也没有想太多,我说好,可以。虽然我至今仍然觉得 ok,挺好的。但是想一想,当时这个问题可能比我感受到的要更严肃一些。

计算机的任何一个科目其实都是在拼命跑的,除了那些濒临淘汰的职业。我觉得其实前端并不快。

客户端技术永远比前端技术发展得要快。只不过我们的某些领域,今天看似很稳定,但是可能真正革新的时候,你看不到那些变化。

前端的好处就是这些变化都在标准里面,你就盯着这个标准去走,就可以了。所有的东西都会有人告诉你它变了,推着你向前走。而且前端社区比较活跃,能够把这些变化直接地传达给你。

所以前端很快是个误解。我觉得其实前端很慢,因为标准发展得很慢,一定比私有的技术要慢。

所以我倒是觉得前端工程师还是要更有危机感,就是不能跟着标准的节奏走,反而应该超在前面,看客户端里的那些技术能不能进到前端。不然就是很危险的事情。

如果说有些工程师,他觉得连标准都跟不上,那我觉得可能这个人真的不太适合这个行业。

如果世界上有一种万能的天赋,那一定是长久的热爱与坚持。关于勤奋的定义,winter 认为有两种。

我觉得天赋谈不上,但是勤奋呢,我也谈不上。但是这里面有一点,就是说我们怎么样去定义这个勤奋吧。

如果我们把勤奋定义为积极思考的话,那我觉得我是勤奋的。如果我们把勤奋定义为夜以继日地在这上面投入,那我觉得我已经懒得不行了。

有些人是思想上的勤奋,有些人是行动上的勤奋。我觉得我思想上还是够勤奋的,包括新的技术也好,还是新的标准也好,这方面我始终没有落下过。

我从来没有对自己讲过,你这个东西就不用学了。在我这里没有不用学,都用学。只是你有没有空,有没有更重要的事情去做,有没有更重要的东西去学。

我特别烦网上的有一些言论,就是说:哎呀我这个东西不用学了。这个东西学了是浪费时间。

其实最后你会发现,这些人把时间都浪费在逛街看电影上了。我不是说他们不应该干这些事,而是说,这些人不学这个并没有节省出来时间。

怎么说呢?不管你出于什么动机去学习,原理都是一样的。有些东西是你必须要去学的,你总给自己找借口,其实什么都可以不学。

计算机就是这样,你只会简单的 if、else、while 循环,你是可以写出来一切东西的。那么这样好不好呢?那我觉得肯定是有问题的。

有些东西你可以学了之后很讨厌它,我觉得这是另一回事。但是你因为讨厌它,你不想学,这个事情就很奇葩。任何新的技术,你还是要把它研究明白的。

比如 React 最新出的 Hooks,我也把它评价得一文不值,但是我仍然认真看了它的实现和它的一些想法,我觉得这是个态度问题。

除此之外,一些细节也体现了 winter 对待技术的态度。

网上传言 winter 用记事本写代码。因为他非常注重软件设计和可调试性,所以他敲代码时更在意思考的时间,不会过于依赖工具。

有一次,因为和赵劼 PK 白纸写代码,他还改了飞机航班。

他也很乐意分享自己的经验,关于前端工程师需要具备的能力,他系统性地总结出了一篇文章。 

首先我觉得前端分为三大基本能力:编程能力、架构能力和工程能力。在这个基础上具备一些前端的领域知识,更往上是对前端特有的构成体系的一些认知,就是说工具链,比如前端的性能问题,其实是这些实践中的体系。

我在淘宝工作的时候,其实已经总结出来了几个比较通用的体系,比如中后台体系,就是怎样去快速地生产这些给专业人员用的中后台的操作界面。这个可能要形成一套方法。

关于前端的架构体系,就是怎样建立一套基础库,建立基本的研发能力,去帮助整个团队去复用和快速地生产。

然后,工具链和持续集成体系。这是通过工具统一提升团队的效率,帮助我们在线上减少问题,这里面也包括了监控与运维。

性能体系,怎么产出性能更好的网页,怎样去建立从监控到人员的培训,再到跟其他端的配合,建立起这种真正提交给用户的高性能的网页。

还有就是搭建体系,我们怎么用工具,就是用非代码的形式快速生产一些网页的系统。

这大致就是我们前端工程师应该特别关注的几个大体系,加上通用能力。我觉得这就是衡量前端工程师的一个技能模型。


程序员教育出了什么问题?

winter 在手机淘宝一直负责前端工程师的面试与培养,这让他对程序员的教育问题有了更多的观察和思考。

校招的时候我们去看通过的人,非常明显的一点就是他们都是主要靠自学的。没有一个人说我的学校教得特别好,都是说我自学了什么,我做了什么。

我觉得这本身就是个问题。

反映了我们的大学其实跟真正的行业需求匹配度挺低的。我不能说大学教得不好,但这个问题很明显。

因为这个事情实在是太明显了,像阿里招聘的通过率很低很低,招不到。

我觉得大学时其实应该更多地去写代码。

我在大学的时候这方面感觉还不错,因为我参加了 ACM 竞赛,那个竞赛会写很多代码。它实际上是非常小的片段,类似一个个算法,并不能够成为很大的工程。

我也看到大学里的老师很明确地发现了这些问题,在努力去解决。大家其实都有感觉的,我相信这个问题在几年之内应该至少会有所改善。

不是说彻底解决,但是一定会变好。因为有很多优秀的人已经投入其中。

我觉得这件事情有两个关键,一是怎样解决教育成果的评判问题,二是怎样解决师资的问题。我也联系过一些大学,其实他们最大的问题是没有好的师资。

这个师资的问题是不是可以通过技术手段来解决;而评判的问题,我们可以通过商业模式去解决。

我们应该能够去设计一种因为效果而赚钱的商业模式,通过这种方式拉回成本。否则的话,如果你去向学生收钱,因为学生缺乏评判能力,所以谁讲得幽默风趣,那就谁就能得到更多的生源。

但是这样最终只会变成大家都去说相声,然后把教育变成德云社小剧场。

我觉得最终教育这件事的解决,一定会变成受益者去买单,可能是企业去买单的这种教育模式。我们今天还有很长的路要走,所以首先应该是一些企业里的人开始关注教育这件事情。

他认为编程不仅仅局限于 IT 领域,也是未来职业发展的趋势。 

我有时帮人家教教课,其实就是帮同事带带孩子,也有一些朋友会定期找我来学一下。很有意思,我有些朋友,比如猎头、律师他们想学学代码。

所以,这符合我对未来职业的一种看法,将来各行各业都是需要写代码的。反而程序员可能会逐渐地变成一个很小的群体。

因为其实代码可以更高效地表达和执行,值得去学习。

律师要学到能分析卷宗是不是要很长时间?我觉得可能比你想象的要简单,因为我们有大量的库可以用。

我们首先要建立编程的基本能力和思维,接下来只需要去理解这个库就可以了。我们并不需要自己真的去把这个东西做出来,所以实际上不会特别困难。

当然我们如果想要更进一步,觉得开源的东西不够好,我们想给它贡献,那是需要很长时间,这也不是我能够教出来的。我觉得,可能100个程序员里有1个人会去尝试贡献这些开源的库,这已经是很不错的比例了。

现在各行各业都开始学编程,这是一个必然的趋势,因为这样整体效率就会更高。就是大家都用代码,效率就更高。

整个生产环节里只要有一个是非代码的,比如手淘的产品经理的文档,是文档而不是代码的话,效率马上就下来了。

因为人类本身的自然语言是非常不严谨的,会存在大量的互相沟通的时间成本。除非它是一个形式化的东西,填空。而这个就已经很接近于编程了。

winter 一直相信这句话:You are the owner of your career. 

你是你职业发展的责任人。

我确实是从一开始就非常认可浏览器里面的前端这个方向。而且我从很年轻的时候,就发现浏览器里 JavaScript 的能力其实比大家认识的要强。

所以从这一点上来讲,我应该从大三、大四左右,就基本上认定了前端这个方向是非常有发展的。

所以我一直在努力地朝这方面积累。

我在微软的时候虽然是客户端工程师,但其实我做的是浏览器,然后到盛大我在做渲染类相关的东西,同时也会负责一些前端的工作。

所以对我来说,还是找一个我认为它有潜力的工作去做。后来我的职业发展的选择都是经过了一定的思考和设计的,没有那种非常突然的选择。

我其实在盛大也不是全职的前端吧,到阿里算是百分之百的前端,也是个前端 leader(手淘前端的高级开发专家)。我觉得我在阿里之前,其实脑子里是没有线上这个概念的。

在我看来整个的研发就是到产品的 deliver(交付)就结束了,觉得这个产品出来了自然而然就卖出去了。

在阿里,我了解了产品的后半段,我真正认识到了什么叫作商业。

业务有运营,技术有运维,还有监控之类的。有了所谓的线上意识。

一个产品从它做完的那一刻其实是一个新的开始。我觉得这个是我最大的收获,理解了很多商业上的逻辑。

另外,我觉得淘宝是我做的第一个真正的面向大量用户的产品。可能是因为我特别喜欢很挑战、很创新的东西,所以一直没有一个真正放到用户手里、被很多用户使用的产品。

手机淘宝今天在整个市场也是最大的几个 App 之一,这个产品也始终会是我的骄傲。我觉得人一生能遇到这样的产品还是不容易的,虽然我也只是很多人中间的一个,但是这个真的是让我很有成就感。

我考虑工作跟考大学时,考虑的问题都是一样的。这个工作带给我的 scope 有没有变大,资源有没有变多,成长有没有变好。

其实这几个维度里面就包含大家平时关心的一切问题,什么薪资、级别这些东西。所以它是比较全面的考虑,更接近本质吧。

因为如果你钱变多了,你做的事情还是和原来一样的,那迟早这个公司反应过来是要把你裁掉的呀!

做技术的人日复一日地沉浸于创造,点滴的进步终会汇聚成真实的变革。

其实知识始终都在那里,只不过你把它做成什么样的形式,去展现出来。所以从这一点来讲,我非常相信前端的机会都会在教育和出版行业。

因为社交,你不 care 聊天的气泡是方的还是圆的,背景是粉的还是绿的,关键是谁在跟你聊天呀!

而淘宝这种电子商务,主要还是你到底能买到什么商品,你买到的质量怎么样,花多少钱。这个网站做出花来,也不如图拍的漂漂亮亮,清清楚楚。

我觉得从这个角度,前端在淘宝、腾讯这些领域,永远不会是一个非常重要的岗位。领域的特征就决定了它的前端只是一种锦上添花的东西。

所以我一直坚信前端应该去做一些教育类的、娱乐的、展现性的事情。就算这次我还是找了一个工作,等两三年,我将来还是会做这块事情的。这是一个长期的规划。


采访:乐馨 

撰文/排版:李冰

题图来源:第二届 Vue.js 开发者大会

插图来源:Pexels,unsplash

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 转载自:https://mp.weixin.qq.com/s?__biz=MzIzMzEzODYwOA==&mid...
    天字一等阅读 903评论 0 1
  • 以下文章转载自知乎,暗灭-京华九月秋近寒,浮沉半生影长单. 暗灭 京华九月秋近寒,浮沉半生影长单 10,850 人...
    ve追风_685b阅读 3,999评论 1 15
  • 0. 写在前面 当你开始工作时,你不是在给你自己写代码,而是为后来人写代码。 —— Nichloas C. Zak...
    康斌阅读 5,239评论 1 42
  • 这是跟Elaine学习PPT的第1篇文章。 最近一直在做PPT,做的多了,产生了一种类似麻木的感觉。眼前晃过的PP...
    小木头大马尾阅读 393评论 1 2
  • 一位教育专家分享过这样一个扎心的问题:你是一个有十年经验的教师还是一个用一年经验教了十年的教师? 两种完全不同的状...
    蓉7156阅读 181评论 1 1