在 Google 工作 10 年,到底能学到啥?

类似的,Linux 内核的维护者、Python 的发明人、UNIX 的元老、Google Brain 的创建者……跟那么多牛人在一个公司里工作,你肯定不好意思只是单方面地跟人讨教,但凡有机会,你总会希望自己也像那些牛人一样,为技术发展做点儿贡献, 哪怕只是一丁点儿。

再比如,像 MapReduce、Bigtable、TensorFlow 之类由 Google 原创、对业界影响深远的技术,在 Google 内部可不仅仅是身外的工具,它们都是 Google 工程师这个大集体的作品和骄傲。因为大家都是主人,对哪些东西不爽,可以去鼓捣源代码,可以去提交自己的补丁或者新功能,甚至推翻重做。

别小瞧这推翻重做,虽然很难很难,因为你得一边说服老板和用户,一边找到足够的开发人手,但事实上, Google 内部重新发明一遍、两遍、三遍的框架、工具、库、接口、服务比比皆是。一言不合就动手做个新版本、新系统,这毛病既带来数不清的流程混乱,也带来一山又比 一山高的良性竞争——表面的混乱之下,良性竞争引发的技术飞跃常常超出想象。

在 Google,工程师有好几万,不能说每个人都渴望做技术的主人,但踌躇满志的大有人在。因为 Google 走在技术最前沿,有追求的工程师确实没脸当个纯粹的技术追随者。当然,我的意思不是说 Google 里没人去做那些不那么酷的“苦力活儿”,而是说大多数人都有个争强好胜的心态,即便是做相对简单的技术工作,也时常会想想怎么能做出世界一流的效果来。

拿面试来说,有个工程师想出了一道与月球相关的面试题,把算法、编程、设计、维护问题放在太阳系的大背景下,层层追问。我在一次内部面试技术培训时 拿这道题当过样例。结果,参加讨论的工程师表达了截然相反的两种意见,有人说这题设计精妙如天马行空,另一些人则批评这题目远离实际如镜花水月。

其实,Google 的技术宅们几乎每天都在深入实际与憧憬未来这两个极端的对位、矛盾、转化中工作。常说的“仰望星空、脚踏实地”远不能形容 Google 工程师的两面性。

一方面,工程师们深知自己的代码是如何参与了这个地球乃至这个星系里最前卫、最大胆的计算机系统,如何为诸如十年后的搜索引擎、拥有人工智能的手机或机器人、量子计算机、基因工程、无人驾驶汽车等贡献力量;

另一方面,工程师们“极客”和“宅”的一面常常在外人难以注意的工作细节里表露无遗——这里有十数年如一日致力于优化编译器的语言高手,有设计最好 的代码审读系统的工具专家,有亲自动手实现软硬件原型的技术总监,有坚持为地球上每一种人类语言提供输入输出解决方案的国际化团队……