编者按:本文作者 Ben Fathi 拥有马萨诸塞大学计算机科学学士和硕士学位及心理学学士学位,在计算机行业的从业生涯长达 35 年。他曾在 NeXT Computer 做过工程师,之后 曾在微软工作十二年,并任职多个岗位,最后担任 Windows 内核操作系统开发部门副总裁。离开微软之后,Fathi 又去到了 Cisco 担任高级副总裁,负责领导操作系统和网络协议团队。他在本文中对于自己的整个职业生涯进行了回顾,并就其中从乔布斯和比尔·盖茨身上学到的最宝贵的知识进行了分享。
当我 14 岁的时候,我感觉我的父亲那么无知,令我实在无法忍受,但当我 21 岁的时候,我忽然发现他在过去这七年时间里竟然学到了那么多的东西。
——马克·吐温
提醒:当我自己经历这些阶段时,我一点都不明白这句话的含义。相信我,当你经历这些阶段时,你同样也不会明白。
中肯的说,我为自己投身于计算机行业三十五年的职业生涯而感到自豪。我很高兴能与数千位优秀的人士合作,并且也有幸从他们身上学到了一些东西。多年前,我还是 NeXT Computer 的一名年轻的工程师,多年之后,我成为了微软公司的副总裁。从某种意义上来看,我所学到的最重要的两课,“授课人”就是史蒂夫·乔布斯和比尔·盖茨。
大二那年,我报名参加了第一门计算机科学课程,当时还是在我舅舅的推荐之下,他认为:“计算机这东西将来肯定会很强大。”当时我的主修专业是心理学,我也不知道为什么会选择这个专业,只是在我进入大学时,这似乎是我能想到的最好的一个专业。当时的年龄,根本就不知道自己真正想干什么。
大学课程对我来说还算轻松,我对心理学产生了严重的厌倦心理。在我看来,这就像是一种心理上的意淫一样:只是在别人的身上贴加标签,再叠加一些模糊的症状。一位精神病人看过心理学家之后,可能会拿到六个诊断结果,这足以证明心理学不是一门科学,而是艺术。而在这过程当中,我参加的第一门计算机科学课程让我有了意外的发现。
什么?你的意思是说这个问题只有一个正确的答案?你的意思是电脑会按我的指示去做?如果代码不起作用,那应该是我犯了什么错误?太棒了,我要报名!
相比心理学那模糊不清的世界来说,计算机的世界对我更有吸引力。所以我开始申请攻读双专业:心理学和计算机科学。你可能会问,这两种专业之间有什么联系吗?其实并没有多大的联系,只是碰巧我已经完成了心理学学士学位所需要的大部分课程,所以不想就这样放弃。最后,我还是按原计划 17 岁毕业,并且拿到了双学位。
有趣的一点是,现在手下管理着数千人,与数以万计的同事一起工作,我惊讶的发现自己会用到之前心理学课程所学到的知识和内容。现在,这些内容说得通了,因为我亲眼见到了很多的案例。而在大学时期,我没有这样的背景环境去理解那些内容,没有足够的经历去联想,去参考。因此,在当时的我看来,那些心理学概念就像是一堆空话一样。
当时,我还是一位手持 F-1 签证(签发给在美国政府认可的学校全日制就读的外国学生的一种签证)的外国留学生,在美国也没有任何直系亲属,所以要想获得永久居住权,我必须找一位愿意为我申请绿卡的雇主。但你需要做的还不止这些,在美国的留学生毕业之后,必须先进行为期一年的“实践培训”。如果这一年表现很好,你的雇主就会为你申请一张 H-1B 签证。只有先拿到这张签证,才能后续申请绿卡、公民身份或者是其他美国公民权益。如果运气不好,没有拿到这张签证,那你只能被遣返回国。我可不想回到那经历动荡、战乱的国家,当时我的只处于兵役年龄,回去之后肯定要去往伊朗和伊拉克战争前线作战。所以,坚决不能回去。
这样我就非常需要一份工作,当时我唯一能找到的工作就是在当地州立大学担任计算机科学实验室的管理员。这份工作对于想要进入软件开发行业的人来说,实在是有些奇怪。但这就是我当时所能找到的最好的工作,毕竟当时只是 1982 年,正值伊朗人质危机、伊朗-伊拉克战争、石油危机以及经济衰退时期。
在这里,我无须赘述细节,相信我,不是什么美好的画面。就是在这样的时代背景之下,我掌握了最新的 PDP-11 和 Unix 编程课程,学习了如何用 LISP 和 Prolog 去编写代码,研究了时下最热门的自动机理论,你想一下,我能去做些什么?你应该绝对想不到我做的工作就是将穿孔卡放进 20 世纪 60 年代的 IBM 穿孔卡读卡机,然后在老化的 VAX 系统上更换洗碗机大小的磁盘把?这份工作会让我拿到绿卡?好的,我做,管它呢。
直到现在,三十五年后,身处一百万英里之外的我才真正为自己经历了计算机整整一代的发展而心怀感激。这一代即将逝去,但正是由于经历了这些,我才能清晰地看到当下世界与几年前的世界之间的鲜明对比。
你想,现在任何孩子都可以拿起一部智能手机或平板电脑,输入一个问题,任何问题,就能立马得到答案。回到我所处的时代,我们还不得不去公共图书馆,通过纸质索引卡来查找参考书。你能意识到,在过去这几十年的时间里,我们的世界发生了多么天翻地覆的变化吗?再过五十年,按照当下指数级的发展速度,你可以想象一下未来的生活又该发生怎样的变化。我之所以对这个行业未来的发展感到乐观正是因为我看到了这个行业长久以来发展的速度有多快。
不要误解我的意思。短期之内,你能看到的仍然会是挫败和乏味、官僚作风和各执一词、错误修复以及数不尽的会议。但从长远来看,OMG,只要你回望我们在过去十年或者二十年时间里对于人类体验的戏剧性改变就能想象未来的发展。我是在六七十年代出生于第三世界国家,我仍然记得当时我们必须要去市中心的国家电话公司办公室,排队等一个小时才能打一通国际长途。而现在,任何人都可以拿起手里的智能手机,通过语音、视频、电子邮件或社交媒体与地球上任何区域的任何人联系。看,这就是进步!
当然,当时的我并不了解这些,当时我只是让自己努力跟上业内最优秀的那些人的步伐。直到现在,我才看到了这么多年来我们所做的工作(网络和安全标准、操作系统平台和生态系统、可用性和互操作性、可靠性和可扩展性)促成了怎样的成果。
虽然现在 iPhone 仍然不能使用 Google Play,但一旦平台协议达成,我们就可以从中选择成千上万部电影、数百万首歌曲以及数十种共享体验。20 年前,这些都不存在。现在,这就是进步,并且我们都可以享用这些进步。只有当你向后退一大步,对比之后发现整个行业对人类所产生的影响时,你才会为自己的贡献感到欣慰。
继续我前文所讲的故事。一所州立大学不可能为一位实验室管理员申请绿卡,所以短暂停留之后,我便离开了实验室,去寻找一个更好的工作。其间我尝试了三四次不同的工作,雇主既有初创企业,也有业绩平庸的小企业,最后我找到了一份自己所热衷的工作内容:操作系统。并且我从未为自己的这个决定而后悔。自我去年退休,我已经在操作系统行业工作了 35 年,一开始是 Unix 内核开发人员,后来做到了经理、主管、副总裁,最后是首席技术官。
我用了几年的时间在 Sun 工作站编写设备驱动程序,之后在一家多处理器高端服务器公司从事了大量的 Unix 内核开发工作。我需要使用各种不同的架构,例如 Motorola、MIPS 以及 PowerPC 等,编写系统组件、设备驱动程序、存储子系统、虚拟内存管理系统以及低级内核代码,进行系统调试,甚至有时需要在工厂车间焊接组件。最终,我一路走到了西海岸,在 MIPS 和 Silicon Graphics(SGI)公司工作了几年,负责高端服务器系统方面的工作,参与了几个超级计算机项目。
当我提到这些的时候,通常对方立马就会想到:“啊,《侏罗纪公园》!”没错。SGI 就是运用计算机图形技术来渲染许多好莱坞电影,其中就包括《侏罗纪公园》。除此之外,我们也从事超级计算机相关工作,直接与 Cray Research 竞争超级计算机领域领导地位。就是在这段时间里,我学到了关于计算机体系结构方方面面的内容,从处理器到操作系统再到整个的系统软件。
我从事过的许多体系架构最终似乎都走进了死胡同。超级计算机、UNIX 工作站、共享内存多处理器体系结构、RISC 处理器以及紧密耦合架构的服务器集群:当世界向着个人计算、云计算和分布式计算趋势发展时,所有的这些体系架构最终都落入了半途而废的境地。我曾为此而倍感苦恼,为什么我为这些艰巨的项目牺牲了很多,几年后却发现竞争对手已经对于这一领域进行了新一轮的思考,并推出了新一代的计算模式来解决问题?
直到后来我才意识到:几乎每个人都可能遭受过我这样的苦恼。每个体系架构迟早会消亡,这个行业就是这样。我参与过的许多项目都具有革命性意义,至少在我从事这些项目的时候具有革命性意义,但每一个这样的革命性项目最终都进入了历史的垃圾箱中。值得庆幸的是,我们每一次都能从过往的错误中有所领悟,有所借鉴。在这个过程中,我也有机会与行业内最聪明的人一起合作,向他们学习。其中最重要的一些“课程”我用了多年的时间才学完。
举例:1992 年,乔布斯取消了我当时正在开发的项目:一个运行 NeXTStep、建立在 PowerPC 基础上的下一代双处理器工作站,当时我还是一名青涩的工程师,也因此离开了 NeXT Computer。当时,这个项目几乎已经要完成了,系统也已经备好可以出货,并且原定于下周召开的一次行业会议上就能正式对外宣布。但就是在这个节骨眼,项目被取消了,我很气愤,这样一来,我甚至都不能在简历上加上这次的工作经验。
乔布斯试图让我留在公司,但我当时只因为项目取消而气愤、头脑发热,根本就没意识到其实他做的是正确的决定。他其实是意识到了处理器架构之战已经结束,英特尔赢得了胜利。所以,他取消了 NeXT的所有硬件项目,让公司专注于软件方面的研发工作。而我,自然是愤而离开,满脑子想的都是“怎么能这样废掉我的项目”?
现在想想,当时的我正是见树不见林的状态。处理器的竞争时代已经结束,当时正确的选择就是在软件领域进行创新,而不是继续为市场份额不断缩小的处理器而战。我说这门“课程”需要投入多年的时间才能掌握正是这个意思。当时的我根本就没达到这样的思考层次,这个我投入了很多时间和精力的项目这样突然被废,我只是一味的陷入了情绪化的状态。我没办法让自己冷静下来,退后一步,看看全局。我从乔布斯那里学到的一课,当然是很久之后,在我终于冷静下来之后才学到的一课就是要为正确的战斗而战。战争已经以失败告终却还要去继续战斗只是徒劳。
在我职业生涯的后期,我在微软工作了十几年的时间,从事过各种版本的 Windows 工作。现在回头去看,你可以发现在手机领域 Windows 输给了苹果,在服务器领域输给了 Linux,在云服务领域输给了亚马逊。而在当时,我们都在忙着推出一代又一代的 Windows 版本,根本意识不到这些新发展。对于这样一个负责数十亿用户平台的工程团队,你很难用语言去形容这其中的组织惰性现象。他们几乎看不到其它的颠覆性力量,他们中的大多数人都忙于将现有的业务继续向前推进,这也是典型的“创新者的窘境”。
当然,这并不是在指责 Windows 或者是微软的领导水平。毕竟,我也是其中的“领导者”之一,负责Windows 7 所有的核心开发工作。Windows 7 可以说是有史以来最流行的 Windows 版本,我为我们团队的成就而感到自豪。我从微软学到的最重要的一点就是,要创建一个数十亿人使用的成功的平台,承载数百万应用程序和数千家公司的难度有多大。你创建的这一平台越开放,就越可编程化,围绕这一平台工作的人就越多,以后要实现这一平台的创新就越困难。
此外,在那十几年的时间里,我从比尔·盖茨那里学会的一点是对于细节要非常关注。他可以 14 个小时坐着不动,应对不间断的各种会议,一个团队接一个团队,内容多样,覆盖操作系统、生产力应用程序、互联网、手表、视频游戏、研发、电子邮件、数据库以及浏览器等等。对于每一场会议,他都能切中要害,抓住细节信息,着实令人钦佩。
我很喜欢 Sam Harris 的一句话:
所谓无聊只是因为缺乏关注。
但我更愿意用一种积极的说法来陈述这句话,这也最能概括我从比尔·盖茨那学到的东西:如果你足够关注,一切都会很有趣。
之后,从他身上,我也学到了何谓体面的人,他可以将自己强大的头脑用于解决更棘手的问题,包括教育、贫困和疾病。
我在这里细数自己职业生涯遇到的那些优秀的领导者,以及从他们身上所学到的东西,也许占用了过多的篇幅,你甚至都感觉有些乏味。更重要的是,除非你亲自体验过,否则可能用处不大。我们大都在多年之后,才意识到之前自己应该及时领悟的一些道理,这是不可避免的一件事。但是对于自己职业生涯的选择,我有一条建议,那就是选择你所热衷的事物和方向。
学习,坚持不懈的学习,这个行业发展如此迅速,有很多东西需要学习。即便你片刻偷懒,不去学习,就会被其他人甩到身后。只要你朝着正确的方向前进就很好,不要还没开始就计划好一路的旅程。只要确保前行方向大致正确即可,然后继续前进,继续学习,必要时纠正路线。这样,你最终会到达正确的目的地,一路上也会风光无限。
编译组出品。
编译组:郝鹏程、王雅琪