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

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

职场

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

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

要说我对这个决定信心百倍,那肯定是吹牛 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. 从本质出发,用第一性原理解决问题。

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

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

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


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


~~~~~~~~~~

欢迎关注我的公众号:

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

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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
戴上眼镜反而颜值飞升的秘密,我都帮你们总结出来了对话34位创业者后,我们总结出了一篇创业启示录|OMEGA访谈录刚刚,谷歌华人工程师被捕,他用谷歌电脑偷谷歌机密存到谷歌账号...预制菜不得添加防腐剂,前两月吸收外资下降19.9% | 财经日日评【老万】塔维斯多克的邂逅美国人公认最好吃的薯条竟来自这家!你认可吗?【老万】我在谷歌弄啥咧(十七):以德服人赠新西兰老乡晓梅几首探寻小米SU7的成功秘诀——小米集团游学【老万】马一龙降本增笑暴露了哪些问题?57岁王祖贤参加园游会:高瘦白皙!网友总结出偶遇她的两种途径陌生人赠送的一美元购物卷[资源]掌握词根词缀的终极秘籍,实现词汇量快速提升 —《Word Roots》带你飞!【老万】我的科大(五):俺怎样奇葩地写论文【老万】我在谷歌弄啥咧(十六):造泵记我学会了“浪费”【新加坡今日要闻】老巴刹吃夜宵还要附加费,豆浆喝出大蟑螂……皮皮虾:【老友记-雨夜游UCLA】20条好运秘籍,让你拥有好运体质宾大申请破6万,RD录取难度升级?“哈耶斯麻”权威导师深度解读冲藤成功秘诀!【老万】手把手把手机出国攻略教给你英国公园里七年间发现三个弃婴,而这三个娃竟是同一个爹妈!宇宙人(1494期)海淀区计划五年实现商业航天产业规模超1000亿;神舟十七航天员成功返回;中企拿下全球最大单笔造船订单比尔·盖茨和巴菲特顶级对话曝光:成功秘诀就俩儿字我花了几百万总结出了这条心得:SNP千万不要自己测!美国2月裁员创新高,因“技术更新”失业人数超十七年总和渡十娘|我在谷歌弄啥咧(十七):以德服人【老何读史杂记】犹太毒枭改变近代中国历史走向4万人围观学霸自驱力养成秘籍,评论区意外吵翻了...花一年总结2024出境省钱秘籍 | 直飞免签,100元冲浪玩一天【今晚19点】AMC10&12暑期备考秘籍,这样规划超越99%同龄人‼️[无声]【老万】公司(十四):一箭双雕调查50位Z世代后,我们总结出水上闯关综艺长寿秘诀【老翁寻花奇遇记之二:春花大盗】
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。