Bendi新闻
>
【老万】老码农潜伏谷歌十七年总结出成功秘籍,前两条竟是...?

【老万】老码农潜伏谷歌十七年总结出成功秘籍,前两条竟是...?

本文为“我在谷歌弄啥咧”系列第十五篇。

大概两年前吧,我从谷歌跳槽了。当时我的职务是技术领导经理,在公司干了十七年。

要说我对这个决定信心百倍,那肯定是吹牛 B。老实说,我并不确定自己离开谷歌后还能不能玩得转。

要知道,谷歌是出了名的基建狂魔暨轮子发明重度爱好者。从编程语言到张量处理器 (TPU),从文件系统到操作系统,从云机器管理软件到数据中心,谷歌差不多由零开始构建了它用到的一切。所以,全部新员工(Nooglers)都必须经过密集培训才能上岗,因为谷歌用的技术和其他公司实在是太不一样了。

我在谷歌时听说,外面的程序员对我歌的基础设施羡慕嫉妒恨。我还听说很多前谷歌员工(Xooglers)一把鼻涕一把泪要找老东家,因为他们实在是太怀念在歌时日常使用的编程工具了。

想想看,我职业生涯的绝大部分时间都在这个特立独行的机构度过,到了没有谷歌内部工具的世界里还有哪个资本家愿意压榨我?我多年的歌式经验会不会在新环境下变成一坨肥料?我是否已经成了被养家的鸟,想要飞呀飞却飞呀飞不高嗷嗷?

细思恐极。

可喜可贺的是,两年后我还能写下这篇文章证明我还活着。

敲黑板:我发现我在我歌学到的技能大部分在新工作中一样好使。其中特别有用的有两条:

  1. 要是有件事大多数人都说做不成,不要听大多数人的,该出手时就出手哇,风风火火闯九州哇。

  2. 凡事从第一性原理出发,从本质上解决问题。

我来解释一哈。

谷歌不是一家常规公司。它的两位创始人一个大胆贼一个贼大胆,做事不讲分寸,以至于有时显得太天真。其实,嘿多谷歌员工也一毛一样的。这种撑死胆大的心态对谷歌的无数创新至关重要。作为早期的谷歌员工,我被鼓励跳出常规思维,无视常规智慧。如果一件事值得做但之前没人做成过,那就 Just Do It,而不是列举出一千个伤心的理由。

举个例子:我是 Google Mock 这个 C++ Mocking 框架的主要作者。Mocking 是一种软件开发技术,用于测试不同部件之间是如何交互的。一开始我没有做 Google Mock,而是捯饬了一个叫 gUnit 的 C++ 测试框架。gUnit 后来在开源时被改名为 Google Test,原因是 gUnit 的名字已经被几个唱 hip-hop 的黑人小哥用了。在推销 gUnit 时,我听用户抱怨在 C++ 里做 mocking 太难鸟。

当时主流编程界的共识是这个问题是无解的:鉴于 C++ 有静态类型检查而且缺乏反射机制(reflection),即便我们强行构建了一堆工具支持 C++ mocking,但解决方案也会过于笨拙,实际上没人会用。

这就是我被告知的情况。

然鹅!哥不是怕事的人。既然客户有需求,我倒是要看一看它到底难在哪里。我的经理马克对此亦有贡献。他没有说:“嘿,如果你在X个月内不能解决这个问题,就快点止损吧,这样你还能有些剩余价值。”

在这一点上,我站马克而不是马斯克。

你可能已经猜到了:我为这个“不可能”的问题提出了一个实用的解决方案(我甚至会说是一个优雅的方案)。它解决了一个在整个 C++ 程序员社区长期存在的难题。老实讲,我为这个成就感到非常自豪,以至于在内部发表小文章时署名“Zhanyong G. Mock Wan”。

这次经历相当令我满意,直接导致了我轻伤不下火线的性格,在转岗做经理后还是乐不思蜀地狂堆代码。

设计 Google Mock 时,我不是先搞出一个勉强可以工作的东西,然后修补它直到它变得“足够好”,而是像写博士论文一样处理这个问题。

我在用理论指导设计。

我希望我的框架有严格的语义。也就是说,看到一段使用我的框架的代码时,所有程序员都应该能够通过一套简单的规则理解它要做什么。没有这些规则,程序的意义将因人而异,一旦它比玩具示例更复杂,它的逻辑很快就会变得混乱和可疑。

这不是件容易的事,严格的语需要额外的努力才能达成,大多数地方都不这么开发软件,因为,偷懒谁不会呢?然而我知道,要创造出让我自豪的东西,我必须从用户真正需要的东西(不是他们想要的——用户通常并不清楚他们想要什么)出发,设计出一种能让他们直观表达意图的方法。

所以,我研究了程序员们在测试软件交互时真正关心的问题,用清晰的英语写下他们的需求,设计了一个嵌入在 C++ 中的 DSL(特定领域语言)来表达这些需求,并确保这个 DSL 读起来像英语,而且语义严格。我为这个 DSL 设计了形式化的语义,并证明了这些构造是健全的。最后,我找到了一种方法,用当时并不广为人知的 C++ 模板和宏编程技巧实现了这个 DSL。

我从第一性原理出发解决了它。我相信,要是不这么干我也会像前人一样死在沙滩上。

加入 Pinterest 后,尽管文化、技术、工程流程和工具都和谷歌都有不同,尽管我必须学习大量不熟悉的东西,我还是发现:只要我专注于用最直接和有效的方法去解决棘手问题,我就能迅速为公司带来价值。在如何解决问题这一点上,我不给自己设限,同事们也很重视我带来的新想法。这并不是说我总是自己从头开始构建一切。然而,如果我必须这么做,我也不怕。

幸运的是,公司给了我充分的信任和自由来解决问题,就像我在谷歌早期的日子一样。

今天,如果有人问我“你在谷歌学到的哪些技能在谷歌之外最有用?”,我会告诉他:

  1. 不要害怕挑战不可能的任务,

  2. 从本质出发,用第一性原理解决问题。

这些“元”技能,不像具体的技术、编程语言、工具那么狭隘,无论你走到哪里,它们都非常有用。

你怎么看这个问题?请在评论区告诉我。:-)

~~~~~~~~~~~~~~~~~~~~


猜你会喜欢前几篇《我在谷歌弄啥咧》:


~~~~~~~~~~

欢迎关注我的公众号:

本公众号不开赞赏不放广告。如果喜欢这篇文章,欢迎评论、转发、点“在看”。谢谢大家🙏

微信扫码关注该文公众号作者

来源:老万故事会

相关新闻

【老万】我在谷歌弄啥咧(十七):以德服人【老万】我在谷歌弄啥咧(十六):造泵记【老万】马一龙降本增笑暴露了哪些问题?斯坦福紧急下架视频,谷歌前CEO施密特说了哪些真话? |【经纬低调分享】【今日天下0711】华人奇葩相亲经历;逆天改命上北大的保安滤镜碎了?法国前第一夫人或入狱;Costco遇老印夫妇退吃剩1/4食品【今日天下0518】25岁男版谷爱凌成名真相被扒;硕士学历六旬老太打两份工不敢退休;光头具俊晔疑接老妈到台北养老;空巢姐妹谈感想54㎡老破小爆改:两居变四居、中西分厨,还有卫浴三分离?【居住榜样】【老万】我在 NB 公司审查代码【老万】手把手把手机出国攻略教给你【老万】公司(十四):一箭双雕【老万】塔维斯多克的邂逅【老万】我的科大(五):俺怎样奇葩地写论文直接炸裂!情人节送什么?500年老国货,养出奶白肌肤,显小10岁北京74㎡摄影师的家真绝了!贼治愈、能出片,还挤出三室两卫?【居住榜样】出了浙江没听说过的柚香谷,为什么两年卖出11亿?吵架时妻子老动手?华男控制欲太强?谷歌清华夫妻惨剧众说纷纭【直播连线】老K约你聊聊2024年IC工程师的“芯”里话!前胸后背老长痘?夏季美背秘籍揭晓,美背抢眼成标配!【乐游】梦回1930老上海,你准备好了吗?“光明之城”项目计划于今年上半年试营业【今日天下0620】西雅图华人码农租戒指求婚;新疆伊犁旅游分享干货;华人娃英文名重名Top3;收屋子发现前男友20年前给画的素描【一对一介绍】87年男生,日本前30国立大学博士,大学、教学兼行政、编制内,月收入平均2万+,已购车,未婚,无宗教信仰,广州白云【教育】加拿大35.5万留学生过去3年拿到枫叶卡,成功转PR永居厨房推拉门用吊轨还是地轨?若不是老师傅提醒,我差点装错【装修干货】顶尖寄宿前30现任招生官讲座:25年美高申请,你准备好了吗?【8.9】
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。