分享一篇陆奇在百度内部的文章-除了好代码,工程师怎样才算优秀

2021-07-01 00:12:52 +08:00
 beryl

最近又读到了陆奇 17 年在百度内部的一个分享,当时内部分享的时候也有读过,现在换了个环境和阶段后,重新读有了不一样的感觉,也分享给大家。

原文:

Believe in 技术

首先要相信技术,我刚才已经讲了,整个我们工业界,特别是像百度这样的公司,对技术坚定的、不动摇的信念特别重要。

我也分享一下,盖茨提到微软公司的宗旨就是:写软件代表的是世界的将来。

为什么?未来任何一个工业都会变成软件工业。盖茨是对的,因为任何工业任何行业自动化的程度会越来越高,最后你所处理的就是信息和知识。

但现在软件的做法又往前提了一次,因为在人工智能时代,不光是写代码,你必须懂算法,懂硬件,懂数据,整个人工智能的开发过程有一个很大程度的提高,但是,技术,特别是我们这个工业所代表的技术一定是将来任何工业的前沿。

所以我们一定要有一个坚定不移的深刻的理念,相信整个世界终究是为技术所驱动的。

站在巨人的肩膀上做创新
我们观察一下,在美国硅谷、在中国,互联网创业公司也好,大型公司也好,大家的起点是越来越高的。为什么现在创新速度那么快?主要是起点高了。我们可以使用的代码模块,使用的服务的能力,都是大大的提升。

在内部我想强调这一点,很多大公司包括微软在内,内部的 Code 都重做了无数遍。

我现在的要求是,每一次你写一行新的代码,第一要做的,先想一想你这行代码值得不值得写,是不是有人已经做了同样的工作,可能做得比你还好一点。有没有其他人已经解决这个问题,然后你可以把你的时间放在更好的创新上。

特别是大公司里面重复或者是几乎重复的 Code 实在太多,浪费太多的资源,对每个人的职业生涯都不是好事情。

我再强调,在大公司内部,你写代码之前想一想,你这行代码要不要写,是不是别人已经有了,站在别人的肩膀上去做这件事情。

追求 Engineering Excellence

我要另外强调的一点就是 Engineering Excellence,工程的技术的卓越性和能力。

任何市场上竞争就像打仗一样,就看你的部队体能、质量,每一个士兵他的训练的程度,和你给他使机关枪、坦克,还是什么样的武器。

所以 Engineering Excellence 跟这个类比,我们要建的是一支世界上最强的部队,每一个士兵,每一个领军人,每个人的能力,他的训练都是超强的,然后我们给每个人提供的工具和武器都是一流的。

所以 Engineering Excellence 是一个永无止境的、个人的、团队的,能力的追求和工具平台的创新,综合在一起可以给我们带来的长期的、核心的竞争力,为社会创造价值,最终的目的是给每个用户、每个企业、整个社会创造价值。

我另外还要在这里强调的一点就是 Relentless pursuit of excellence:永无止境的不断的持续的追求。 我们要么不做,要做的事情一定做最好,这是我对大家的要求。数据库也好,做大平台也好,大数据也好,我们要做什么事情,我们一定要下决心,这是我对你们每个人的要求,做什么事情一定要做最好,一定要是做业界最强的。

每天学习

每天学习,可能是对每个人都是最最重要的。

我今天分享一下,我自己怎么想我自己的。就很简单一个概念,我把自己想象是一个软件、一个代码,今天的版本一定要比昨天版本好,明天的版本肯定会比今天好,因为即使犯了错误,我里面有 If statement,说如果见到这个错误,绝对不要再犯。

英语,另外有一句说法就是 Life is too short, don’t live the same day twice. 同样一天不要重活两次。每天都是不一样,每天为什么不一样,因为每天都变成最好,每天都变得更好。今天的版本一定要比昨天好,每个好的、杰出的工程师,杰出的技术领袖,一定要保持自己学习的能力,特别是学习的范围。

在这上面我也稍微引申一下,做 Computer science 的,如果只学 Computer science,不去学一些其他的行业,肯定不够。我举个例子,经济学必须要学。为什么这样讲? Computer science 它有个很大的限制,他是假定你有输入以后有输出,这种解决问题的方式有它的好处,但有它的限制性。

我给大家举个例子,地图导航,如果你纯粹用这个方式去做,你只是把一个拥挤的地方移到另外一个拥挤的地方。经济学,它对问题的建模是不一样的。它起点是假定是一个整体的一个生态,每个人的输入都是另外一个人的输出,你要用经济学的方式来描述地图导航的问题,你就会去算一个 Equilibrium,市场也是这样。

如果把深度学习真的要想彻底,必须把物理重学一遍,把生物学看一遍,再把进化论再看一遍。因为深度学习跟这些东西完全相关,自己肯定想不清楚,要彻底想清楚,必须学。

另外,学产品,我以前跟所有的工程师都讲,如果不懂产品,你不可能成为一个最好的工程师。真正要做世界一流的工程师不光要懂产品,还要懂整个商业,懂生态。因为你的工作的责任,是能够看到将来,把技术展望到将来的需求,把平台、把开发流程、把你的团队为将来做准备。所以学习是非常非常重要的。

Ownership

最后是从我做起。 我们公司有个非常大的使命,用科技让复杂的世界更简单。整个世界非常非常复杂,人其实所做的事情基本上都是 Reduce entropy 。

因为从热力学第二定律来讲,世界是会变得越来越乱的,我们想做的事情就是把它变的更简单,让我们生活变得更美好。

而且具体的,我们可以通过人工智能技术来做到唤醒万物,但是这一切是通过每一个人的一点一滴的行为累计起来,从我做起。还有 Ownership,看到机会不需要问别人,有机会就去做,看到问题也不要去问别人,就把它 Fix 。

把我们的使命、把我们的公司当成我们自己每个人的事业来做,我可以坦诚的给每个人讲,如果你把公司的使命,把公司的事业,当成你自己个人的事业,Own everything,你在职业生涯一定是走得最快。从我做起,从身边的每一件事情做起。

当然最后打个小广告:文章也分享在了公众号,为了避免过渡广告就将原文也先放出来了,不关注也没任何影响。

https://mp.weixin.qq.com/s/Bt6TDmO5vKt7tGQXNglpdg

7477 次点击
所在节点    程序员
41 条回复
liprais
2021-07-01 00:27:37 +08:00
你们没问问陆奇当年为啥把微软的测试都开了结果软件质量下降一大截,这叫相信技术呢还是叫目光短浅呢
charlie21
2021-07-01 00:32:25 +08:00
微软主要做 B 端产品
Google 主要做 C 端产品 地图导航也是 C 端产品
jones2000
2021-07-01 00:33:16 +08:00
都是忽悠人的, 看看 17 的百度和现在的百度, 有什么进步吗?
beryl
2021-07-01 00:34:11 +08:00
@liprais 具体为什么开掉测试不清楚背景,但是他对于技术、人工智能、开源的追求是不可否认的。
beryl
2021-07-01 00:37:02 +08:00
不知道为什么无法 append 了。

这里解释下吧,可能是我标题和内容有些地方表达失误,希望大家看的时候,尽可能排除『百度』,甚至『陆奇』关键词吧。尽量回归内容
Lux0214
2021-07-01 00:42:34 +08:00
说得不错,最后一段有画饼嫌疑。
lostberryzz
2021-07-01 01:02:36 +08:00
可以说是车轱辘话,看上去好像说了,好像又完全没说
ryd994
2021-07-01 03:55:57 +08:00
理想很美好,现实很骨感。现实就是有人的地方必有政治

公司内部 code 重做无数遍为什么?当然是因为重新发明轮子有 KPI 啦。还有很多无人维护的代码,想重用还不如重写一遍。然后你就成了这部分代码的 owner 了。ownership 怎么来的? ownership 就是这么来的。

一流的技术人那就是 tech fellow 吧。那是得有一定的商业眼光,毕竟你决定了整个公司的命运(的一部分)。但是对于大部分人来说,在成为 fellow 之前,首先就得搞定办公室政治。tech fellow 就十几个。微软的 tech fellow 网上有名单。对于大部分人来说,公司的命运关我屁事,我就是一小打工仔。怎样升职加薪跳槽才是最重要的。

excellence 是理想的。但是现实是 in long run we are all dead 。公司要占领市场,项目组要按时交付,个人要做出业绩。实际上很多时候我们都是凑合用然后注释写个 todo 。实际上很多 todo 就一直没有 do 过。再过两年市场变了,这部分代码连同 todo 全都没了。不能按时 deliver 的 excellence 还不如 compromise 。

再去想想进化论,进化完美吗?相当不完美。凑合用的东西太多了。只要不影响生存甚至说只要不影响生育,一切不完美都是可以接受的。对于个体来说,重要的是在生存斗争中活下来。
xuanbg
2021-07-01 06:38:24 +08:00
所谓“正确的废话”,就是懂的人认为是正确的,不懂的人认为是废话。
philipjf
2021-07-01 07:15:45 +08:00
@charlie21 谷歌微软都是主要靠 B 端赚钱,微软的 C 端产品算是 B 端产品的简化版,而谷歌的 C 端用户是就是卖给 B 端客户的商品
murmur
2021-07-01 08:20:45 +08:00
百度的技术还行,就是公司的价值观有问题,烂钱恰的太多了
impl
2021-07-01 08:21:17 +08:00
这个路奇他有干了什么牛 b 的事情?
Cbdy
2021-07-01 08:27:06 +08:00
无用的漂亮话
meteor957
2021-07-01 08:45:54 +08:00
口区
cxxxxx
2021-07-01 09:20:41 +08:00
@jones2000 有进步,变得更恶心了
shuAS
2021-07-01 09:37:58 +08:00
@liprais 陆奇不是负责微软的互联网业务这一块吗?怎么可能把微软的测试全开了,要开也只能开他互联网业务的这一块
ericls
2021-07-01 09:47:43 +08:00
做事情就要下决心,做到一半发现有更好的路怎么办?
一个工程师连 猜想-验证 都做不到,凭一腔热血做工程?

「看到问题也不要去问别人,就把它 Fix 」? 工程上的问题一定要多沟通。

这个文章里面出现了很多目标,为用户提供价值,为企业提供价值,为社会创造价值,一定做业界最强,那怎么提前证明这些目标一定是一致的?为哪个用户提供价值,为哪个企业提供价值,为哪个社会提供价值?

还将来的需求,现在用户的需求你都满足不了,还将来的需求。。

鬼话连篇
shijingshijing
2021-07-01 09:59:01 +08:00
@shuAS 说的是陆奇推行 Combined Engineer,这个跟 DevOps 其实类似,其实是传统软件公司转向互联网公司的必然。微软做的更彻底一点,整个开发模式都转到互联网那一套去了,但其实操作系统是 Infrastructure 一类的,不太适合像现在 Win 10 这样折腾,如果能分开就好了。
janus77
2021-07-01 10:07:32 +08:00
他说得对,但是又只说了一半。剩下的一半我来补充:
他说“如何成为一个优秀的工程师”这是对的
但是成为了优秀工程师以后呢?就天下无敌了?就能改变世界了? no
个人的力量不行,要靠组织。要结合成团体。要利用各种制度,要明确目标,做成功一件事情。
否则你也就是个工程师罢了
method
2021-07-01 11:55:18 +08:00
别老是 pua 工程师,日常业务技术开发能改变个啥?先把非工程师的角色教育好再说吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786797

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX