超级访谈:对话毕玄_10_04淘宝消防队真正最优秀的程序员不应该是英雄
你好,我是叶谦。
上一讲呢,我们简单聊到必学员进淘宝之后做HSF的经历。
之前呢他做网站访问量十万不到,但是一上来呢一下就到了两百万,然后再直接跳到了一个亿。
他的心情呢也从信心爆棚,直接跳到了上线爆雷。
但是毕竟刚转正,他就让公司出了严重的故障,他表示自己压力非常大,但是心态居然还可以。
那今天呢我们就接着他的经历继续聊。
当时在淘宝他有一段相当有趣的经历,就是淘宝消防队。
在这里呢他锻炼自己的问题,解决能力,也结识了阿里的知名大神多隆。
但是在今天的采访中,他就说这种机会对公司来说其实是一个恶性循环。
为什么他会有这个看法?淘宝相对的经历对他来讲究竟意味着什么?我们开始今天的对谈,所以等那个HSS做完,你就去淘宝消防队了。
呃,对,淘宝消防队呢是一个插曲,它是一个民间组织。
因为零九年淘宝现在出问题啊,出了问题之后呢,当时最大的问题就是没有人去解决。
但是我们有一个系统,如果出了问题,大家都会去看,呃,是不是跟自己相关。
以是我们在零九年之后有一百多个系统,大家都会觉得如果出了问题,肯定不是我的问题,那就没有人查问题了。
那段时间啊就很糟糕,客户明明感觉有很多用户在投诉,但是技术这边的反馈就很慢,都不大,解决就很混乱。
后来我们运维现有一个人就很不爽爽,就拉了一个群啊,这个群的名字叫消防队啊,群里拉了一些我们觉得愿意去解决这个问题的人。
后来只要出了问题啊,这个群里的人就会去解决。
那所以你们这些人确实是没有,就是那种业务上的责任。
这种没有,只是说这帮人觉得问题老没有人解不好。
那当然还是有一个原因是这帮人就是比较喜欢解问题,有这个爱好。
以前呢你想解也没有问题。
现在你进这个群简直了,只要想解问题一直都有。
然后我们就有一帮人呢是进了这个消防队哦哦,还还有就是以这个群呢,以前有一个默认的规则,就是不允许m线的人进来。
阿里是p线,m线m是偏管理。
对,后来有一个副总就是不小心被拉进来了,但是很快就被踢出去了。
然后就他就问我们,你们为什么把我踢掉啊?我们说解决故障的时候,不需要你解决故障的时候,需要p线的人,而不是m线的人。
啊,他也很无语,一个操作还挺有的啊,这个群就慢慢大家都知道的。
因为大家发现只要反馈给这个群问题是会被解决的,嗯,啊就形成了效应,加上呃又没有官方的组织。
嗯,可能半年多的时候,不知道为什么这个群就被更多的高层知道的。
因为我们最早说一不允许m线,二要低调啊,最好是没有人知道这个群的存在,尤其是高层啊这么低调是为什么?因为我们要去呃操作这个生产的环境,理论上肯定是有点违规性质的哦,权限太大了。
所以说嗯我们也不允不想太高调。
嗯,但是被知道之之啊,就就是在这个淘宝年年会,公公司是临时决定要给这个虚拟组织颁奖,好像是呃,总裁特别奖之类的哈那我们就突然通知,哎,你们的群得了个奖。
哎,颁的时候我们印象都很深深刻,因为是临时的来不及定场奖品啊。
就从这个现场当时在黄龙体育中心啊找到一个消防器啊,颁给了我们消防队。
然后颁奖的时候还跟我们说,待会下来记得把这个灭火器给还回去啊,所以是给你们这个虚拟团队一个一个虚拟奖啊,就是一个荣誉。
我们们笑笑死了,然后后来公司知道了嘛,觉得不能靠虚拟组织啊,这个事情还得官方化。
所以成立了官方的消防群,那就不一样了啊,进群的责任有一条就是处理问题。
但尽管有官方了啊,我们少数几个人被列在了某个名单里啊,那个名单里的人就被特批,有全部的权限啊,但这是因为我们过去做了很多事情啊,但当时对你来讲,因为你后面也写了很多文都会说,那是一个比较好的机会。
对,我记得其实是学了很多怎么去解决问题,而且多龙也在里面啊,我跟多龙就是那样熟起来了。
嗯,以前我都知道他很神,但不知道哪里神哈。
但在消防队里,我是充分感觉到了,为什么很多问题很难解决,但多隆基本都能解决,而且几乎是横跨所有的领域,这太夸张了。
嗯,所以这种解问题的这种机会也是非常能够锻炼一个人的对,因为这是一个训练啊,我后来呢跟多隆总结出来,就是卖油翁为首熟尔,那就是你越被喂你就越熟练,越熟练啊,就越被喂啊就跟打游戏一样。
嗯,但这是一个什么循环呢?你可以认为是个良性的,也可以认为是个恶性。
恶性的是为什么?对个人来说是良性循环。
就比如说你解多了啊,公司很多人觉得你解问题不错,所以大家有问题都找你,你就被训练的越来越惊艳了。
嗯,但是恶性就是公司的,其他人就没有这个机会了。
因为处理问题通常都是很紧急的,大家一定会第一时间想,呃,谁能最快解决,那就就去找谁嘛。
啊,那像你们这种,比如说刚开始是出于兴趣去做,就是比较喜欢解问题。
然后后来被问题训练的越来越强,那这种在技术里面是不是会相当受认可?通常来讲在这个技术圈子里哈,每家公司啊,大家觉得最牛的那个人呢,大多数就是解决问题特别强的公司的很多的危机的时刻是他出来把问题给解了。
鲁肃当年就是这种,但很神奇啊,阿里有多隆,google有GF电影。
那百度百度啊也据说有个这样的呃,腾讯也有,但好像每家公司都会有一个神一样的存在,大家都会觉得没有什么问题是他解不了的啊。
呃,后来我们还说还有另外一种这种不显眼,因为解决问题就很像英雄啊,出了问题之后,你出面把它解决掉。
那另外一种人呢,是他写的东西几乎没有出过问题,就不会被暴露出来。
但这种人其实是真正要挖出来的。
嗯,因为前面的你不挖,他就在那了,不需要挖啊。
嗯,那英雄和你刚刚说的这种,他不出问题是不同的能力水平。
平程序员的这个技能水平,我一直说是可以分成三段。
嗯,啊第一段呢是你的基本技能,比如说做这个业务要写相应的代码,那这个代码相关的东西你得非常了解,包括背后的细节。
那我们觉得这是程序员的第一关,迈向职业化。
那说实话这个公司的中小大没有任何关系啊,关键看你对自己的要求,公司可能不会明文说你要怎么样,尤其是中小公司。
因为说实话,每家公司不对个人的成长负任何的责任。
反正你没有成长,公司大不了就换一个人。
嗯,但是你自己应该有追求啊,用到的所有的东西都应该去了解他背后是怎么一回事。
嗯,那你有没有去衡量自己了解程度的这种方法,你平时是怎么做的?有啊,那就是写文章。
嗯,分享。
嗯,我觉得分享是个很大的挑战啊,有些东西你可能觉得自己很懂,那真正讲两个小时你可能就挂了。
以前博士给我们在上课的时候,嗯,是那个王坚博士吗?呃,是就是在讲这个怎么去判断一件事情是不是个问题。
因为大家会提出一堆公司可能去存在的问题。
那他就说你们如果能就这个问题讲上一天,那说明这个真的是个问题。
如果不能说明,这根本就不是个问题。
因为吐槽一个公司的问题很简单,关键是这是不是一个真的问题。
嗯,而且对于高级别的人来讲,肯定也是要想怎么解。
那如果你能讲一天,那这才是公司足值得去重视的问题。
因明解法很复杂,这就真是个问题。
那如果很简单,公司肯定会解的那这就像技术分享啊,博士会挑战我们,你们不是觉得自己很牛吗?觉得对这个很精通吗?来给我做个分享。
那很多人发现啊上去只能讲两个小时,这其实就是你掌握全部了。
我以前呢在内部啊讲这个个能MM,早早呢是只能讲讲个小时。
后来呢我能讲两天啊,这个是可以训练的,这个方法感觉还挺好用的对对博士的那堂课啊,是我们算有史以来啊最受教的一堂课。
因为这个方法很简单,那所有的人都可以去衡量出来。
对对,在那之后我们就懂了。
后来跟很多技术线的人就是说嗯检验自己能力有一个很简单的方法就是分享。
嗯,你讲多久能够把自己讲空掉啊,就是你能力的极限。
很多人呢用中文能够随随便便讲两个小时,你换成用英文讲十分钟就完事了。
对,这看就不靠谱嘛,这其实就是你的技能。
嗯,啊所以第一种就是你说的基础能力。
那第二种是什么?第二种呢是在程序员的世界里,通常被认可的就是解决问题的人是英雄式的人物。
但这里面确实也有一个问题,因为呃解决问题的能力目前来看必须要是靠问题训练出来,很难靠自学。
呃,就是不能自己去制造一些问题,自己解这种吗?呃,还是非常难,最好是要有这个实战的机会啊,但是这种就是解问题的这种机会,每个公司应该多少都有吧。
对,因为每家公司都会出问题啊,但是你看好了啊,出现问题的时候,关键看有哪些人跟这个事情一毛钱关系。
没有如果,他冲上来掺和一下,一定会有这样的人哈,每家公司都会有可能最开始掺和的时候呢也没什么用,但他掺和多了就不一样了,这个人就会慢慢的得到信任,然后他的机会就越来越多。
那他就进入一个良性的循环了。
这种人就会慢慢成为程序员圈子里的大牛,大家都会知道他,而且大家就会特别服他,你不服不行,因为你真的比不过他,但像多龙你们不服对不对?来啊,其实我们老说这个阿里最神的技术人是多隆。
然后后来阿里有一些新人不认识他内网就有人啊,凭什么他做了什么,结果就查出来一堆老员工全部出来喷上面的新员工说你们知道啥呀?嗯,啊多隆很低调,不像我们这些很喜欢在台前的人,但事实上他解决的问题就是比很多人强很多。
这是经过事实论证的。
程序员要服人还挺难,但是解决问题呢绝对是一个大家正面PK,哎,两个人一起解决,他就是比你快,那你还说啥呀,对吧?嗯嗯,啊你说你的能力比他强,那不可能。
嗯,所以第一关是我们先要把那个个人的技术能力搞好,然后再当一个喜欢掺和的人去用问题全面锻炼自己。
那第三关是什么?就是你前面说的那个不出问题的那种。
哎,对第三种程序员啊,就是真正职业里最优秀的程序。
因为他写的东西很稳定,就是我们说的鲁棒性特别好,不会出问题,但这种反而特别难挖出来说。
说实话就是做一个程序员写正常的逻辑不难。
哎,正常逻辑就是解问题嘛,因为人脑是串行的,串行写下去非常简单,只是说从说话变成了代码而已,是一个翻译的过程。
嗯,但是一段代码在现在正常环境境可以跑同,同时环境稍微有一点异常。
如果说从代代码能够跑下去啊,那太牛了。
这是最牛的这多数呢是因为他经历过前面见过很多的问题,那也解过很多的问题。
大家知道哦,我写代码的时候啊,这里要注意一下,那里要注意一下啊。
所以很多的优秀的程序员代码,正常的逻辑可能很少,其他的都在处理一堆。
你可能觉得不可能发生的事情啊,所以性能是一个要求。
但是你说稳定性能做到是最牛的对程序来讲,性能当然很重要。
嗯,但其实最最重要的肯定还是鲁棒型。
因为我们没有办法非常好的去判断这段代码它的运行的环境到底是什么啊,你现在设计的时候是这样哈。
对,但是过段时间环境就可能变了啊,所以大家才都说就是写代码的时候肯定能够看出一个人的水平。
对,因为你只要秀几段代码啊,我们很快就可以判断出你的大概水平。
现在我没有写很多年啊,但是我还是能够看一眼就能看出差别啊。
为什么他写的那几行代码你看出来呃,没有意义啊,但是出问题的时候,因为有那关键的几行,它的就保住了,而你的就挂了。
阿里以前出现很多的bug,比如说最简单的用一个数据结构去缓存所有的用户信息。
嗯,以前写的时候呢,他觉得呃这个公司的用户量不可能到一百万,所以那个缓存没问题,但很快量就突破了。
然后缓存的内存就爆了,结果哇整个系统就全挂了。
但是写好的,他一开始就会设一个保护啊,到了多少会自己异常掉,不会把整个系统搞挂。
嗯,这就是有经验的人啊,这就是差别。
嗯,哪里出过很多次这样的故障都不是一次两次,很多很多次。
那后来很多人写接口也是这样。
比如说我给你一个函数输入XYZ啊,你随便输入。
那因为很多人的意识是呃,我已经在设计文档里呢,告诉你说x不能大于一千,但是你还是输入到会大于一千,然后我挂了,他觉得那是你的责任。
但实际上一个好的程序不是这样的对,就不是去靠文档。
对,就我文档上既然这样写了,那么我的代码里就会控制。
如果入参给超了,那我一定会给你一个异常,这样整个系统就不会出问题,就是一个非常优秀的程序啊,但是这种嗯这么高的要求是不是也会有时间成本?这就看追求啊,有些时候比如说中小公司,很多人就会说,哎这个概率很低,不会出现啊。
所以他觉得我为什么要浪费这些时间去写这个一万分之一或者十万分之一的事情。
嗯,但是我们就说嘛就想就看你想不想做一个好的程序。
所以如果从你这辆消防队的经历来看,你是一个喜欢解问题的人。
对,因为我喜欢做英雄式的人我本来是以为很多人应该都喜欢,后来发现不是像多龙就不是很神奇啊。
嗯,呃但以前我跟多隆比较过,我是能看出差距的,而且这个差距是很难弥补的。
所以也跟就是跟你高中那会儿说也要去接受,也不挣扎。
对,因为我碰到过几类这样程序员,我确实必须说他们可能天生就是应该做程序员的人。
嗯,就像我解决问题是要有现场债的。
比如说一段代码有问题,我要能看到现在输入了什么,执行的过程中出了什么问题。
然后我来排查啊,像多龙这种人,他是可以大概率去推测的,因为现场经常就没有了。
那对我来讲就很难,我需要再等。
但是多龙不是以前跟他一起排查,我告诉他呃这段代码可能有问题,然后多龙拿去看哦,过段时间来告诉我啊,你试着把参数改成什么什么,然后跑一下看有没有问题,然后就真的是出问题。
嗯,啊这就比我高的一个档次,这种人是可以在自己大脑里去运行代码的。
我像我我们这种就不是,但这种能力不能说你去多看案例训练出来吗?很难很难训练,这应该真的是天生的。
嗯,就我们还见过更牛的啊,CPU可以多线程同时运行,就是但人脑的最大问题是单线程,对吧?我们程序员写代码的时候,又经常要写这种多线程的并行代码,嗯,就导致查问题真的特别难。
因为我得在这个脑袋里去模拟计算机的这个并行。
当时我们是遇到了一个并行问题,嗯,一般人想了很久很久哦,头都要转晕过去了。
但以前阿里有一个女程序员,他就可以在头脑脑里同时并行跑代码猜出问题了。
我们都承认啊,这就是天生的差距,这是无法弥补的。
嗯,啊其他的我可以靠后天不断的去解决问题,把技能堆上去。
但碰到这种,我只能说我我认了,我认输了。
嗯,这种人你想你写代码的质量自然会高的很多。
对他相当于是在自己的脑袋里面先跑一遍,哇,这太恐怖了。
嗯,以前传说jeff电影有个笑话啊,说如果jeff店的这个写代码跑,不过肯定是编编译出bug g嗯,那这简简简直了是吧?那有些人可能会觉得自己学的很累,但是还是很难跟别人比。
说实话,这真的是天分,所以也是要讲究那种合理的去接受这种感觉。
对,我们就会跟很多人说嘛,就是不要都做程序员,有的人并不适合,或者说是做到这个份儿差不多就可以了。
然后躺平多爽哈,不易,不用一定去纠结,成为多顶尖。
这个世界上呢有己多多很累,最终顶尖的就那么几个人,你没法跟他们比,也没有必要去跟他们比,想成长是可以理解的。
嗯,你喜欢解问题当英雄。
那从这个角度去看,所以你在阿里后来的很多段的转岗经历背后好像都能用这个解问题的逻辑串。
就是比如说啊你看到这个问题,然后想怎么去解决。
嗯,我觉得跟每个人的定位有关系。
嗯,我是想过自己的相对优势的,因为每个人的优势是不一样的。
嗯,后来我对自己的判断就是我很难去成为一个非常专业性质的程序员。
嗯,做非常深度的,比如说操作系统语言这种。
因为我也试过一段时间,我带过JPM团队啊,对它特质呢是必须在一个很小的问题上持续去钻研,可能只提升了一点点,他也很愿意去钻研。
所以说实话,很多数的程序员都不适合干这个不适合,是不是?因为这个有一定性质,比较偏科研。
对,你可以认为这一定程度上偏科学家性质。
嗯,科学家就是这样嘛,就是在一个很小的问题上,当然影响可能很大。
但是看起来就是一个很小的点上不断的突破,那觉得就是突破零点一都是有意义的那我就不适合做这种真的是待不住。
解决问题型的人可能都有这个毛病,就是够用就结束了得。
靠不断的解决问题升级,我更适合去做宽就是广度。
因为相对来讲,我对各方面都有点兴趣,都愿意去了解一下。
嗯,啊另外我可能的优势是可以大概判断做什么样的事情,对这家公司是相对更加有意义的这其实是需要肯思考的。
所以综合起来呢,我可能适合的是把一个事情从零分做到八十分。
嗯,但我不适合从八十分去做到九十分,甚至是更高。
因为说白了做到一定的阶段呢,再往下去突破会很难,我需要找别的人。
但我觉得呢既然最后要靠我找的那帮人,那干嘛不让他们来呢?我就不想干了,无力感会太强烈了。
当然这是个人判断。
呃,那这种比起技术项的研究进步来说,你这种在很多领域去尝试去探索的这种是不是会更偏业务一点。
对,那一家公司的高管啊,越高层级,包括到了副总裁以上,其实是需要这种人的。
因为从八十分带往九十分,带往更高,你可以组建更专业的团队,让他们来解决就好了。
然后你就专注各方面的业务层面。
但是嗯就现在的青年来说,像你当年是能够这么清楚的,知道自己更适合做什么,但这种感觉好像也挺难的吧。
当然啊刚毕业的时候,你不用去纠结这个问题。
因为刚毕业的时候,你的长短可能不是很突出。
另外你其实也不知道你的长板真正在哪。
嗯,啊所以刚毕业的话,你也许许可以多试几个角色。
但但最后呢一定会发现,在某个角色上你是相对轻松的,同时也是干的不错的。
一定会有这样角色,不可能没有啊,每个人都会有,所以不用纠结,我一定要在程序员上比他干的更好。
没有必要,因为你可能怎么干,可能都是干不过他的。
这就真的不用纠结,每个人还是要想清楚自己适合的,还有你的长板。
呃,但这也不一定是好事儿,就是以前阿里就有人跟我讲啊,你给自己画了个框,那将来你是不是就很难突破这个框的?因为你已经限定了自己,那如果把这个框给去掉,想象空间变无限就什么都可以干,尤其是在大公司。
那我的想法呢是如果你很年轻啊,确实是不要给自己画框。
嗯,那如果你的职业生涯有限,我觉得画个框不是坏事。
因为你到中后期啊肯定是发挥自己的长板,那短板就不用在乎了,没什么好在乎的。
嗯嗯,那小公司是不一样吗?小公司我觉得完全不一样,因为小公司难道还需要一个人帮忙去吸引人才,然后他什么也不干,就指望着下面干活啊啊这个这个人人一会被干干掉。
嗯,但是大公司不一样样,公司需要有人能够凝聚聚帮人,干成事儿。
因为大公司的管理有各种各样的问题,所以这样的人反而适合走更高的级别。
他需要接受自己是不是那个真正解决有问题的人,但它的优势是能够凝聚一帮专业的人来解决问题。
啊,这也很牛。
老马就是这样的人嘛,那马云就是我有一个想法,然后一般很专业的人都拜,以你的想法为你拼命,我也很佩服,我觉得这是不一样的,但是我很难接受。
嗯,所以后来我换的每一步啊,但是我认为这家公司的分制在一个比较低的一个领域,比如说可能是零或者是六十分啊,我觉得可以去做到八十,所以导致我在阿里是换了几个位置,但是后面更被动,前面确实是主动的。
前面导是你h adf f完之后,然后后后面面个h base,包括括four都是去主动换的对后面的h base.就是因为leader我觉得已经很难把它带到更高了,我已经不知道做什么了。
再说这个个leleader很不好,因为因为自自己不知道道哪哪那其他人肯定挂嘛,所以我觉得没有必要了。
好,到这里,我们的对谈就暂时结束了。
在淘宝消防队处理各种故障的过程中呢,一群的编程能力也是突飞猛进,也为他后来能够找到自己的优势埋下了种子。
我们今天对谈的重点是程序员的能力三观,从基础能力过关的职业程序员到解决问题。
高光出场的英雄,最后到写的东西不怎么出问题的扫地僧宗师。
每一关呢都能够让你的编程能力实现阶梯式的进步。
那至于怎么衡量你每一个阶段的掌握程度,玉璇也给了一个非常简单又实用的好方法,就是分享看你能够讲多久把自己讲空掉。
最后呢是今天的自由发言环节。
第一个话题是对于程序员的能力阶段,你是怎么看的呢?你有哪些好用的知识积累技巧?第二个问题是,你喜欢做英雄式的人物吗?在工作中,你见过哪些是英雄式的人物吗?第三个问题是,回顾你自己之前的学习或者工作生涯,你有发现在某个角色上自己是相对轻松,而且干干的不错的吗?欢迎留言交流。
下一讲呢我们会聊碧璇,在淘宝的第一段转岗经理。
做完中间件之后呢,他突然又跑去做数据库和容器了,到底发生了什么?我们一讲再见,拜拜。