Jeff Dean :谷歌背后的技术大牛

来自: 21CTO(微信号:we21cto),编译:洛逸

在谷歌加州山景城总部,除了拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)外,真正的牛人工程师要数杰夫·迪恩(Jeff Dean)了。


“真空中的光速大约是3小时,然后Jeff Dean花了一个周末优化了基础物理学。“ 


—— Jeff Dean的事实


杰夫.迪恩是谷歌最受欢迎的软件工程师之一,谷歌大脑(Google Brain)的负责人


忘记拉里和谢尔盖吧,在加州山景城的Googleplex,真正的名人工程师是杰夫.迪恩(Jeff Dean)。


在山景城,一个Googler名叫Heej Jones,在Quora上讲了这样一个故事:


“在我第一天到Google上班后,一位共同的好友通过邮件向我介绍了Jeff Dean。这是我的第一周,我邀请他一起去吃午饭。当时,我并不知道他是谁,也不知道他在公司的地位。就在第一次午餐时,我注意到人们从几张桌子上盯着他,还有一帮人则会在我们的桌子旁边悄悄地说着什么。

回来时,我的朋友大声和我说道,“你和Jeff Dean共进午餐了?!”

后来我开始尝试培养更多的工程师朋友时,也开始了解到他的“传奇”。


1996年,Jeff Dean从华盛顿大学计算机系毕业,并获得博士学位。


1999年,Jeff Dean加入谷歌。在谷歌的成长过程中,Jeff Dean 做为关键人物之位,设计且完成了 Google 分布式计算基础架构,Google 大部分产品都由该架构所支持。


Jeff Dean是一名软件工程师,工程师不像Chuck Norris。一方面,他们不是孤独的游侠,软件开发本身就是一个协作型组织。另一方面,他们也很少用Uzi射杀牛仔。


Jeff现在是一位父亲,他有一个可爱的女儿。




在Google,很多员工都觉得,Google搜索的速度之所以如此快,都是Jeff Dean的功劳。


这种崇拜有多深?你听说过战神—查克.诺里斯的笑话,被人们称做“查克诺里斯事实”吗?就像:“Chuck Norris从不洗碗,他们因害怕而弄湿自己”或者“Chuck Norris不能乘商业航班,因为他的拳头会把飞机击落”。


网络上,也有一个称为“Jeff Dean Facts”的社群,由Google年轻员工和崇拜他如英雄般的人们组成,他们专门创建了一个网站,上面写着Jeff Dean 的 Facts,也就是关于Jeff的传奇小故事。这群人都非常有趣,你也可能了解软件工程师和他们的幽默感,想信有同感。如果你并不是一位资深码农,这里Business Insider的首席架构师Pax Dickinson也帮我们“翻译”了这些段子:


“编译器从不会给 Jeff Dean 警告的,Jeff Dean 会给编译器警告的。”

解释:当你的代码有误时,编译器会给出警告,但是 Jeff 比编译器还牛叉。


“Jeff Dean 提交代码前会编译和运行他的代码,只是为了检验编译器和链接器有没有问题。”

解释:Jeff 的代码从来不出错,他编译代码只是为了确保编译器和链接器没有 bug。


“Jeff Dean 每次只给一条腿穿裤子,但是如果他有很多腿,你会发现他穿裤子的时间复杂度为O(log n)”

解释:Jeff Dean 穿裤子的算法复杂度是对数级而不是线性级的。这样的话,如果他有很多条腿的话,就会大大节约穿裤子的时间。


“当 Richard Stallman 听说 Kindle 是Jeff Dean 的独家平台,他就去买了个 Kindle。”

解释:Richard Stallman是著名的极力反对商业软件的人,从来不购买和使用 Kindle 。但是 Jeff Dean 就是这样神奇,Richard 会因为想要阅读 Jeff 的自传而去违背自己的原则。”


“Jeff Dean 直接写二进制机器代码,他写源代码,是为了给其他开发人员作参考。”

解释:所有的代码在执行前都要先编译成二进制机器码,Jeff 是直接写二进制机器码的,他写源代码主要是方便其他程序员理解。


“Jeff 来Google面试时,被问到等式P=NP 成立的条件,他回答,P=0 或者N=1 时成立。然后在面试官正哈哈大笑之时,他看了一眼谷歌公有证书,就直接在白板上写出了相应的私钥。”

解释:“P与 NP 一直是计算机科学领域的一个悬而未决的问题,但是 Jeff Dean 把它想成了一个代数问题,他直接用大脑根据谷歌的公有证书算出了相应的私有秘钥,这在现在的超级计算机都是不可能的事。


“X86-64 规范有几项非法指令,标志着‘私人使用’,它们其实是为 Jeff Dean 专用。”

解释:私有的非法 CPU 指令是不能被任何人使用的,但是 Jeff Dean 就可以用。


“Jeff Dean 进行人体工程学评估,是为了保护他的键盘。”

解释:通常评估人体工程学是纠正坐姿,保护人的健康,但是 Jeff 却是为了保护他的键盘。


“所有的指针都是指向 Jeff Dean 的。”

解释:指针是C语言编程的核心,但是 Jeff Dean 是编程世界的中心。


“在 2000 年末的时候,Jeff Dean 写代码的速度突然增长了 40 倍,原因是他把自己的键盘升级到了 USB 2.0。”

解释:是键盘和计算机之间接口的速度影响了 Jeff Dean 的编码速度。


人们写得也许有夸大的成分,尤其是那句Jeff Dean写的代码从不会出错,但是不难看出Jeff Dean的牛逼。


大牛试练


当你想到建立今天的互联网巨头时,可能会想到创始人或CEO,比如Tim Berners-Lee,Marc Andreessen,Larry Page和Sergey Brin,也许是Mark Zuckerberg,或者马云、马化腾。当然这是有道理的,这些人都发明了一种塑造人们如何使用互联网的产品服务。


在这些巨头的背后,从日常工作中默默推进的是大批不露面的开发人员,他们每天都在键盘上挖掘着人们使用的产品和系统。在IT领域,和大多数其他行业相比,这些员工是不可互换和替代的。一位优秀的会计师可能会为企业节省5%的税金,一个伟大的棒球运动员将比平庸的棒球运动员更快地达成目标。一个优秀的开发人员可以在一周内完成一个由10个较小的开发人员组成的团队需要几个月的时间,差异是指数级的。


这不是杰夫.迪恩的单一事实,这是硅谷的伟大智慧和传统,这就是最好的公司为什么如此努力吸引顶尖人才的原因。


Dean于1999年中期加入Google,并获得最年轻顶级计算机科学家的荣誉。


在个人电脑计算能力日益增长的今天,Dean一直在寻找方法来突破你在给定机器上可以做的极限计算。在Dean还是一名高中生时,他编写了用于分析大量流行病学数据的软件,他说这种数据比当时专业人员使用的“快26倍”,这个系统被称为Epi Info,已被疾病控制中心采用并翻译成13种语言。并且作为他是计算机科学博士专业的毕设。


Dean喜欢开发编译器——将源代码翻译成计算机可以流畅执行的语言程序, “我总是喜欢快速运行的代码,”他这样实事求的说道。


编译器还是太底层了,Dean也对他的兴趣表示一丝不安,他不想一辈子从事编译器工作。因此,他离开学术界后加入谷歌,谷歌当时只有大约20名员工。(根据Steven Levy的书“In the Plex”,搜索创业公司看到Dean,就像一个美女将珍贵的选秀权给某位一般。)


Dean为Google News和AdSense做了一些重要的早期工作,后面这个广告产品重写了互联网经济规则,之后Dean把注意力转向公司的核心技术问题之一:规模化。


Google的创始想法来自佩奇和布林,他们也是世界级的软件开发者。在20世纪90年代后期,两个人构建了PageRank算法,这是一个将最匹配的结果返回给定搜索查询的算法,对相关性的关注让Google超越了雅虎,AltaVista等友商,成为世界领先的搜索引擎。


合作的力量


随着新贵Google越来越受欢迎,它面临着巨大的计算挑战。迪恩回忆说:“我们无法足够快地部署机器”以满足用户的需求。


随后,Dean与其他卓越的程序员Sanjay Ghemawat等同事合作,通过Epi Info,他找到了看似硬件问题的软件解决方案。Ghemawat领导了一个构建Google文件系统的团队,该团队允许将大量文件高效分发到数千个廉价PC服务器上。Dean和Ghemawat开发了一个名叫MapReduce的工具,允许开发人员使用并行工作的机器有效地处理庞大的数据集合。如同编译器允许程序员编写代码而不用担心CPU如何处理它的细节一样,MapReduce让Google的开发人员调整搜索算法或添加新的计算,而不必担心如何并行化操作或处理设备出现故障。


Dean和Ghemawat开发的软件功能强大,在2004年他们开创性的研究和源代码向公众开放时,迅速成为行业标准。如今,MapReduce成为Hadoop的基础,Hadoop是一个开源框架,它帮助“大数据”成为从在线旅行到能源探索等行业的流行用语。虽然谷歌开始研发研发比MapReduc更好的技术应用于核心业务,但迪恩表示,当一批新的暑期实习生到来并开始研究新项目时,他仍然看到MapReduce使用量仍在大幅增加。


MapReduce是谷歌联合创始人佩奇常谈论“10x”时经常引用的例子,意为他们要做的事情要好10倍,而不是之前的10%。MapReduce没有使哪种类型的操作更快一些,但是它让Google程序员能做他们可能从未尝试过的事儿。


Dean的其他几个项目也有类似的指数效应:在Google File System的基础上,他与Ghemawat一起创建了一个名为BigTable的分布式数据存储系统,可以处理数PB级的数据 (PB是100万千兆字节)。


接着他们又进一步开发了Spanner,它被称为“世界上最大的单一数据库”。由于采用创新的方法,虽然Spanner遍布在全球各地,但表现得却像是在本地的一个地方。拿Wired的Cade Metz的话来说:它可以在全球数据中心网络中保持信息的一致性,传统上即使给定的更新也可能需很长的时间才能到达某些位置,“在Spanner开放之前,许多人认为这是不可能的任务。”Wired这样说道。


这一段一段的精彩历程,让杰夫.迪恩的事迹可能开始听起来有点像假的事实。Dean自己嘲笑这种现象,称之为“有点尴尬,但也很讨人喜欢。”


他说:“请记住,他的真正成功几乎都是合作的产物”。


几乎每天早上,他都会到加利福尼亚州山景城的GooglePlex工作,与同一个核心人群坐下来喝杯咖啡。他说道:“这些年,我们喝下了2万杯卡布奇诺”。


团队的这些人并不是总在一起工作。随着谷歌的发展,一些人搬到了校园对面的不同建筑物中办公。迪恩说,当他们聚在一起盘谈他们正在做的事情时,他们的问题会引发彼此的想法。这些咖啡座谈使Dean能够将优化,并行化和软件基础设施方面的专业知识应用到很多项目中,这被他自己称为“健康的野心与信心”。


 “他总是对我们能做多少事情,表现的非常热情与乐观”,他的长期合作者Ghemawat说。 “别人也很难劝阻他。”


Dean 在Google 构建了 Map-Reduce,BigTable,Spanner方面的程序,这并不是大多数Google用户能够直接用的产品。


但这些是Google以及我们所知道的大部分现代互联网的基石,Dean现在正在开展的项目有可能再次彻底改变IT行业的产品,也是谷歌未来发展方向的一个重要的目标。


“谷歌大脑”领导者



2014年,他与斯坦福的机器学习专家以及Coursera联合创始人吴恩达(Andrew Ng)合作。


Dean帮助Ng的一名研究生Quoc Le在无人监督的机器学习中进行了一项开创性的实验。这项研究在秘密的GoogleX“skunkworks”上进行,将16,000个处理器用于研究YouTube视频,无需人工监督,比如自动发现猫的图像搜索算法。


这可能听起来像是许多计算机计算才能出现的结果,该技术可以为下一代人工智能奠定基础,潜在的应用范围从“Google Now”、“Google个人助理”技术到为Project Glass派上用场的图像搜索功能。


“杰夫.迪恩事实”的主人公杰夫迪恩可能只是通过在他的特殊键盘上输入0和1来创造这样的东西。


杰夫.迪恩并不承认自己是机器学习专家,但他表示,他非常渴望能够帮助团队建立可扩展的高性能软件系统。


与杰夫.迪恩事实所说的相反,Dean说坐下来写的程序很少是解决问题的最佳方法。相反,他的过程通常以实用工程的方式开始。


由Jeff Dean的Google Brain团队领导的Translate项目就是一个获得显着投资回报率的项目的例子。谷歌翻译项目仅用了9个月,创新的改进大致相当于谷歌翻译团队在过去十年中取得的总收益。Google翻译现在提供一种付费的API服务,可以给Google带来真正的收入。但更重要的是,翻译项目有助于加快Google自身创建通用人工智能平台的成果,解决翻译之外的更多问题。 


Dean还在推动Google建立自己的计算机芯片Tensor处理器,处理运行AI所需的计算能力,从Google翻译开始,Google正在转变为人工智能公司,这也是谷歌CEO劈柴在近几年中一直强调的。


在负责谷歌翻译产品之前,Dean早已是谷歌的技术明星,他被人们戏称为Google最糟糕的工程师和互联网的战神查克诺里斯。


我们在“Jeff Dean Facts”再精选出一段,用来暂停讲述刚刚开始的Dean事实:


“当Graham Bell发明电话时,他看到了来自Jeff Dean的未接来电”; 

“Jeff Dean咬了苹果的标志”;

“Jeff 在最高等级为10的系统中升级到11级。”


最后一个是真的。

推荐↓↓↓
IT人物
上一篇:刷屏了!马云刚刚宣布:明年今日退休,接班人竟是他... 下一篇:重磅!李飞飞离职谷歌重回斯坦福。Google失去了AI领域最知名华人女神