聊聊“结果导向”

“结果导向”的意思很简单,很明确啊。就是注重“结果”啊,看“结果”,成王败寇嘛。这有什么好聊的呢?因为“结果”和“导向”都不是字面看上去这么简单的事儿。

要说“结果导向”,就不得不先讲与之对应的“过程导向”。过程导向的人,喜欢追求过程的完美度,认为好的过程,正确地做事儿,总会有好的结果,有种“尽人事,听天命。”的感觉,最后失败了,就安慰自己说“重在参与”。更严重的是,过程导向容易迷失在无尽的细节之中,过度追求局部的完美,而忽略了最终要解决的问题到底是什么,然后项目就容易跑偏。如果一个领导是过程导向的,他会倾向于安排好整个项目的每一步,流程、手段、最终的结果的细节规划得规规矩矩得。后果就是手下人其实就是单纯地执行,没有发挥空间,也就没有主观能动性。我爷爷奶奶那辈儿,就已经有了这类人的代名词,叫“算盘珠”。

所以结果导向被提出来,其实是为了解决上面的几个问题的,归纳如下:

  1. 让人有明确的目标
  2. 让事儿有成败的标准。
  3. 让人充分发挥主观能动性。知道自己要做什么,目的是什么,价值如何体现。做正确的事儿(结果导向),而非正确地做事儿(过程导向)。

其中第3条其实是结果导致的根本。一个人知道自己在做什么,知道该做什么,不该做什么了,不再像算盘珠一样全凭人使唤了,其他的问题都不会是什么问题。

这事儿说起来简单,但是做起来其实很容易跑偏。有人可能嘴上天天“结果导向”,然而做起事儿来还是“过程导向”的风格。我不举例子,我只围绕“结果导向”讨论几个话题。

什么是结果?真正要追求的那个。

有人说很简单啊,大家找你要的那个东西,不就是“结果”吗?

那么我问一个问题,你从小学、初中、高中12年间,大多数的老师、家长找你要的结果是什么?是分数,是XX重点大学的录取通知书。大学的结果,是毕业证。那么这些东西,是结果吗?你12年学习的结果,就是一个数,一个证吗?好像不是吧。那是什么呢?

说得俗点儿,正确的结果,好像应该是把自己打造成一个“德智体美劳全面发展的四有小青年儿”吧?但是因为这个结果不太好判定,所以教育体系只能用一纸考卷把这个答案量化,同时把教育的内容片面化,跑偏化。

但是四有小青年儿们不要被带跑偏了。你可得知道自己苦读十数载到底是为了啥。

我的意思是,别人找你要A,你不能就想着如何给A,并仅仅把A做得完美。得主动地往A后面的真正的问题和动机去想。然后你给出去的东西,可能看上去都已经不是A了,但是效果是与A是等同的,甚至更好。

做每件事儿的结果只有一个吗?

不知有没有人注意到,“结果导向”的英文是“Results-Oriented”,其中的“结果”是复数。潜台词就是结果是复合的。你要得到一个结果R,于是做了事A,事A会产生结果R、S、T……。这时,作为既成事实,无论你接受与否,你得到的将不仅仅是R,而是事A产生的所有的结果,里面会有好的,也会有坏的。这是很多人在做事儿的时候会忽视或无视掉的部分。

比如某B公司,为了营业额R,冲KPI,有意无意地放松对广告来源合规性的审查,结果是营业额达到了,但是另一个负面的,非预期的结果是:失去了大家的信任。

“结果导向”,是要尊重、正视、接受所有的结果。也更应该,在事前充分分析所做的事儿可能产生的重要的结果。 并做好相应的准备。

应该如何描述结果?

对结果的描述不同,就会产生不同的结果。

我只讲一个故事。19世纪欧洲考古热,一群土豪去五大洲找当地土著买化石。土著很高兴,常常把一块化石敲成好几块分别卖出手,比一整块卖的收益高多了。

然后考古学家们都多了一件事儿要处理,3D拼图。土著收入高了,考古学家也有更多的活儿了,还能创造更多就业机会。这简直是多赢啊。除了对那块化石不太好以外。

当我们在说“效率”的时候,我们其实在说什么?

今天去听了一天的“工程效率”专场交流会。这次交流会邀请了Facebook, Amazon,Pintrest及上海几个知名大厂的工效团队负责人坐台。给大家分享了一下他们经历,方案及对于“工程效率”的见解。

整场交流会还是蛮成功的,尽管台下的听众只有几十人且一点儿都不活跃。参会嘉宾们讲的东西还是比较有诚意的。先从工程效率所解决的问题入手,从工具,理念,协同,流程,技术等方面的展开了分析与对话。该讲的基本都讲到了。有几个主要观点我是非常认同的(虽然并没有什么新观点,基本都是大家已经知道的东西)。

  1. 工程效率的本质,是解决复杂度问题,化繁为简,提高效率。
  2. 善用工具并且能把各个工具有机地串联起来,一提高工作效率的有效手段之一。任何需要被做两次以上的事儿,都值得自动化起来,避免低效的手工执行,但是又要避免过度自动。什么是过度自动呢?我的理解是判断都自动化就过度了。判断应该由人来做,判断好之后的处理,手工触发,自动执行,以免误伤。
  3. 工程效率要落地。可以以两个方面入手:
    1. 找到合作方,积极合作,共同推进。
    2. 找到真实的业务痛点(即使他们自己都不知道),并解决问题,提供价值。要以做产品,提供服务的心态来做工程效率。
  4. 工程效率不是一个技术问题。而是融合技术,人员与流程的综合性问题。我个人还想加上业务。因为业务不同,对效率的改进点的需要也是不一样的。
  5. 对于工程实践上的问题,没有银弹。不存在这样一个方案:每个公司拿去就能化腐朽为神奇创造奇迹。因为每个公司的成熟度是不同的,所适合的工程实践也会大相径庭。把一个公司跑得好好的方案照搬过来,跑不通还算好的,不好的是反而会产生严重的负面影响。每一个方案,必须是因地制宜地、因人而异的。
  6. 软件工程,与传统工程是非常不一样的。传统工程,做完就是完工了。而软件工程,做完只是开始,一个软件,从出生到消亡,始终都在发生变化。从外部的需求,到内部的技术方案,再到参与的人员,全部都是在持续变化的。
  7. 提高效率,要从最薄弱的环节入手,把瓶颈找到。有针对性地解决问题。
  8. 技术开放,以赋能扩展能力,而非以规范约束能力
  9. 每个公司间的文化不同,但是同一个公司,要上下一致,形成共识。这样才能劲儿往一处使。
  10. 工程效率的度量指标,不应该被纳入KPI或ORK,更不要以此为团队做排名,因为很容易产生误导。
  11. 不要写那么多文档,没人看。重要的处置方案,直接内化成系统功能。
  12. 系统不是设计出来的,是演化出来的。

另外想补充一个比较有意思的现象,因为本次与会的嘉宾比较多,会出现这样一种很奇妙的碰撞。阿里中间件的李云老师前脚说,团队是培养出来的,不是招聘出来的。后脚许式伟就在另一个话题上,表示严把招聘关是非常重要的,因为人是不可塑造的,“基本上大学毕业是什么样就是什么样了。”他们说得其实都对。但是话,都是有上下文的,脱离了上下文,单独去看,甚至会有些自相矛盾。

我下面想讲讲他们没有讲的。点也比较多,我争取讲得有条理点儿。

  1. 关于“工程效率的本质是降低复杂度”的论题,我有一点儿补充。假定工程效率本身的范畴包括:CICD,自动化测试,设计规约,代码审查,开发流程,发布流程,团队协作,工具打通并平台化,最佳工程实践的推广及开源。那么工程效率本身其实并没有降低复杂度。而只是把复杂度遮盖起来,让人们看不到。而上面这此东西的引入,其实反而增加了实际的复杂度(尽管不可见)。在平时的软件开发工作中,真正需要被降低复杂度的部分,是人为的额外的复杂度。比如一个用四则运算可以解决的问题,用了微积分来描述与求解。其实是人为地增加了复杂度。而在真实的项目中,这部分的复杂度,其实是远超工程效率所涉及的部分的。比如服务间的不必要的耦合,接口设计不必要地暴露了内部实现并强绑定,都会带来不必要的复杂度。而且,这种复杂度,影响范围更大,不仅仅会影响开发效率,还会影响服务的稳定性,可扩展性等。
  2. 老板们讲“工程效率”,本质上是指:“从公司整体,最终业务的层面,用更少的资源(一切成本,如:人,时间),办更多的事儿。”。个体的效能高,不代表整体产出高。但是个体效能低,整体一般也高不到哪儿去。所以工程效率,一方面是提高单兵作战能力,但是更更重要的,是团队协同作战的能力及规划调度的能力。
  3. 提高做事效率是一方面。但是在此之前,更重要的是明确,我们正在做的这个“事”本身。是不是必要的,有价值的。不然效率再高,也是无用功,白白浪费宝贵的时间。具体指什么呢?从最简单的,个人及团队层面上,要保证每个人不重复造轮子,起码做到一个公司内部,不要有两个人在做重复的事情。当然,B计划除外。从产品与技术的协同的角度,产品前期做好必要的充分调研,避免不必要的反复或返工。总结下来就是,专门的人或团队,用正确的方式,充分利用现有资源,做一次,做到位,推广开。

我在会上还问了一个比较尖锐的问题,经济学上有一个原理,就是劳动分工是生产力进步的原因,那么现在DevOps所倡导的,开发即运维,同一个组织或个人负责服务的方方面面,是不是与这个原理冲突呢?

有位嘉宾解释得比较形像,DevOps就像是工厂里的流水线。这个比较还是很贴切的。

我自己当然其实思考这个问题很久了,并不是在会上突发奇想想到的,所以自己其实是有自己的答案的。

在我看来,DevOps不是一个纯粹的方法论,而是一套体系,有方法论,有工具,有相应的人员素质模型要求。DevOps并不是真的要求开发人员去按传统的运维人员的样子去实施运维。DevOps是构建在现代的虚拟化的自动化的运维体系与工具链之上,在让运维本身接近透明的情况下,消解了开发、运维的协作壁垒,让开发能专注开发而且对于服务有更高的控制能力,从而提高了整体工作效率。这恰恰是分工的进化而非倒退。单就运维工作本身而言,运维已经比过去的搬机器、拉网线、登跳板,传文件,换硬盘的传统运维有了云泥之别。已经失去了成为一个独立的职业的必要。有些公司,打着DevOps的旗号,又没有执行现代化运维的能力,仅仅是为了强迫开发同时做运维,以求省掉运维的开支。这种DevOps,才是那种反分工的伪DevOps。

IMG_20190525_085747

苏州再游感悟

大概10多年前,工作没多久的时候,和老婆去过苏州,待了两天,去了北寺塔、也去了寒山寺。记得当时下着濛濛的细雨,举着把旧伞,跟了个团满苏州的景点儿逛,看着个什么都感觉新鲜得很,非要合个影才能安心离开。只是时间所限,当时连苏州标志性的拙政园、虎丘都没有去。但是离开时心里也并不感觉遗憾,因为这样的城市,早晚要再来的,而且毕竟离上海这么近。只是不曾想,这再来,便是10年之后了。

这次住的地方离拙政园比较近,吃过了午饭,沿着平江路,边逛边走十来分钟就到了。平江路在苏州也算得上是一景,沿途有各色文玩、作坊、秀场、小吃,有些看上去倒也别具一格,但我们怕错过了拙政园的参观时间,便一刻也未停留,匆匆赶到了拙政园。然而进了门,看着周遭的黑瓦白墙、水榭连廊,错落的古树怪石,脚下的青砖铺路,衬以各式卵石拼出的花鸟虫鱼,就有一种时空错乱的感觉,仿佛来到了上海豫园,只是进入了自己未曾涉足过的另一个区域。我没有找志愿者讲解,听听每个连廊,每座桥,每间堂,每棵树或许不一样的故事。因为在我看来,故事再动听也只是故事;而且听故事,也并不需要来到这里。来,便是为了亲身感受。遗憾的是,我人来了,却没有生出什么太多感受来。

回客房的路上,还是会穿过那条著名的平江路,只是返程更加从容。再次从那些让人眼前一亮的店铺门前走过。然而我的眼神依然没有亮起来。这些店一般都很小,一张大门上面挂着个牌子,就是它能展示给路人的全部。所以大多数的小店都是把墙及门都做成玻璃的,好让人们能看到更多有意思的东西,还会把最具代表性的产品挂出来,还可能专门派个伙计到门口引导。每家店的风格都很别致,看上去都有点儿意思。但这其实让我很恐慌,因为它们像是以一种最具活力的方式散发着一种死亡的气息:它做的一切都是为了做生意,为了活下去。这得是多么糟糕的环境,才能激发出如此挣扎的求生欲呢?看着那一扇扇大门,仿佛看到一张张血盆大口,而我就是一只迷途的羔羊,要选择从哪只口中穿过。于是我再一次地,匆匆走过,像是逃跑一样。一路上只是看看江上的扁舟,听听摇桨人唱着的民谣。

类似的感觉,不啻于平江路。

一路上,我也回忆过之前来苏州的感觉。思考着为什么找不到那样的感觉。是因为苏州变了?还是我老了?看着我的小女儿,哪怕是捡到一段小树枝,也能开心地玩起来。我想,应该是我老了吧。但是好像又不是,因为人老了,并不应该乐趣变少呀,只是应该会更高级一些。小屁孩吃个糖就开心半天,而我已经不会了。而且更糟糕的事,开心的事儿好像越来越少了呢。

真是有些遗憾呢。

佛系程序员 第五品 如理实见分

这一品我考虑了很久,始终没有开始写。因为这一品虽然很短,但是可以说是整本经文最深奥、难以阐释的部分。我自己都没有完全理解,又何德何能去为人解说呢?但是这一品又不能不讲,最重要的东西不去讲,就失去了写这个系列的意义。这一品,在我看来,是在讲三观。然而这年头,一说三观就特别敏感,我忘了之前在哪里听到过这样的一个人生经验,说:做人、做事,不要输出自己的三观。我想我是基本赞同的,虽然并不严格执行。再盗用另一个更接地气的说法,一个人的思想就像内裤,你穿没穿,穿的啥样的,你自己知道就行了,不用逢人就脱了裤子给人看。我这里主要是想分析一下佛祖的内裤,但是不免会夹杂一些私货。诸位看官自行分辨吧。

我们先来看看本品的经文:

金刚经 第五品 如理实见分

“须菩提!于意云何?可以身相见如来不?”“不也,世尊!不可以身相得见如来。何以故?如来所说身相,即非身相。”佛告须菩提:“凡所有相,皆是虚妄。若见诸相非相,即见如来。”

佛祖最后告诉须菩提的话,大概是《金刚经》最出名的几句话之一了,因为这句话的确涵盖了诸多法门。我对这句话也有很多个方面的理解,个人感觉最重要的一个方面是,这是讲看待一切事物的方法论。“一切事物”有点空,具体点讲,我认为包括从写代码到与人交往等所有事情。在我展开解释之前,我希望各位看官能先自己想一想,你自己是如何理解这句话的。

先说“凡所有相,皆是虚妄”。相,我的理解,是泛指一切具体的或有形态的或是可以名状的东西。为什么说他们都是虚妄的呢?因为那只是表现形式、手法。并不表示真实的内涵。真实的内涵,一般都是抽象的。比如,我问,你能不能简单说说你对面向对象编程的理解。一般人听到这个问题可能会组织一下语言,概括一下。而我见过的一个牛人是这么回答的,抱歉我对面向对象编程的理解没办法简单说说。

他说得是对的。如果真的对面向对象编程理解到了一定程度,是没办法三言两语说清楚的。一个复杂的问题,一定是需要一个同等复杂的语言才能描述清楚,也需要一个同等复杂的理论才能解释和解答。所以,如果有人说,面向对象的主要特性,就是继承、封装、多态。但是又没办法从这三个词引申、延展出多少相关干货出来,那他一定就是个水货。

而且,你如果把三个对面向对象很懂的人叫一起,聊聊面向对象,一定会发现他们的理解是不一样的。甚至有些点会有冲突。最可能的是,他们三个人,没有一个人说的是完全正确的。而且,别说仨,即使你把所有的面向对象专家都叫来搞个轰趴,你也没办法聊出一个绝对正确的东西出来。

找不到绝对真理,这一点儿问题都没有,因为我们解决大多数问题,甚至可以说所有具体的问题,都并不需要先找到一个绝对真理才能解决。

上面这些分析的另一层意思是:无论谁说的什么话,都不会是绝对到位的。甚至连本意都不是。因为一个人说的话,总会是他心中所想的很小的一部分。他为了说给你听,可能只是取了他觉得最重要的一部分讲给你听而已,并不会完全、完整地表达自己的观点。然后你听的时候,漏一部分、误会一部分、再脑补一部分。你的理解,和对方心中真实所想,就差十万八千里了。哪怕说的人毫无保留、听人的虚心接收,这种情况也在所难免。

上面的,都是“相”,所以说“凡所有相,皆是虚妄”。只是佛祖的意思比上面说的这些要更广大得多。所以出家之人都是六根清净、六亲不识的。

我再举一个例子,上面我说,复杂的东西就需要复杂的东西来描述。你听完上面的解释后,现在又是如何理解的呢?沃尔夫勒姆,在2002年出版的《A New Kind of Science》中提出计算等价性理论,认为:

自然界中各种过程实现的计算在复杂程序上都几乎等价。

自然界中的过程有简单,有复杂的。如果他们都是等价的,有没有办法用简单的方式描述、处理复杂的问题呢?

你可以试着回答一下这个问题。一点儿提示是:你随手在一把尺子上划一下,这个划痕所示的刻度,是一个无理数,而任何一个无理数,因其无限性和随机性,都可以被认为包含着人类发展到现在的所有知识的总和。那么你能说,你随手一划,就复制了人类所有的知识吗?

上面是说“相”。下面聊聊“身相”和“见如来”。

前段时间,一个老同学看了我前几篇之后来问了我一个问题。大体是问,佛教所宣扬的教义就是让人超脱轮回,为什么藏传佛教还搞什么转世灵童。我说这个问题有点儿大,我得写个文章才能解释清。其实我四年前在知乎上也问过一个类似的问题:“既然“诸相非相”,那为什么佛院里还要立佛像?”。本质上都是想问佛祖有没有点儿逻辑,自不自洽。怎么感觉说一套做一套呢?

这个问题说起来简单,但是其实很不简单。

简单的回答是:佛教不同于佛法。佛教团队其实是很世俗化的民间或官方组织。再多的我就不讲了。

稍微复杂一点儿地正面回答这个问题:佛法中的跳出轮回,并不是跳出生死的意思。死还是要死的。但是“阿赖耶识”会延续下来。这个名字,是不是有点儿眼熟?对的,就是圣斗士星矢里沙加领悟的第八感。

再复杂点儿的解释,会牵扯到身相的“圣义谛”和“世俗谛”的区别,就太佛学了,我自己水平所限,还没办法解释到这一层。

程序员的价值和末日

最近和一些人聊到现在的程序员这个职业(是啊,程序员和程序员在一起还能聊些什么呢),更加加深我几年来对工程类程序员(泛指一切技术岗位的员工)这个职业的一点儿感受。主要包括这么几个观点:

  1. 程序员越来越不值钱。这是大势。
  2. 程序员的价值,归根结底在于省钱。
  3. 企业用人要求越来越高,学校教育脱节与之越来越严重。
  4. 技术演进速度迅猛。思维理念、知识体系,五年间就能变得陈旧。

这几点看上去没啥直接关系,其实彼此互有关联。我来解释一下。

程序员的Good Old Time

我记得高中的时候,有一次心血来潮,把爷爷年青时评选高级经济师的论文打成Word文档。我记得也就不到一万字,我花了一个小时才打完,都不好意思让人看见。然而我爷爷一直在旁边转悠,看我打完了居然还夸我打得快,说他当年,他也要打出来,但是不会电脑,专门找了打字员,打了半天才打完,打完还请人吃饭。我听得一脸蒙逼。心想怪不得人们都怀念Good Old Time。妈得原来那个年代,会打个字都能混得风声水起的。

然后呢?当我满怀希望地学了计算机,从校门出来的时候,当时公司老大们训话的话风就变成了:“你们不要天天NB哄哄的,把现在你们全开了,我就算只招六指的程序员都能招满。”这位老大这么有底气,是因为那个年代,程序员就已经满大街都是了。而打字员这个职业已经没有了。

当时,离“会打字就能吃香的喝辣的”的那个年代,也就20多年吧。

当然那位老大毕竟还是说笑的,当年学计算机的,的确也还是很吃香的,我刚毕业那会儿,大公司招在校生都是飞来飞去,公司靠谱点儿的,给实习生都是租个别墅住(当然不是一人一栋)。实习工资都够别的专业的正式工资。

现在又10多年过去了,就算BAT有这么干的吗?没有的。为啥?因为程序员越来越不值钱。虽然相比其它行业还是高不少,但是相比过去,已经差太远了。而那位老大的笑谈,恐怕也快成事实了。

那么程序员为什么越来越不值钱了呢?我先来讨论一下程序员为什么值钱。

程序员的价值

商品的价值,决定于创造这个商品的社会平均劳动生产率。

商品的价格,还会受市场供需关系的影响。

这些话可能有人还记得,我没记错的话,应该是初中思想政治课上就讲到的。我当年觉得政治、经济是最没用的学科,现在反而感觉,这两是九年义务教育里,在成年后的生活中,最能用上的两个学科。

程序员不是商品(好吧,也许是),那程序员的价值在哪儿呢?程序(软件)吗?不,不是软件,你买个Office,装在电脑里,从来不去用它,它产生价值了吗?并没有。你下载个理财App,从来不买理财产品,这个App产生价值了吗?也没有。

为什么用Office就有价值呢?为什么从理财App上买理财产品就有价值了呢?我不用Office可以写在本子上啊,我不用理财App,可以去银行办理啊。

你想想,哪个效率高?哪个成本高?

所以程序员的价值在于:程序员创造出来的东西,能用极低的成本,提高所有(买了这个软件的)人的效率和产出。简言之,程序员是史上最强大魔法系奶妈的角色。

当然这里的程序员是指群体,毕竟不是所有程序员都做具体软件的,但是从宏观角度看,软件行业做的事儿,就是以极低的成本,颠覆其它各个行业的劳动生产率。

所以程序员的平均工资高,因为软件行业创造的价值的确很大。尤其是在节省原有的人力、物力上。所以说,程序员的价值,其实是省钱。

程序员的贬值

然后回到原来问题上,“为什么说,程序员越来越不价值了呢?”。因为软件业,和其它行业最大的不同在于,软件的发展是累积的,不需要每次从头开始做,而且成长速度没有物理量约束。而且,代码是无国界的。

从小的说,基本所有编程语言的库都自带的排序算法,现在的程序员,除了在学校和在某些面试官面前,根本不会去写什么排序算法。

往大里说,现在有Spring Cloud,有Dubbo,有Istio。你说你也会写服务治理框架,这很好,但是不用写了,你只要会用就好。写了也没有真正的价值。因为这个问题已经被大体解决了。在软件行业,除非有技术壁垒或专利保护,一个问题只需要被解决一次。第二次做的价值基本为0。当然,价格不会为0,因为总会有公司愿意为这第二次到第N次的实现掏钱的。

所以你会自己从头写一个服务治理框架,很好,也能拿到高工资,但是没有价值。这只是有价格而已。除非你做得比前人的都好,会贡献出Delta部分的价值。

那么现在程序的价值在哪?是你能把一个东西(无论是自己写的,还是现成的)在一个公司用起来,为公司解决他们业务上的独特的问题。才是有价值的。这时你会发现,用现成的东西的成本会更低,于是利润空间会更大。

随着软件行业的日益成熟,能创造的新的价值空间会越来越小。而程序员的价格(即工资)从长期来看,总是要回归其价值的。所以很不幸的,最终价格,按我的逻辑,会是0。只是可能要个几百年吧。

程序员的脱节

做程序做久了,会发现程序员做的事情一直在发生天翻地覆的变化,变化快到很多程序员根本跟不上这个节奏。于是公司招人也面临一个尴尬的囧境:会写排序算法的,会Copy Paste的,会写CRUD页面的教科书式程序员汗牛充栋。但是想招一个能创造性地用代码高效地解决实际问题的人就凤毛麟角。而且更糟糕的是,CRUD程序员多得已经营造出了种程序员就是CRUD的不良氛围。这和现在国内互联网行业如火如荼,大都处于跑马圈地的阶段不无关系。

但是当潮水退去了呢?

程序员的末日,就要来了。

 

佛系程序员 第四品

多年之前,我当时的BOSS的BOSS来上海,就坐在我边儿上。那几天憋了半天,憋出了一个我感觉挺重要的问题,看他不太忙的时候就问他:“你觉得我们项目上什么是最重要的,或者说,我们遇到了事儿,应该按什么标准、什么方向判断优先级呢?”那位祖师爷转过头来,盯着我看了两秒,就盯得我心里一阵毛,然后严肃地和我讲:“Hugo,没有任何一个原则,是能应对所有问题的。你明白我的意思么。”。然后聊天结束。

其实须菩提问佛祖也是一个手段问题:“云何应住?云何降服其心?”。佛祖的回答也是很简单,和我BOSS的BOSS说得其实是一个意思:

金刚经 第四品 妙行无住分

“复次,须菩提!菩萨于法,应无所住,行于布施,所谓不住色布施,不住声香味触法布施。须菩提!菩萨应如是布施,不住于相。何以故?若菩萨不住相布施,其福德不可思量。须菩提!于意云何?东方虚空可思量不?”“不也,世尊!”“须菩提!南西北方四维上下虚空可思量不?”“不也,世尊!”“须菩提!菩萨无住相布施,福德亦复如是不可思量。须菩提!菩萨但应如所教住。”

本品划重点,非“应无所住”莫属。本系列写到了这第四品,总算到正题了。这四个字就是我在本系列中想表达的重点。这个字面意思很容易懂,但是真用上就不那么简单了。

我说“真用上就不那么简单了”,有人可能体会不到是什么意思。我试举一例。我面试时常遇到这样一类候选人,你问他LinkedList和ArrayList的区别是什么,他能讲得很清楚。然后在这个问题的铺垫下,再让他写个简单的代码,遇到需要使用一个List的时候,他随手就用了ArrayList,然后和他一起现场Review一下,问,这个场景下,会不会有什么性能问题?提示到这种程度,还是想不到这里应该考虑用LinkedList,非得等我指着代码,一一说破,他才恍然大悟,信誓旦旦地表示刚才只是大意忘了这个点而已。

一个最基本的知识,一个自己能讲得清清楚楚的东西。真到应该用的时候,并不能用得上的。什么原因呢?因为他知道的是“知识”,应用“知识”的过程,是一个组合问题,你要把所有已知的相关知识和当前的问题一一对应过之后,才能全面地回答一个问题。这是一个至少是O(n)复杂度的问题,当解空间太大的时候,没人有这个脑力。一个“知识”,只有内化成“见识”、“智慧”之后,才能以O(1)的速度求解所有问题。那么怎么内化呢?

看过《倚天屠龙记》的人应该对张三丰教张无忌太极时的经过印象颇深:

  张三丰一路剑法使完,竟无一人喝采,各人尽皆诧异:“这等慢吞吞、软绵绵的剑法如何能用来对敌过招?”转念又想:“料来张真人有意放慢了招数,好让他瞧得明白。”

只听张三丰问道:“孩儿,你看清楚了没有?”张无忌道:“看清楚了。”张三丰道: “都记得了没有?”张无忌道:“已忘记了一小半。”张三丰道:“好,那也难为了你。你自己去想想罢。”张无忌低头默想。过了一会,张三丰问道:“现下怎样了?”张无忌道: “已忘记了一大半。”

周颠失声叫道:“糟糕!越来越忘记得多了。张真人,你这路剑法很是深奥,看一遍怎能记得?请你再使一遍给我们教主瞧瞧罢。”

张三丰微笑道:“好,我再使一遍。”提剑出招,演将起来。众人只看了数招,心下大奇,原来第二次所使,和第一次使的竟然没一招相同。周颠叫道:“糟糕,糟糕!这可更加叫人胡涂啦。”张三丰画剑成圈,问道:“孩儿,怎样啦?”张无忌道:“还有三招没忘记。”张三丰点点头,收剑归座。

张无忌在殿上缓缓踱了一个圈子,沉思半晌,又缓缓踱了半个圈子,抬起头来,满脸喜色,叫道:“这我可全忘了,忘得干干净净的了。”张三丰道:“不坏不坏!忘得真快,你这就请八臂神剑指教罢!”说着将手中木剑递了给他。张无忌躬身接过,转身向方东白道: “方前辈请。”周颠抓耳搔头,满心担忧。

傻子都看得出来,张三丰在传授剑道、剑意,而不是在传授剑招。我们推衍一下,这里的“道”是什么呢?学编程、写代码,做人、做事儿有没有“道”呢?

佛祖的道,就是无所住。不住‘色’,不住‘声’、‘香’、‘味’、‘触’、‘法’。有人可能想问:这些色啦、法啦都是什么意思呢?这不重要,因为这里只是举例、比喻,佛祖也没办法把所有你可能要住的东西都枚举出来不是?有人可能又想问:那就是什么原则、法则都不要啦,做个不讲原则的人啦?更不是。我只能诡辩说“不讲原则”也是一个原则。因为更深的意思,我也没办法讲出来了。我只能建议说,不要总想着分析具体什么应该做,什么不应该做。那就是“邪道”了。无论你分析出什么结果,都是有所住。

我几年前就常常感觉有点儿对不住我手下的小弟。因为他们有时来问我一些具体的问题,我没办法给到他们一些正面的、直接的、具体的回答。我的回复大都都是方向性的,原则性的。然后他们自己折腾半天。但是如果事情到我这里,他们又会看到我好像什么都能搞得定,而且还挺快。我起初是有些担心,他们会不会觉得我就是故意不告诉他们。后面大家共事久了,就不会有这种担心了。因为他们会发现,我这人向来是知无不言、言无不尽的。只是有些人终归还是不习惯我的风格,喜欢谈具体的东西,不喜欢谈抽象的。这也无可厚非。而我也其实并不总是对所有人都有足够的耐心。这时候就照章办事儿就好。

佛系程序员 第三品

《金刚经》的前面两品都是铺垫,佛祖开始说正事是第三品。正文如下:

金刚经 第三品 大乘正宗分

佛告须菩提:“诸菩萨摩诃萨应如是降伏其心!所有一切众生之类:若卵生、若胎生、若湿生、若化生;若有色、若无色;若有想、若无想、若非有想非无想,我皆令入无余涅盘而灭度之。如是灭度无量无数无边众生,实无众生得灭度者。何以故?须菩提!若菩萨有我相、人相、众生相、寿者相,即非菩萨。”

当年年少中二的时候,读到第一句“我皆令入无余涅盘而灭度之”,就去闭目参悟武功心法去了,后来什么都没悟出来,这经的后半句也没读下去。直到多年之后,再来读的时候才发现,原来佛祖根本不是这个意思。

我先来翻译一下大意:

佛跟须菩提说:“你们应该和他们讲:如果你说‘我把所有众生都度了’。其实就没人被度,因为你有众生相的话,你就连菩萨都不是。(菩萨都不是,你度个毛啊)”

先小科普一下“灭度”,即“度灭”,就是超脱生死的意思。只是一种得了无上智慧后的一种状态,不是指死。涅槃也不是死的意思。没死也可以涅槃。

佛祖这里说的‘度’、‘菩萨’,其实只是一种比喻。而不是单纯地说‘度’或教育‘菩萨’。而是在阐释一种理念。我想了很久,如何用一个比较现代化的比喻来解释这个理念。但是感觉比喻还是太间接,还是直接讲理念是什么比较直接,用比喻的形式来说话,对听众的“慧根”要求太高,可能听了还是听不懂,而一句话说了,听众没听懂,就是白说。

佛祖的这个理念可以有很多种讲法,比如“内容”和“形式”,“动机”和“手段”,“过程”和“结果”。其实都是同一个理念的不同表达形式。

“度众生”,是形式、是手段,是外在的结果。佛祖想说的是,心大于法。如果你动机不纯,过程不正,内容不善,做什么都是徒劳的,不会得正果。(佛祖在这里没说什么“纯”、“正”、“善”,我纯粹为了工整而硬加的。而且佛祖想说的其实也并不是这些,佛祖想说的就是心态。无我,无人,无众生,无寿者。度只是手段。没有一个合适的心态,度也是白度。)

所以做人做事儿,最重要的是你的本心。明朝大哲王守仁创立的心学也表达了类似的观点:

爱问:“至善只求诸心,恐于天下事理有不能尽。”

先生曰:“心即理也。天下又有心外之事、心外之理乎?”

——《传习录 卷一》

这里的心,指的是“道心”,而非“人心”,和佛教里的“阿耨多罗三藐三菩提心”大体是一个意思。至于两者的区别,王守仁自己的解释是:

“只说‘明明德’,而不谈‘亲民’,便似老、佛。”

意思是认为佛学只是让人开悟、明至理,但是普罗大众完全用不上。所以说王守仁的心学理论上是比佛学更接地气并有实用价值的。但是心学IPO才小几百年,没有佛教根基深厚。王守仁的名气也没释迦牟尼大,所以人们平时聊天放屁、插科打诨都是拿佛祖开涮,提王明阳也没人知道啊。

你看哈,很多宗教、理学的经典其基本理念都很类似,按初中政治、历史课本的话说,都是唯心的,都是错的。说到唯心,我就又想插一嘴。我一直就特别纳闷儿,你看哈,量子力学解释不了女人为什么老问男人诸如“我和你妈同时落水你先救谁”之类的问题,也没人说量子力学是错的,但是有些人总是用唯心主义解释不了这个世界运作的原理为由,认定所有的唯心主义学说都是荒谬的。

这个扯远了。

我们回到第三品的经文上,这个在说什么事儿呢。我先引用知乎上的一个问题,结果正义是不是就可以无视过程的正义性。我回答说不是,我说因为你的过程,可能就是别人的结果。而这段佛经更进一步,过程都不够,而且要考量初衷及动机。所以你看出家人总是一本正经、心无旁骛的,因为他心有邪念都不行。佛祖就看不上他。

这段经文还说了什么呢?我们想想之前的问题是什么?须菩提问的是,如何降服善男善女的心,让他们也像如来佛祖一样有大智慧,得以超脱(涅槃)。

那佛祖回答这些是什么意思?其实有两层额外的意思(佛祖从来不说狠话,所以没有直说):

  1. 须菩提,你这是想去度化众生么?你这想法就不对啊。你在分你、别人、众生。
  2. 众生其实是度不了的。如果能度,佛祖就直接说了。而且,众生是不需要度的。佛祖也从来没有想过去度化谁,甚至也不关心有没有人能度。

说白了就是在批评教育须菩提。

至于说原文里的我相、人相、众生相、寿者相都是啥意思,因为我并不是在讲经,这里就不展开了。

佛系程序员 第二品

如何最快地学到新东西呢?一般找对人,然后问对的问题,大概算是比较便捷的方式之一。但是问对的问题其实很不容易,因为想问对的问题,有两个前提:知道自己知道什么、不知道什么,还知道自己想要什么。面试的时候,如果真有人在提问环节什么都不问,我心里基本就把这个人放弃了。因为不提问的人,要么是什么都不知道,要么是对做事儿没兴趣,要么是对事儿没自己的想法,只会人云亦云,要么是对我这个人有成见,懒得和我说话;无论是哪种情况,都不是什么好现象。所以干脆直接拒掉好了。

《金刚经》这么平易近人的作品,写作手法上也是和小说有一拼,真就是师徒一问一答的形式。感觉比《XXX语录》还像是语录。第二品,和第一品一样,看上去又是一堆废话。我们来瞻仰一下原文:

金刚经 第二品 善现启请分

时,长老须菩提在大众中即从座起,偏袒右肩,右膝着地,合掌恭敬而白佛言:“希有!世尊!如来善护念诸菩萨,善付嘱诸菩萨。世尊!善男子、善女人,发阿耨(nuò)多罗三藐三菩提心,云何应住,云何降(xiáng)伏其心?”佛言:“善哉,善哉。须菩提!如汝所说,如来善护念诸菩萨,善付嘱诸菩萨。汝今谛听!当为汝说:善男子、善女人,发阿耨多罗三藐三菩提心,应如是住,如是降伏其心。”“唯然,世尊!愿乐(yào)欲闻。”

其实说白了,就是须菩提问佛祖如何收了世人的心。那么为说这么一堆废话呢?因为多出来的每句话,都是有意义的。我们一起来分析一下。你也可以说我的说法牵强附会。但是佛经这东西啊,比《哈姆雷特》还哈姆雷特,比《红楼》还红楼。照例先翻译一下。

当时,有个叫须菩提的长老,从人群中坐起来。光着右膀子,右腿跪着,作合十礼,毕恭毕敬地向佛祖问道:“好久不见啊,老大哥,觉悟者们喜欢跟菩萨们讲道理,事事叮嘱。老大哥,如果有些有志青年男女,也想成为觉悟者,得到无上的大智慧。那我们菩萨们,得跟他们讲什么作人作事儿的原则?怎么说才能让他们信服呢?”佛说:“没错,没错。须菩提啊!就像你说的,觉悟者们的确喜欢和菩萨们讲道理,叮嘱他们。这回大家都好好听着,我就跟你们掰扯掰扯:‘如果有些有志青年男女,也想成为觉悟者,得到无上的大智慧。那我们菩萨们,就可以这样讲作人作事儿的原则,从而让他们信服。’”。(大伙齐声说:)“就得这句话了,老大哥,我们想听想得高兴得屁颠屁颠的。”

第一句,“时,长老须菩提大众中即从座起”。须菩提是谁?佛祖座下十大弟子里排前三吧。大众呢,就是第一品提到的1250个僧人。“从大众中即从座起”,什么意思?不是从世尊附侧座起。明白了么。第二品,第一句,还是在说平等。

佛经的写法和《圣经》最大的不同点在于,佛经都是讲故事,聊闲天,你从中读出什么看客自便。所以我说佛经比《红楼》还红楼。而《圣经》基本就是上帝说要什么,就是什么。让天下雨天就下雨。上帝说什么你必须听,不听就死去吧,死了还要下地狱。所以我一直不是很理解,上帝心肠这么歹毒的人,还有这么多拥护者。看来人们还真都有点儿“斯德哥尔摩综合征”倾向。

佛就不一样,特别的亲民。然而须菩提在发问前还是把该做的礼节一个不落地都做了。为什么呢?他不注重礼节,佛祖也不会拿他如何——估计顶多也就不搭理他了呗。不过佛祖胸怀这么宽广的,会这么小心眼么?他不是衣食都自理的么?这其实是在描述第二个道理:一个人,如果知道什么是对的,什么是好的,那么照做就是了。不用在意对方或其他人如何看待。这其实不仅仅需要见识,还需要勇气。须菩提对佛的尊敬,并不是做给佛看的,也不是做给其他人看的,而且也不是因为自己觉得对而做的,因为为了对而做,也是错的,甚至不是做给自己的。

再来看须菩提问问题是如何问的。先说,“希有!世尊!”,这是打招呼,就像写信要写“致某某某”,后面要署名,不能只写正文,这些都是规矩。还是礼,还是尊敬。

后面又做了一个铺垫:“如来善护念诸菩萨,善付嘱诸菩萨。”,什么意思呢?问别人问题,如果不想显得唐突,就得写解释一下来龙去脉,说话也得有个起承转合。别人才好接话不是?这可以说是话术,也可以说是礼。

当然啦,佛经原文是梵文,这个版本的《金刚经》是姚秦(即后秦,公元4世纪的一个朝代)时翻译的,那个时代的人很重礼,至于这些繁文缛节是译本才有的特点还是梵文就有的意思?我就不清楚了。但是这重要吗?不重要的。

我们先回到问题上,问题的核心就一句话:“善男子、善女人,发阿耨多罗三藐三菩提心,云何应住,云何降伏其心?”。佛祖听了之后如何回答的呢?

佛祖先是肯定了他的想法和疑问,然后把这个冗长的问题复述了一遍。这简直和现在发布会或演讲中的问答环节别无二致啊。这套路原来已经传承千年了。当然我相信这肯定不是佛祖首创。公共场合讲话,总是要照顾多数人的。然而在佛祖的铺垫中,有几个字是套路之外的。这几个字才是佛祖想着重表达的:

汝今谛听!当为汝说

汝,就是你;今,这回,现在;谛听,好好听、仔细听。然后我才给你讲讲。意思是什么呢?一层意思是,你不好好听,可能根本就听不懂。其实后半句还有一层意思是,如果不是你要听,我也不会讲。你这问了,我便趁这个机会讲讲。

这里的“听”,不是listen的意思,也不是hear的意思,而是comprehend的意思。这三者有什么分别,我在知乎问题《为什么有很多学生在老师讲课的时候什么都懂,但是做题却不会做?》下面有相关的解释。这里就不展开了。

佛祖的行事风格是,听众们不想听,或是没想到去听,便不会非讲给你听。几乎所有的佛经,都是这种弟子问然后佛祖答的形式。你不问,我便不说。因为多数情况下,说了其实作用也不大。因为想法上的事儿,得自己有听的意愿,也有理解的意愿,才能理解并接纳新的想法。自己钻牛角尖,陷进去出不来的人,佛祖是连话都懒得讲的。通俗点儿讲,佛祖也是认同“狗改不了吃屎”及“烂泥糊不上墙”的。

须菩提是聪明人,一听就懂。立马表态:“愿乐欲闻。”,比“谛听”的程度还高。当然啦,这里应该是没有拍佛祖马屁的意思的。更多的还是礼节而已。

总结一下第二品,这一品主要讲人和要自己的想法、见识,不受旁人眼光、看法的影响;又要有开放的心态去了解别人的想法,并能接纳别人的想法。没有这个基础,读多少书都没有用。

佛系程序员 第一品

金刚经我读了有不下100遍,基本每一遍都有新的理解。有些感想总是想写下来,且不管有没有人会看。至少经年之后,自己有了更多的感悟,再回来看的时候,也好有个印证。金刚经共有三十二品,此为第一品感悟。

金刚经 第一品 法会因由分

如是我闻,一时,佛在舍卫国祗树给孤独园,与大比丘众千二百五十人俱。尔时,世尊食时,著衣持钵,入舍卫大城乞食。于其城中,次第乞已,还至本处。饭食讫,收衣钵,洗足已,敷座而坐。

我第一次读到这里的时候就停下来去Google “金刚经 原文”,“金刚经 正文”。因为一眼看上去就觉得不正经。就像是某个佛家弟子写的听经文后的自传,而不是释迦摩尼写的经文。但是找了半天,发现这真的就是正文原经的时候,我愣了半天,这和我想象中少林寺困住狮王谢逊的“金刚伏魔圈”的本源之经实在相去太远了。不过能让六祖慧能开悟的经文。我还是耐着性子读了下去。

我先翻译一下:

我是这么听说的,有一回,佛在“舍卫国祗树给孤独园”这边,和250位和尚在一块儿。正赶上佛祖他老人家要吃饭了,于是穿上衣服,拿着要饭的钵盂,到城里去要饭。大伙在城里挨着个地要完饭,回到园子时各自的位置上,把饭吃完,把衣服脱下来和钵盂一起收好,洗了个脚,铺了个地垫坐了下来。

咳,“衣”或许应该翻译成“袈裟”吧?不过这不重要。说重点。佛教的无上经典(我突然感觉应该也可以作为丐帮的),一开头把佛祖的日常起居介绍一下,有什么特别的地方么?没有吧。没有就对了。佛祖本来就没什么特别的。佛祖想表达的也是这个。佛祖也要吃饭,也要穿衣服,也要洗脚,站久了也会累,也没个像样的地方讲经,更没有什么神迹。就是个普通人。但是他也是特别的,因为他是佛祖,百千万亿劫(佛教时间单位,一劫大概等于268亿7680万年)才出一位的无上正觉者(得“阿耨多罗三藐三菩提心”者)。

这在告诉我们一个很简单的道理:所有人,其实都是一样的、平等的。好,这又是一句废话——直到你真正明白它的意思。

我不知道我是否明白了,但是我感觉这是在讲,其实作人呢,并不需要真正地畏惧、敬仰、羡慕、嫉妒、敌视、鄙夷任何人。因为人啊,都是一样一样一样的。所以和人讲话什么的,甭管谁,不用脸红,说错了他又不会打你。哪怕上手打架,泰森站对面也不用怵,反正他也不屑于打你的,对吧?

比如我见过一些人,知道自己在某些技术方面不是特别好,做东西就特没有信心,做得对不对都不敢讲,更不要问做得好不好了。其实在一方面就是没明白一个道理:别人能做到的事儿,你只要不是智力上或是态度上有什么问题,应该终归也是可以的,而且不需要别人的肯定,才能有自信说做得好了。你只要真明白在做什么,自己就会有标准。因为人和人都是一样的。

但是至于说,为什么有人住千亩大平层,有人住桥洞搭窝棚呢?

因为人和人其实是不一样的。而且人和人之间的差距和收入的差距一样,是能差几个数量级的。程序员更甚。

我不是说人是一样的么,怎么就又不一样了呢?我说话有没有逻辑?这不是我的逻辑,这是佛祖的逻辑。想得读懂《金刚经》,你得适应佛祖的逻辑。后面几品《金刚经》里,出现最多的句式就是:佛说XXX,即非XXX,是名XXX。所以我说读懂《金刚经》,就不是说真是读懂《金刚经》,而是称之为、当作读懂《金刚经》。我说“当作”,就不是“当作”,是当作“当作”……

这段还说什么了呢?佛这么NB的人,岁数也这么大了,他也没让人照顾自己吃喝拉撒睡分毫。都是自己做的,自己穿衣服,自己洗脚,而且井井有条。为什么这么讲呢?如果去看下其它上部座经文就知道了。基本上都是这样开头的。(下部座经文像《本愿经》、《法华经》什么的就算了,那里的佛就开始自带主角光环了。)

写这些又是什么意思呢?其实是在讲,吃喝拉撒睡也是经文,吃喝拉撒睡也是修行。好,这是什么意思呢?

这个可以有很多意思。我这里只想说一个,就是,你想修行(或想学习)是可以随时随地的。

有人时常说自己没有XX机会去做XX。比如,没时间看书,没时间学习,没时间做这儿,没时间做那。其实吧,不是真想做罢了。真想做的事儿,总是可以做,而且随时随地。

第一品的东西不多,我就先说这些。开头没别的,就是要把心态放正,建立信心,并切实地做下去。无论做什么事儿,这都是前提。放第一品。非常合适。

注:本文仅仅描述我对经文的理解,并不表示我完全赞同并实行。

佛系程序员

最近面试了大概上百位求职者,和有些人谈得开了,有人会让我给他点儿建议。我大都只是建议他们培养出一种把事儿做好的心态。有缘的,我会建议去读一读《金刚经》。听者基本都是一脸不知所以的表情。倒不是说我之前有从《金刚经》中悟出了什么,只是后来读《金刚经》发现其中有很多理念,与我对写代码的想法不某而合。当然,也可以说是我自己一厢情愿地想当然罢了。下面我简单地介绍一下这些理念。

首先,一说《金刚经》或任何一部佛学经典,人们常常会有的一个刻板的印象可能就是:和尚才要读那东西。我一开始读《金刚经》的动机就不太纯正,我就是想看看佛祖这么牛逼的人是怎么忽悠,啊不,感化人的。后面我读完了就发现自己脸就肿了。《金刚经》中有个四句偈,是这样说的:

“若以色见我,以音声求我,是人行邪道,不能见如来。”

说得很白,我就不解释了。如来为了被人误解,甚至还说:

若人言:如来有所说法,即为谤佛,不能解我所说故。

我十分想知道那些天天烧香拜佛的人听到佛祖这么讲会有什么样的心理活动。

好,如来说他什么都没说,那《金刚经》说了些什么呢?六祖慧能说,这句话可以说是《金刚经》的总旨:

应无所住,而生其心。

这句话能展开解释成很多东西。我这里就不展开了。回到前面说的给求职者的建议上,我给候选人推荐读《金经刚》的意思其实是:你不要依赖别人如何讲、如何做,你要有自己的见识,自己的作为。我说什么,说得再对,再好,也是我的,不是你的。然而,我又不是真的就是要让人按这个原则做。因为按任何原则做,其实都是“有所住”。但是呢,又不是说让人抛弃所有原则。《金刚经》还说:

汝若作是念:“发阿耨多罗三藐三菩提心者,说诸法断灭。”莫作是念!

这大概就是“不可说,说即是错。”的来源吧。

所以呢,只能你自己去看《金刚经》,至于能从中读懂多少,就要看个人的悟性和缘分了。这个在《金刚经》里也给读者打了招呼:

若善男子、善女人,于后末世,有受持读诵此经,所得功德,我若具说者,或有人闻,心即狂乱,狐疑不信。须菩提!当知是经义不可思议,果报亦不可思议。

《金刚经》,在我看来,是本破除愚昧的书。