旋转门的Next Step

美剧《硅谷》除了讲述主角Richard和他的魔笛手迭代起伏而又唏嘘不已的创业故事之外,编剧为另一主要角色埋下的一条暗线或许早就暗示了这场梦的结局。

大头,被人们称为团队中最没用的人,加入创业团队后一路躺赢,人们下坡时他上坡,人们上坡时他高速上坡。10年之后,在Richard他们眼中始终没有搞清状况的他,早早地获得了财富自由,最终还成为了Stanford大学的校长。而Richard最终能够回归学术界任教,找到或许是最适合他的位置,除了得到Belson的赞助,这位每经过一次旋转门就会赢得超级加倍的大头仔,必然也起到了重要的作用。

《硅谷》热播期间,在一次真实硅谷观众的问卷调查中,大头被观众们调侃为Googlers 100%,暗示着这些互联网巨头中普遍存在着这样的神秘人士:他们什么也不做就是对公司最大的贡献,静静地等待着期权和股票兑现就好。

如果把大头的经历全部归结于运气,那么你可能低估了《硅谷》精确描绘的现实主义。他的角色是反英雄的,但并不是反智的,主创们也给大头赋予了一些看上去普通却优良的品质——他很诚实,他知晓自己的天赋平平,但他也抓住了每一个机会,他的善意给他带来了很多意料之外机会和收益,这其中或许包含了一些黄老哲学的意味——唯不争,天下莫能与之争。

2013年,当我开始学习iOS开发时,是从自学Stanford的CS193p开始的。虽然我在中国最好的理工科大学之一上过不少编程和计算机相关的课程,也取得过不错的考试成绩,但我仍自认为在写代码方面是完全没有入门的。我一直认为自己在这方面没有什么天赋,更重要的是,我始终觉得传统模式教授的Coding很无趣,充斥着大量的重复性工作和技巧的背诵。

但Paul Hegarty的CS193p彻底地改变了我对编程以及计算机科学的看法,在未来的很长时间里对我的职业生涯也产生了极大的影响。

很多人会觉得CS193p会有些偏难,这的确是事实,因为一开始我都觉得很难。不过其实在早年的课程中,Paul也反复强调了参与课程的人员应该先选修另一门OOP的基础课,具体我也记不清了,应该是Stanford的另一门用Java讲的基础课程。

但Paul也表明没有太多基础的人也可以听这门课,多年以后,当我也成为一个所谓的“资深移动端研发”时,我认为他的表达还是过分地谦虚了,那些觉得自己基础已经很好的人,还是应该来听一下这门课。

我认为Paul的教授风格传递了一个很重要的理念:一项技能或知识的frame和content应该分离,我们应该先搭好学习的框架,再去丰富内容的细节。

他很少强调编程语言的学习,无论是最早的Objective-C,和Swift 1.0,2.0~5.0,到最近的SwiftUI。所有需要背诵的知识或者技巧,一般都被安排成了Reading Assignment,而对这些技能掌握的检验几乎全部被安排到Programing Assignment的加分问题中。

他只会花一节课左右的时间来讲一些语言基础,但不会涉及那些繁琐晦涩的语言特性,所谓老司机才了解的“技巧”,而更多地关注语言的差异和新的理念。比如Swift刚发布的那个学期,他用5分钟时间重点讲述了函数式编程如何把一个function简化为一个只包含加号的closure。

他强调完整地学习App开发的过程,时刻记住你想达到的核心目标——重点是要去完成某个东西。而整个课程的Assignment设计也充分的体现了这个理念,那就是我们如何学会从0到1地去完成一个复杂的项目,去优化它的生产过程,去完善它的实现细节。我们不需要关心一块乐高积木是怎么制造的,甚至也不用关心每块积木上有几个连接点,重要的是我们将如何找到合适的积木,搭好属于自己的摩天大厦。而我们需要学习的设计模式和理念,能够帮助我们更好地去理解程序实体的结构,从Pattern到Architecture,如何完成一次自上而下的设计。

在后来面试以及面试别人的过程中,我为很多人画过Paul的那张MVC通信图,能够真正理解的人寥寥无几。不得不说,这让我对现实产生过一些失望。

不过Paul和CS193p对我最大的影响并不是学到了技能和知识,我最大的收获来自于Paul在课程中的一次闲聊。在讲授Objective-C基础的部分,他顺便介绍了NS前缀的来历——NeXTSTEP。这是Steve Jobs被赶出苹果后,在1985年创立的新公司。

读过Jobs传记或者看过几部传记电影的人应该都了解,NeXTSTEP在创业一开始就几乎注定了失败,它一开始瞄准的高端教育市场本身需求极小,Jobs的完美产品理念搞出来的是一个集过于超前的OS和极为昂贵的硬件的PC工作站。它在各方面都很完美且超前,但是根本卖不出去。在丹尼·博伊尔拍的那部《Jobs》中,迈克尔·法斯宾德扮演的Steve Jobs亲自说出了那段著名的台词:

NASA在火箭发射时还不知道如何回收,他们觉得很快就能研究出来,但八年后也没有研究出。我是真想给大学造一台计算机,只不过科技发展没跟上我要求的速度,我们用完了资金,但苹果也止步不前,学校买不起,但苹果公司会买,它需要我们正研发的操作系统,就只能连同我也一同购进。

Paul在课程中多次强调自己并不为Apple工作,对于同学们提出的一些关于iOS的问题,他也反复强调只能从自己专业的角度给出一些解释和猜测。他确实没有隐瞒什么,他已经离开工业界多年了。而他曾经是为NeXTSTEP工作的,他虽然肯定没有参与iOS的研发,但他开发了iOS的爷爷——NeXTSTEP。

2011年,Steve Jobs去世后第二天的CS193p课上,Paul深情地回忆了他和Jobs共事的日子,给与了他的老Boss极高的评价,认为Jobs不仅创造了很多激动人心的产品,更重要的是他开始让人们相信,技术也可以创造美,和发现美。在讲到Jobs给我们留下的遗产时,我能感受到他的眼睛在发光,无论那是感伤或是激动,这种情感的触动会让人思考很多。

Paul在工业界和学术界的旋转,见证了一个时代的开始和结束。NeXTSTEP被Apple收购之时,OOP的时代开始了,Objective-C或许悄然无息地输给了Java,但Jobs最后用iPhone证明了NeXTSTEP和Objective-C并没有输,而戏剧性的是多年以后,当iOS成为了被挑战者,Google又为Objective-C选择了Java这个老对手。

我之所以用这么长的篇幅来谈个人的学习感受,想要表达的只是我对美国在计算机科学上如何领先我们的一些理解。大多数人绝对无法想象,一个OS曾经的Principle Engineer会在大学的课堂上教本科生做App,这种工业和学术界的流动和旋转机制,承受了现实的低谷,酝酿着新的浪潮。顺便提一句,Paul其实并不是这门课的第一位教师,09年App Store刚刚推出的时候,首先教授这门课程的,就是iOS早期现象级App Flipperboard的工程师。

再回到《硅谷》。大头稀里糊涂地成了XYZ的高管,并最终被裁掉拿到了2000万美金的赔偿。当他觉得自己的豪宅空着的房间过于尴尬时,他把房子租给了硅谷的创业者们,又无意间做成了一个“孵化器”。当他觉得在工业界实在没什么机会又觉得无事可干的时候,准备回学校读书玩玩的时候,他的入学申请直接变成了Apply for Professor。之前的各种Title差点吓死了在场的两百多个教授,一致同意他立刻过去任教。

而当这个大结局来临之时,似乎每个人都和自己的过去和解了。一直觉得自己是最平庸的大头也找到了最适合自己的位置,他连接了所有的人,见证了十年的时光变幻,硅谷在这十年的波峰和波谷都和他相关,他是《硅谷》故事的傅里叶变换,将时域和频域描绘在了自己开挂般的人生函数上。

我们有这样旋转的变换吗?当然也有的。

在百度的三年多时间里,最有趣的经历发生在我坐在语音部旁边的那段日子里。那段时间几乎天天都在听语音部的一位资深大佬喷人,有趣的是,大部分内容都是关于学术研究和工程应用的矛盾。最激烈的一次争吵发生在某天傍晚,大佬把自己独自关进了会议室,开始远程喷他手下的几位Researcher。

下属的辩解理由是我们可以发很多论文,目前的工作是有意义的,还是有一些亮点的。大佬则拿出了Robin进行压制,指出没有实际提升根本无法向Robin汇报,并怒斥这些研究落不了地的话,你发100篇论文也等于放屁。

大佬可能比其他所有人都了解从学术研究到工业应用的转化问题,他在11年从学术界旋转到百度,从零开始为公司创建了一流的语音团队。而在16年,他又离开了,选择像Richard那样独自创业。

最终他又转回来了,有人自然也要转出去。

Andrew Ng在公司期间,曾经组建了独立的团队和他竞争,外来的和尚在16年挤走了他。事实证明,Andrew Ng的论文发的是更漂亮,但是最后的结果可能并没有那么的理想。

一波浪潮退去,Andrew Ng又开始了在线教育,而时间进入2021年之后,一开始我只看到李沐在B站带大家读Paper,最近已经刷到了沈向洋带大家读Paper。

但我似乎还没有从他们的眼中看到那种和解和怀念。那种感觉只出现在Paul怀念Jobs时,他在最后动情地说到:“当人们拿起iPhone时,他们大脑的MRI成像特征并不和成瘾者类似,而更像是处在热恋中一样。”

和伟大的伙伴一起创造过美的东西,或许会真正地改变一个人的一生。

Next step is the future.

发表评论

您的电子邮箱地址不会被公开。