“编译器从来不给 Jeff 编译警告,而是 Jeff 警告编译器。”
这是硅谷程序员圈子里一个有名的段子,而这个段子的主角就是今天「猿传奇」要给大家介绍的传奇程序员 Jeff Dean。
提起 Jeff Dean,他头顶的光环可谓是数不胜数:谷歌首席架构师、谷歌研究院的高级研究员,也是谷歌的人工智能团队 Google Brain 的负责人,支持谷歌运行的超大规模计算框架 MapReduce 和机器学习的标志性软件 TensorFlow 就是在他的领导下开发的。同时他还是华盛顿大学计算机科学的博士、美国工程院院士、ACM(国际计算机学会)的董事和AAAS(美国科学促进会)的名誉董事。
而在光环下的 Jeff Dean 到底是怎样的一个人,他又是如何走上程序员道路的呢?这要从 Jeff Dean 9岁时那台 Altair 8800 说起。
在Jeff Dean 9岁时,因为他当医生的父亲很好奇电脑能不能用来帮忙解决健康问题,所以当 Jeff 的父亲在杂志封底看到当时第一台微型计算机 Altair 8800 的广告之后立刻就将它购买了下来,那时候的 Jeff 已经对计算机产生了浓厚的兴趣。后来,Jeff 从帮助父亲鼓捣电脑到开始自己鼓捣电脑。与许多男孩子一样,Jeff 对计算机最开始的兴趣也是游戏促成的,从游戏开始逐渐学会了自己编程,当时他买了一本游戏源代码的书,照着书中的内容的向电脑里输入,然后慢慢的自己也开始了修改,那时候的 Jeff 也才是十二三岁的年纪。
随后 Jeff 开始对电脑能不能用来解决实际问题产生兴趣,Jeff 说他总是在寻找能够在一台给定的机器上不断追寻极限性能的方法。当他还是一个高中生的时候,他编写了一个软件来分析大量的流行病数据。据他说,他的软件比是当时专业软件快26倍。这个系统称之为Epi Info,被美国疾病控制中心采纳并翻译成13种语言。
随后他在明尼苏达大学读了计算机和经济学的本科,当时他的毕业论文内容现在说出来可能会让人吓一跳,是研究如何并行训练神经网络。这个目前人工智能热潮的热门话题在当时的1990年 Jeff 已经开始了他的探索之路,这也难怪他后来会开发出 TensorFlow 这样里程碑式的软件。
在读研究生和博士前的间隔年, Jeff 在世界卫生组织还工作过一年,给 HIV 疫情做一些软件建模预测,随后在华盛顿大学继续攻读计算机科学,之后 Jeff 做过操作系统级别的解析、研究过计算机架构、做过信息提取,然后就沿着信息提取这条路逐渐来到了 Google,开始了他的传奇之路。
Jeff Dean 于1999年8月加入 Google,那时的 Google 并不是像现在这样的国际性大公司,当时的 Google 只有大约20名员工, Jeff 和他们一起挤在 Palo Alto(目前加州湾区的黄金地带,Google 、 Apple 、Facebook 等著名公司的总部都在这里)的一间小办公室里。Jeff 加入 Google 的第一项主要工作就是开发出了 Google 的广告系统,也就是今天的 AdSense,同时他对于 Google News 也作出了很大的贡献。在此之后,Jeff 逐渐开始关注公司的核心问题:如何足够快的处理越来越庞大的数据。
Google 的基础算法来自于它的两位创始人,Larry Page 和 Sergey Brin ,在当时都是顶级开发人员的他们创造了 PageRank 算法:一种在用户给定搜索查询的时候返回最相关搜索结果的算法。
对于搜索结果相关性的专注让 Google 一举超越了 Yahoo, AltaVista 以及当时处于领先地位的其他各个搜索引擎。不过随着 Google 变得越来越成功的同时,它也碰到了一项巨大的技术挑战:不能足够快地部署更多的机器来响应庞大的搜索需求。
所以 Jeff 和他的同事们,包括另一位出色的程序员Sanjay Ghemawat一起找到了解决方案,Sanjay也是日后 Jeff 的主要工作伙伴,他带领了一个团队开发了GFS(Google File System,谷歌文件系统),使得超大型的文件能够分布地被存储在众多廉价的服务器上。然后 Jeff 和 Sanjay 一起开发了一个称之为 MapReduce 的编程工具,来帮助开发人员有效地使用这些机器并行处理庞大的数据集。
正像编译器帮助程序员在编写程序的时候不用考虑 CPU 是如何处理该程序一样,MapReduce 使得Google 的开发人员在调整搜索算法或者增加新功能的同时不必担忧如何将这些运算并行化,也不必担心如何处理硬件的故障。
MapReduce 的出现使整个行业拥有的更多的可能性,当 Jeff 和 Ghemawat在2004年的一个会议上发表了一篇研究论文之后,他们这个解决方法马上就变成了业界的标准。直到今天,MapReduce 还是众多其他项目的重要基石,其中之一就是著名的开源框架 Hadoop,而正是 Hadoop,造就了业界中新的流行语“大数据”。从在线旅行到能源勘探等不同的领域中都会用到大数据的方法。而正当 Google 开始在一些核心的应用中从 MapReduce 进一步扩展到其他新的编程模型时,Jeff 说他还是看到许多夏季实习生到 Google 开始新项目的时候,仍然会大量地使用 MapReduce。
MapReduce 完美体现了 Larry Page 所说的10倍效应——比原来的好10倍,而不是比原来好10%。MapReduce 并没有使得某一种特定类型的运算更快一点,而是帮助了Google乃至其他公司的开发人员可以做到他们以前做不到的事情。
如果你能看懂那些关于 Jeff Dean 的段子,那么你也应该明白 AdSense、MapReduce、TensorFlow 以及 BigTable、Spanner 等等这些名字对于互联网意味着什么。这些工具和系统深深地影响着今天程序员们的工作方式和思考方式,AdSense 这一广告产品甚至改变了互联网公司们的游戏规则。
对于很多 Google 用户来说他们并不知道以上这些产品是来源于 Google 的,但是这些产品都是 Google 和现代互联网存在的基石,而以上这些在互联网发展史上值得为它们立碑纪念的名字,都是 Jeff Dean 和他的伙伴们亲手打造的,Jeff 不仅见证了 Google 的成长,他还见证了整个互联网发展壮大到今天的规模。
最令人感到钦佩的是,这些非凡的成就对于 Jeff Dean 来说可能只是“基本操作”,Jeff 并没有满足于之前的那些成就,他现在所工作的一些项目,很有可能会再次为信息技术带来革命:他目前专注于推动机器学习与人工智能的发展(毕竟他本科毕业的论文就已经在讨论机器学习了),同时他还实施了谷歌大脑培训生计划(Google Brain Residency Program),给对人工智能感兴趣的各界人士提供一个来到Google Brain进行一年进修的机会。
许多对人工智能非常感兴趣的程序员朋友,也很想更多地参与进来,实现职业生涯的转型, Jeff Dean 对于这些程序员们是这样说的:
人工智能本身就包括不同层次的工作,你可以在机器学习方面做学术探索,获得学位、创造新的算法;另一种层次更偏向于实用性,你可以将一些已经成熟的机器学习算法应用到其他行业,比如医疗。其实有些机器学习算法是通用型的,你只需要使用不同的数据进行训练,就能快速地得出相应的解决方案,这也是为什么在今天机器学习被接纳得如此之快。
现在,生于1968年的 Jeff Dean 现在已经到了知天命的年纪,在国内有不少程序员在这个年纪已经逐步向管理岗位转型了,Jeff Dean 依然奋战在技术的第一线,他留下的传说继续激励着我们这些后辈程序员们砥砺前行。
Once a coder, always a coder。
参考资料:
How Google’s Jeff Dean became the Chuck Norris of the Internet.
By Will Oremus
彩蛋:
更多有关 Jeff Dean 的段子:
在2000年后段,Jeff 码代码的速度突然激增了40倍,原因是他把自己的键盘升级到了USB 2.0。
Jeff 还是会在提交代码前把它们编译一遍,不过这么做的目的只是为了检查下编译器和链接器有没有 Bug。
所有指针都是指向 Jeff 的。
当 Jeff 听 mp3 时,他查看其中的二进制内容然后在他脑子里进行音频解码。
Jeff Dean 是直接写二进制机器代码的,他写源代码,是为了给其他开发人员作参考。