今天偶然在人人上看到微软亚研院分享的Lamport的采访视频,心情也比较好,就点进去看了。全英文没有字幕也许是一道屏障,还好之前被训练过,耐着性子也能看完。边看边记边傻笑,人家咋说的这么好呢?采访二十几分钟,主持人没说太多,主要是Lamport本人在说。从他得Turing奖的经历说起,Lamport大牛就说了,自己当时还是在飞机场等飞机时候,偶然地接到了wifi连了网,然后接到一个电话才得知自己获奖的。然后也稍稍庆祝了一下。
接着介绍自己的主要工作——逻辑时钟等,貌似是1978年的paper,这个东东,在研究生阶段是必学的知识。大家也挺熟悉的了。Lamport讲自己是一个数学家,其次才算是计算机科学家。强调自己对于证明的重视。实际上,他给出了一个状态机器来解决分布式进程通信的问题,类似于图灵机,也是抽象机器或者说思维机器(mental machine)。他告诉主持人,那时他不是从数学也不是从计算机角度看问题,而是以物理学的思维方式,把进程看作是agent。抽象到很高的层次来研究分布式系统的。最终他给出的模型,大家都点赞。他的目标是给出不同于多核模型的一个real分布式计算模型,容许部分的计算设备有failure。
然后,主持人想套点学习心得,就问了,为什么Lamport大神你的思维能力特别强悍呢?大家都说,Lamport给出的解答,很犀利。这时,大牛就有点不好意思了。不过也分享了自己的感受。第一,他说,我是学数学的,拿的是数学专业的phd。抽象能力很好,容易抓住问题的本质,而不会distracted by details。第二,我渴望通过证明来获得对问题的理解,总是有incentive to look at CS mathematically。(这句翻不出感觉,只能直接转录。)顿时膜拜了。这简直是在说服主持人学数学啊,主持人当时也“呵呵”了。
接下来,Lamport就被问到哪些人对他影响较大,他着重介绍了一位叫做Edison的老师(应该是老板),在暑期实习的时候给了他很多问题和学习数学的建议。再后来就是说到E. Dijkstra。这又是一位更大的牛。这里不说了。Lamport谈到大学时说,大学是教育自己(to educate yourself)的地方,而不是job training的地方,需要训练自己的批判思维和抽象思维。顿时泪流满面,深切认同。后来Lamport谈到Tarjan大牛的一句话,没有grand theory,只有little problems。他也深表认同,回望自己的工作,自己并没有为了创建一套grand theory,而是不断地去解决一系列问题。然而最终,这些答案自己汇成一个path(这里使用的path很到位)。
最后,Lamport苦口婆心说了:“Learn as much maths as you can”。
============
Lamport建议:
1. 数学:抽象能力
2. 实践:doing it
3. 避免基本缺陷(avoid fundamental flaws)
====================
PS:对了,Lamport还推荐了TLA+语言,用于描述系统的。之前有碰过,没有深入。这篇纯属个人靠记忆发挥。肯定有不妥的地方。望大家包涵~