15 | 兴趣与个人认知

极客时间:听说你特别喜欢数学。

张雪峰:我最爱的除了家人,就是数学、历史这两块,数学是我从小的兴趣,所以花的时间多一点,我主要在B站上数学系的专业网课。

也有人问我是不是现在闲了才看,我说不是的,我一直在看。以前只是周末有时间,要系统学习数学还是有点挑战,因为周末后再上5天班,基本就接不上了,所以那时候看科普的多一些、专业体系化的少一些,坚持了很多年。虽然很多人也不相信,但这个确实是我从小的爱好。

还有一个催化剂就是,我刚上高一就拿了当年全国高中数学联赛省一(上海),但离那年(上海)省队有点距离,遗憾没能进冬令营。当时还自我安慰,如果在其他奥数一般的省,大概率可以进冬令营(笑)。但即使这样,也是我们学校那年重磅新闻(张雪峰高中是当年浦东唯一市重点,但不以数学见长)。当然了,我师兄更强,他高一省一、高二冬令营、高三国家队且是那年 IMO (国际数学奥林匹克竞赛)满分金牌。师兄是我当年最好榜样,也激励我对数学的持续热爱,直至今天。

极客时间:数学能给你带来什么?

张雪峰:数学带给我精神上持久享受,自然美感觉很棒。很多同学都有能带给他持续精神快乐的事物,对我来说,主要就是数学。或者更精确一点,是基础数学(纯数学)。

极客时间:是享受而不是那些枯燥的运算。

张雪峰:对,而且数学是自洽的,只要在这条路上,跑出来就是对的。数学和物理不一样,物理很多是人想出来的理论。杨振宁那套理论,已经是目前为止理论物理的天花板,几十年都看不到激动人心的突破,你看今年诺贝尔物理学奖,能知道个大概。物理更多是一个没法自洽的学科,它需要靠实验、工艺,靠现有的工业技术去证明,但数学几乎是完全自洽的。

极客时间:在工作之后还能持续钻研数学的人,好像很少,你会考虑到数学在工作中能不能用得着这样的问题吗?

张雪峰:我就是Enjoy这个学习过程而已,其实我刚从阿里离开的时候,很多投资人找我,问我有没有兴趣创业或投资,我说我的兴趣主要在数学、历史。但对企业来说,企业更Enjoy结果,数学尤其基础数学,这个东西不太能直接产生商业价值。

极客时间:在平时的工作中,你会用数学的思维跟大家去讲道理吗?

张雪峰:会,而且经常用,或者更多是用逻辑的思维。大家不要被一些所谓的计算机原则(典型如:低耦合、单一原则等)迷惑,数学原则才是宇宙终极原则。

就像我前面讲过的,什么时候该内聚、什么时候该解耦,你不要被表面迷惑。举个例子:当大于等于两个调用方(消费者),都会去调用一段逻辑的时候,就需要考虑抽象为 Function/Service/API,就这么简单。我经常会跟大家这样类比,不要把简单的业务问题人为地引向技术复杂化。如果是创新或试错业务,更要 Speed 第一,活下来后,才有时间谈 Architecture,最后才有机会上 Scale。之前提过的物流团队极致异步架构、部分团队微服务过度等,都是教训。还有,以上观点可能并不适用真正技术驱动业务的公司或业务,比如:Google、IaaS/PaaS、无人车等。

数学是解释抽象最好的方式(物理也高度依赖抽象,但还需实验与观察),有人说为什么要学数学?买菜只要学小学数学不就行了?那不叫数学,那叫算术。开始有未知数这个概念才算摸到数学一点边。解方程有未知数,这就是一个抽象,然后再往上还有更高级的抽象,比如大学的抽象代数,可以把很多物理现象抽象出来。

我还想说一点,跟抽象对应的还有一个词叫“想象”,但想象这个东西很多时候是天赋,不是说你想要想象就能有,想象是可遇不可求的,抽象是你需要去锻炼的能力,这是可以锻炼出来的,不是靠天赋。举个例子,你可以感觉一下:线性代数教会了我们如何抽象看待所有线性方程组,多次螺旋上升的抽象过程后,天下再无不可解线性方程组;但同样是数学,初等(平面/立体)几何中各种精巧的辅助线(有些可以靠刷题或训练,但大部分难题还是靠想象或天赋),却是很多同学数学学习过程中的绝对梦魇。要么一分钟解出,要么只能看答案后叹为观止。

极客时间:你刚刚说了两个思维,数学思维和逻辑思维,它们有什么区别吗?

张雪峰:都属于“形式科学”,另两类是大家更熟悉的自然科学、社会科学。要说数学思维比逻辑思维更深一层的,除了抽象、缜密,还要有广阔想象、大胆创新。创新指创立全新数学工具甚至数学分支,用于解决当前体系无法解决的难题(详见“哥德尔不完备定理”)。如果只让我推荐一本关于数学想象的科普书,那一定是《思考的乐趣》。

极客时间:之前我们有聊到产研团队按领域划分的事情,饿了么之前的团队划分比较粗糙嘛,就是分C端和B端,C端就是APP和网站,B端就包括商户服务还有物流,你进去之后第一件事是做拆分,这里面其实就要用到逻辑思维。

张雪峰:饿了么原来就是个单体,所有的业务逻辑就是一个东西、一个源代码库,C端、B端、D端(Delivery,物流)全在一起,牵一发动全身,也就是说你在部署的时候,每个服务器都要布一坨这个东西,一是影响性能,二是发布很麻烦。只要有同学发布,即使跟你无关,你也要发布一遍,所有的机器都要扫一遍。我们做技术的就要拆解,肯定要至少再分一级。

拆分与否,我们当时就遵循一个原则:只要一个人有变化,一堆人要随着你动,或者叫“牵一发动大部分”的时候,这一定是有问题的。其实这也是逻辑原则或数学原则。所以我跟他们说,不要扯什么领域驱动、微服务了,就用这个原则。这个原则确实最容易讲清楚,但实践的时候要多次试、反复试。

单体是一个极端,微服务或单一原则是另一个极端。饿了么从来没有真正提过微服务,从来没有过,我不去用这个概念。我们就是从业务的合理性去拆分。对领域驱动呢,我当时也是持观望态度,不能说保留态度,我觉得领域驱动是一个模棱两可的东西(顶尖DDD牛人或在大规模超复杂体系下成功实践过的同仁勿喷,毕竟让绝大部分技术同学吃透DDD,无论ROI还是效率都很低),就跟架构一样,所以我希望回归朴素,就是从逻辑的角度,或者数学角度,给大家解释。所以当时我们也不做领域,我把以前的经验带过来,开始有一些中台的萌芽,比如说把交易系统、营销系统拆出来,把用户系统拆出来等等。

从逻辑上讲,当你十次里面有八次“牵一发要动大部分”的时候,你就没必要去拆,你就让它耦合(内聚)在那,哪怕最后合出来一个巨大的东西,那证明这个业务就是这样的,没办法。你要么抱怨很倒霉进入这个业务领域,要么你就自己想办法克服。当然还有一个办法就是你通过技术去改革这个业务,那意味着这个业务甚至整个行业的游戏规则都要变,在短时间内几乎不可能。之前也讲过,对绝大部分公司的技术团队来说,妄图通过技术驱动业务,还是省省吧。

极客时间:刚说到中台的萌芽,饿了么建立中台大概是一个什么样节奏呢?

张雪峰:最早是整合交易系统,后来整合营销系统,搞营销系统就附带着把会员系统也搞在一起。其实说到底,也不叫营销,叫权益。所谓的发券、会员体系,其实归结为一点就叫权益。这一点国内有两家做得非常好,一个是携程,一个是淘宝的 88 VIP。

我们搞中台不是从0到1,应该说是从1到10,因为我们本来就有这部分(交易系统等),只是散在各个团队,后来就是交给石佳宁他们团队去整合,整合的过程当然也比较痛苦。

架构调整的时候,我们把C端、B端各个跟交易有关的团队交给中台去整合,这就涉及人员调配,有些Leader就不愿意交人嘛,就是“你动我的模块我可以忍受,你动我人坚决不干,我转模块不转人”。这种情况在阿里是严禁的,阿里一定是转模块必须转人,阿里做得比较到位,这就是成熟组织的表现。

我们以前这个团队,即使我强压也不行,大家就拒不交人,他说这个员工你让他过去,他要离职的。到后来磨了几次之后,大家也慢慢立下规矩:如果交出一个完整模块,必须人跟着模块走,去另一个团队,如果不愿意就离职。

所以一开始石佳宁其实拿到的是全部模块和光杆团队,相当于活儿给他,但要他自己找人,虽然我给了他很多权限。所以,石佳宁是很不容易的,他几乎只靠自己原来的班底,然后还要去熟悉C端、B端、D端(Delivery,物流)业务,把代码拿过来之后再拼起来。

他们从最难的交易系统开始做,搞定了之后,发现交易系统还不是最难的,最难的是营销系统。营销是千变万化的,运营介入最多的就是营销,因为营销有很多玩法,搞各种优惠活动。营销不好抽象,非常考验程序员对业务的抽象能力。

运营他们不管的,提了一堆需求,说给我实现这个、实现那个,技术人员就要去抽象。最后我们的营销系统变态到什么程度?那个界面刚开始做出来,只有运营看得懂,一堆Check Box,而且还不能点错(有些可以点错,后台有告警,但太多告警,人也会麻痹)。我们曾经因为运营点错按钮出过事故,最后责任归到运营,但人家也很委屈,吐槽技术做得太烂,说你们这个产品简直不能忍受,搞这么复杂,勾错就出问题。但技术人员就是一根筋,他说我已经全给你抽象出来了,所有的功能你只要点勾就能实现。所以营销系统是很难做的。

极客时间:可以谈谈你对中台的理解吗?

张雪峰:中台就是业务(商业)驱动的。我以大家更能理解的阿里来说,阿里后来做中台,其实真正的核心动力还是商业驱动。比如我在优酷注册了一个会员有一个优惠券,为什么不能在双十一的时候去淘宝买货?我在淘宝有积分,为什么不能在阿里其他平台用?所以淘宝得到一个终极结果就是 88 VIP,就是会员体系,这才是中台的原动力,还是要从商业价值来看。把这些权益放在一起之后,用户就有更大几率留在你的平台。

饿了么后来也搞会员系统,我们早期就是发营销券(外卖券),做营销券打通,开始还没有把它抽象成权益打通,后来有了会员之后,才想到要做权益,因为围绕会员的、跟消费有关的都叫权益,这个就更有价值了,包括把混合券这些东西都包容进去。

所以中台不是个业务,但它有业务的味道。

极客时间:接下来我们聊几个大的话题,你的人生理想或者说人生追求是什么?

张雪峰:除了家人,我还真没想过这个问题,如果抽象来说就是人和事两方面。

我先从人这个层面说,我希望我把一些不同的人,培养到超越我期望至少超越我的一个程度。就像我之前说,做CTO的最大成就感来自团队的成长。超出期望就意味着,他不是我原来可以掌控的,我会在这过程中和同学一起成长,对底下的同学来说,他感觉是我把他培养出来,但同时我也学习到很多。所谓相辅相成、相互成就,大概就是这个意思。

我有这样的理想,后来跟很多人也说过,我非常不想做CTO,我就想去挖掘高潜的人,我感觉我可能更擅长做这个角色。当然我现在在做这种“冒牌中介”,也是希望去把一个合适的人匹配到合适的岗位,其实做这种红娘是很有成就感的,不亚于去介绍两个同学或两个陌生人,最后成为夫妻这种成就感。

从事这个层面,我只能说是追求美,是精神上的一种美,不是视觉或感官上的美。什么叫精神上的美,或者精神上的成就感呢?对我来说排第一位的就是数学,可能直到离开这个世界,我也会一直追求下去,既是兴趣,也是挑战。

极客时间:你有比较喜欢的行业吗?

张雪峰:我对一个行业很有热情,我过去大概20多年的经历,有一半时间是在这个行业里,就是教育。

育人是一件很有意思也很有意义的事,有时候我自己看一些科普文章,很多很深的数学问题,有人就能把它用很简单的方式讲出来,让别人豁然开朗,我觉得很厉害。可能我对这样的事比较有热情,而技术只是我第二或第三兴趣,有时也是没办法,或者说你得先有饭吃,必须养家糊口。

极客时间:你有偶像吗?

张雪峰:历史上我有特别佩服的两个人,一个是商鞅,一个是李靖。但他们算不上偶像,我好像过了需要偶像的年纪,如果非说一个,应该是我第一家公司的老板。他20多年前的理念,甚至到今天依然前沿、足够前瞻,20多年前,他就已经在做标准化的事,是通过公司的产品尝试标准化,不止是停留在标准化理论上。

我的感受相当于什么呢?当时进这家公司,从编程来说,我算是小学毕业了,但是突然间一个中科院院士在那边给我辅导,就是这种感觉,而且他又非常平易近人,可以让我有学习的机会。一般的中科院院士即使再虚怀若谷,他也不可能跟一个小学毕业生去谈科学的。我至今还是一直认为,他对我的技术或技术观方面影响最大,但商业方面没有,因为他商业做得不太成功。

极客时间:你有没有自己坚持的人生信条或者是座右铭?

张雪峰:我总结六个字:活到老,学到老,再加上对精神美的追求吧。我希望一直到我生命结束,我都尝试去影响其他人对“活到老,学到老”的追求。从我的家人开始,这一年我已经引起我太太对历史的兴趣,开始买书看,还有我女儿,她以前也从来不看,现在算是有一些起步。

当然我能影响更多人更好,但是影响更多人也比较难,我也不想去做博客、去B站开个号,甚至写书等等,我不太想做这样的事。可能我觉得也很难影响到别人,一本书里面的内容,很难放之四海皆准,就像我们今天的访谈,即使把这些观点尽可能的普适化,让别人真正理解也是很难的。

我更想个性化地去做一些力所能及的事,去挖掘出一些不同的东西。“活到老,学到老”的另一个说法就是,持续去学一些不同的东西(Difference)。

精选留言

  • 雪峰-ElemeBWM

    2021-11-12 15:39:15

    六万字反思告一段落,等续集的同学要让大家失望了,毕竟个人兴趣早已不在技术。访谈方式是对不堪回首往事的最真实还原,也比较轻松,但引用工程师最爱原则之一的 DRY principle,我也不想再做重复(或相似)的事了,还请大家理解。
  • 秦穆之

    2021-11-12 12:23:19

    说起来,我经历的三次微服务经历:一次夭折,一次大失败,一次凑合能用。真的是血泪史,有血有泪有屎:
    1.不要过早拆分,不要盲目拆分,不要让不懂业务的人指挥拆分。
    2.缺少充足的运维和基建时,不要急着拆分。
    3.如果老板说别人公司都是微服务,我们也要这么做。请赶紧跑路。
    4.所谓六边形原则是良好设计的最终表现,不是教条。不要本末倒置,为了六边而六边。
  • 名字没想好

    2021-11-10 20:26:24

    已经看完,15年面试的时候是雪峰总给我面试进入饿了么的,问我微信抢红包难做还是双11难做,成为我这么年一直在思考的问题,哈哈哈.
    作者回复

    可以就多年思考写篇知乎,到时我来拜读

    2021-11-10 21:09:34

  • 大土豆

    2021-11-17 07:57:28

    老师,你怎么看国内大多数CTO的水平还没有达到阿里P8的程度这个问题?日常工作中我也发现,很多人位置越来越高,但是离技术细节越来越远了,说白点就是技术越来越差了。
    作者回复

    就我所知及所认识CTO(或技术团队负责人)人群,主要分几类:1、本就是忽悠,这在小团队很容易现形,大团队反而容易蒙混过关;2、本不是忽悠(至少对技术充满热爱),但随着组织规模变大被火线提拔(拔苗助长),逐渐「从内心」开始偏离技术,这类最可惜,也最不可逆;3、在#2基础上,还能坚持花点时间(也只能一点时间,不必苛求)在自身技术打磨与修炼上,这类最稀缺。我在饿了么这几年,也就发现2~3位够得上#3这样的稀缺(CTO)潜力股,访谈中有提及。

    2021-11-17 12:16:55

  • spark

    2021-11-11 11:03:32

    从三个视角分享我的人生~~~
    非计算机专业发展,我和还算成功的恩师学了10年,算是对得起恩师了,这个是我独有的自我实现部分~~~
    计算机专业发展,从现实角度讲,有点不明朗,虽然我结了极客时间129们课,订阅了170门课,刻意算积累了5000小时技术,计算机技术和变现的门槛还在~~~
    职业发展问题,也是有点不明朗,但我还是想再多冲冲,格局和见识,领导力,沟通,抽象思维,产品思维都是很现实的问题,因为竞争还是激烈~~~
  • lesserror

    2021-11-25 22:46:02

    雪峰老师你好。几个问题,麻烦抽空回答一下。

    1. 这里的李靖是指隋末至唐初时军事家么?

    2. 怎么理解:“混合券” 呢?

    3. 你是怎么面对人生中的各种困难的?或者是用什么样的心态,我想一路走路,很多人被眼前的困难吓住了,止步不前了。
    作者回复

    1、是的;
    2、比如:站内的非外卖券、站外的其他合作劵等,这方面,淘宝88VIP做得最好;
    3、因人而异吧,我个人骨子里不安于现状,总想着挑战 difference。但是,difference 往往伴随着 difficulty 甚至 disaster,要有充分心理准备。任何事,事先有心理准备(降低预期),即使出现 disaster,也不至于措手不及。最差,也能靠时间慢慢消化(或缓解)。

    2021-11-26 11:19:52

  • 樊野

    2021-11-11 11:15:58

    读着读着居然就完了,感觉意犹未尽啊。。。
  • 13:03

    2021-11-10 17:03:48

    我也喜欢数学之美(就是有点看不懂),历史,哈哈是不是也可以当CTO
    作者回复

    既非必要条件,更非充分条件

    2021-11-10 18:48:43

  • 秦穆之

    2021-11-10 14:17:39

    说起来,读历史确实是一个有趣的事情。已下内容推荐给不太了解历史的同学:
    关于商鞅和李靖。商鞅变法我想大家都很清楚了。详细内容可以看《大秦帝国》,以及《史记,商君列传》。顺便可以了解下战国同期其他国家的变法,如“李悝变法”,“吴起变法”,“申不害变法”等。有对比才能认识的更全面一些。李靖我觉得可能就是初唐的李靖,凌烟阁二十四功臣。他的故事可以看下《新唐书,李靖传》也挺传奇的。如果不是这个李靖的话,我就不太了解了。
    作者回复

    是隋唐间李靖,顶尖武将(帅)中少有得善终人物

    2021-11-10 14:26:52

  • 大土豆

    2021-11-11 12:54:09

    客户端和Web前端的开发,有可能成为CTO吗?业界好像很少很少。。。
    作者回复

    很有可能,比如偏前端交互类产品(石墨等),又比如:微信小程序。

    2021-11-11 14:58:30

  • 程序员Artist

    2022-01-04 13:52:03

    老哥太有意思了。试读完这篇果断买了课程。

    真诚建议老哥开个公众号写文章,可以给很多人正确的指引的,也是很有成就感的。技术公众号很多,但是“真大佬”维护的不仅仅技术,还有思维、学习方法的号就很少。(我一个也没见着)
    作者回复

    主要是个人兴趣已不在技术,也有一些很铁的朋友「痛斥」我太「自私」,只顾自己兴趣没有分享精神。但是,我确实更想 follow heart 做点自己喜欢的事,谁知道明天是不是有意外或还在这个世界上呢?

    2022-01-04 21:08:58

  • hao-kuai

    2021-11-29 10:09:17

    他说这个员工你让他过去,他要离职的。换部门的宿命就是被迫离职吗?可是这个人离职对于公司和个人2方面是双输的结果,不能双赢的根源是什么啊?
    作者回复

    权重最大肯定在组织与文化(根源是土壤与环境),国内很少有公司(尤其一定规模后)在这方面做得很好,即使几乎所有公司在面子上都做得很漂亮。出现冲突时,个人意愿一般很难与组织利益(有时是 leader 个人或小团队利益)抗衡。但抛开「不受委屈」这个因素,如果新团队能让自己得到期望的成长空间,个人认为「成长」收益可以超越「不受委屈」带来收益。如果连「成长」这个最后希望也不复存在,那就别犹豫了,换个组织。

    2021-11-29 11:26:13

  • lesserror

    2021-11-25 22:59:08

    雪峰来老师的名字后面的 ElemeBWM 中的 BWM是指的什么呢?
    作者回复

    百度外卖缩写,继承自原百度外卖团队的习惯用语

    2021-11-26 10:27:56

  • 侯建坡

    2021-11-17 19:28:15

    看完了这15篇的分享,从各种角度、各种状况、各种角色,做了最真实的表达,很感谢雪峰大佬,祝好!
  • IT民工大叔

    2021-11-10 08:45:35

    前排沙发打卡
  • 唐超伟

    2022-01-17 23:06:06

    当面浦东唯一的市重点是建平中学吗
    作者回复

    是的

    2022-01-18 12:39:47

  • 川辣孙悟空

    2021-11-12 09:54:35

    三周阅读后,知道了一个看待“技术、业务、管理...”的视角,谢谢作者—— 一个平凡的的技术人
  • 嚆同学

    2022-04-15 12:57:55

    感谢大佬分享,虽是问答形式,依然收获很多。
  • 追风筝的人

    2022-03-10 18:51:16

    stay foolish , stay hungry
  • 徐李

    2022-02-16 22:49:40

    意犹未尽,久久不能消化,可能分享的这份心得在未来很长一段时间都会对现在的我有影响,有感触,有震撼。不是说文字有多么的唯美或华丽,就是这种朴素情感的流露,直抵人心,产生共鸣。