标题党的进步:道字大旗不再扯,美为号召又开张

标题党的进步:道字大旗不再扯,美为号召又开张

—— 我读《编程之美》

题记

为拟这篇读后的标题,我花费了不少的功夫,最终我想起邹欣先生在他的博客上的一段文字,说的是上次博客堂年会上的预测之TOP(在这里)。其中就有这样的一个关于书名的观点,正好引来作本文的开题。再加之本就是邹先生所述或所认可的观点,固而必当切合其书的本旨。

0、引子

有一天,我问了方志远兄一个问题:有没有一本书,是有一个主标题,而有两个副标题的。志远兄答我说,明清或民国时期的书里可能会极偶然地有过,但那种做法在现在的书中,是找不到的。那时,我想我提出的问题大概已经足够奇怪了。

后来去北京参加SD2C,正好听周筠老师说要出版这样一册《编程之美——微软技术面试心得》,当时心里就打着小鼓:一本书怎么能既讲面试心得,又讲编程之美呢?这个书名的主副标题的风马牛之怪异状,大概可以同我的那个“两个副标题”并肩了。

很好,我仍是第一时间拿到了这本书的样章。本没有打算写书评,然而看完大概,又生出悲天悯人之心来:如同邹欣先生那本《移山之道》一般,如果仅是从标题看去,大概读者会陷死在作者设计的、需要以超过249的智商、并有着袋鼠腿般弹跳力的思维来解局的假象之中而不得脱身。如此充满异能色彩的标题,其本身就提出了一个(或许也可用于面试的)题目:主副标题的背后究竟有何玄机?

我认为自己智商能达到要求,可以象解述《移山之道》那样为大家解释一下这个书名,以免读者走了弯路。遂决定做一做这个题目,由是写了这篇读后。

多面性:唐僧团队

在写这些文字之前,我正好读到一篇有关HR的文章,是讲人事经理如何看待“唐僧团队”裁员的。三种人事经理/主管分别从员工价值、阶段需求和工作内容方面提出了看法。我首先觉得,从人事部门来看,这些选择无可厚非。要么量人,要么量力,要么应事之需,所以也算得好办法。 (CIO思考:假如唐僧团队裁员你会先裁掉谁

然而,这并不见得是“唐僧团队裁员问题”的正确解法。因为这个问题本身是具有多面性的,不同的部门或人从各自的角度来看,都会有差异。但如果这时有一个“充要问题”提出,那么问题转变为单面的了——如果你能确认这个问题是其它任何问题的前提的话。

例如我发现,所有HR都没有提到这样一个充要问题:唐僧团队是拿来干什么的?

显然,我们只是要裁员,不是要否定这个团队的目标。所以无论如何解决问题,都不能影响这个目标的达成。而“唐僧团队”的目标,其实是“保护唐僧西天取经”(参见《西游记》原著)。由此问题变得很有趣了,在这个团队中,看起来最无能、最碍事的那个人,却是最不能被裁员的。因为那个人——唐僧是目标的一部分。

尽管这只给出了谁不能被裁,而不是“裁掉谁”的答案,但这说明:当问题由多面变为单面时,答案将变得清晰——哪怕这个答案不是最终的解。

目标:沙漠求生

问题的多面性中,最容易看到也最容易被忽略的是“目标”。我们大多数人容易陷入对细节或具体问题的讨论,而忘掉讨论它的原因。

例如我刚到盛大时,接受过两天的内训。这个内训中有一个“沙漠求生”问题,说飞机迫降在沙漠中了,现有十件物品需要决定其重要性,以便在必要时使用或抛弃。这个问题是由不同的小组共同协商并给出答案的。我所在的小组开始了讨论:大家对各个物品逐一衡量,然后在较小的争议的情况下达成了一致,最后用了不到五分钟,便给出了答案。在交卷时,我问了一下:我们干么要决定物品的重要性呢?我们真正的问题“好象是”要逃生……但我的疑问没有被解决,答卷就交上去了。

内训后的评论中,讲师说:这是盛大最快的一次交卷。从答案的分数上来说,各位都很聪明,能较正确地选择这些物品。但只有一名同事提了一个问题:我们做这些选择的目的只是逃生,所以没有逃生计划的选择都是错误的。

在五分钟的时间里,我们没有推举出“逃生项目”领导者,没有制定出逃生的计划,也没有更详细的分析。我们小组用了5分钟证明大家都是可以交出90多分答卷的聪明人,但面对逃生项目,我们都失败了。

因为我们忽略了做这些选择,其原始的目标是什么。

从《编程之美……》到微软的人力策略

很早以前,我就听说过“Google只招最聪明的人”、“微软只招最优秀的人”。这两个人力策略其实有一个一致的陷井:如何衡量。一个、或一系列问题的“答案”,是否是衡量优秀与聪明的标准呢?

当然不是。通过类似的衡量,我们小组在“沙漠求生”中成了“聪明的失败者”。聪明与否,不是从问题的答案就可以看出来的——能看出来的,是解决问题的能力。

《编程之美》列举了几十道精彩的试题,每个题目都有详细的分析和解释。你可能非常聪明,但却不会解答其中的任意一个问题。因为这些问题所展示的能力,并不见得是你所擅长的。换言之,这些问题不是为一个通常概念上的“聪明人”或“优秀的人” 而设定的,而是为一个职明或优秀的“程序员”而设定的。

在招聘这个问题上的“充要问题”是:招来人做什么?真正的答案是:你被招来做什么,决定了你的“优秀”与“聪明”如何被衡量。因此,如果你被招来做程序员(或其它类似的技术职位),那么(在微软亚洲工程院)衡量你方法,就是类似于《编程之美》中所列举的那些问题。

但是,微软并不只招程序员,IT业也并不仅仅需要程序员。

程序=计算求值,但问题不总是有答案的

如果我们把一个问题看成总是有结果的,那么我们总是可以把这个问题抽象为可计算的模型并求值。如果作为人——世界的观察者,我们面临的问题都是这种类型的,那种世界必然是程序化的。

然而,世界不是程序化的。所以,你面临的问题也不是必然有结果的。

我终于理解为什么这本书是叫《编程之美》,而将“面试”作为它的副标题。“在微软的技术面试”,在这本书中被局限在一个“做程序员”的范围之内。这本书设定的目标是:如果你想向微软证明你可以是合格的程序员,那么你就解决这些程序化的问题。

而我大概是没有这个“在微软做程序员”的命了,因为在我看来,问题的复杂性在于它的无解,而不在于它的有解。无解的问题如同一只海胆,你从哪方面看去都是问题,你必须拔了那些刺——既是问题的边角,也是问题的根源,然后你才会看到问题的真相:海胆原来只是一堆细胞。

你的目标是什么?

如同“唐僧团队”问题所表现出来的:(若非特殊情况,)HR不会为某个团队需要什么人而招聘,HR的作用是为构建公司的人力体系而招聘。他的条件是“符合公司需要的(例如聪明的或优秀的)、有充分价值的”人才。前提是:这些人才的选择,是在某种领域中可量化考核的。

你的目标是什么呢?是微软吗?或者是微软亚洲研究院?更或者是一名开发人员?你的目标到底是一个公司,还是一份工作呢?你是热爱这个公司,还是热爱这个工作呢?你的目标所需要的能力是什么?你的能力又是什么呢?

这些都是问题。然而,如果你不弄清这些问题而去读《……——微软技术面试心得》,就不是问道于盲,而是盲人问道了。

总结

在我而言,邹先生的考题是“这本书的书名为什么是这样”,而我的答案是:看到问题的多面性,看到问题的目标。

一本书要作为两本书来读:编程之美讲编程,面试心得讲面试。至于书名上还写着的“微软”两个字,正好是作者组成员们的身份。一个书名里头讲了三件事,正好比我那个“两个副标题”的问题——虽然很奇怪,但总有其内在的道理。

书的好与不好,不要总盯在书名上。分开来看,这本书在编程与面试两个部分写得都非常精彩。“想做程序员”如同“想做科学家”一样,如今都快被人拿来做笑谈了,但是这两种意愿却完全没错,也相等同的崇高。所以想做程序员的人不必怕着了那些流言,自按自的道去走就好了。而同样的原因,这本书的精彩与不精彩,也不必听着了那些闲杂碎语,便有畏怯之心,摆正了一个程序员的心态,或者一个面试者的心态去读就好了。

这本书不会只给你答案,还会教给你思考问题的方法——所以它是一本好书。而我这篇文章, 并不是讲一本书好或不好的书评,而只是教给你思考问题的方法——所以它算不上一篇好的读后。然而我之现在,已然少了“好或不好”的评价欲望,时时升腾在我心中的,是面向问题时的那种折返不息的浪潮——我甚至不关心浪潮的扑打,而只把眼光投向洋流的来向。