程序员的酒后真言
一位十年资深工程师在 Reddit 上的 30 条醉言醉语
美国最大的网络论坛 Reddit 上,前几年有一个热帖。
一位当了好几年工程师的程序员说自己喝醉了,从业已经十年,心里有好多话想说,“我可能会后悔今天说了这些话。”
他洋洋洒洒写了一大堆,一时引发大量共鸣,光是原帖就收获了数千个赞。内容很有意思,值得一读,下面是节选出来的 30 条。
(1)职业发展的最好方法是换公司。
(2)技术栈不重要。技术领域有大约 10 到 20 条核心原则,真正重要的是这些原则,技术栈只是落实它们的方法。你如果不熟悉某个技术栈,不需要过度担心。
(3)工作和人际关系是两回事。有一些公司,我交到了好朋友,但是工作得并不开心;另一些公司,我没有与任何同事建立友谊,但是工作得很开心。
(4)我总是对经理实话实说。怕什么?他开除我?我会在两周内找到一份新工作。
(5)如果一家公司的工程师超过 100 人,它的期权可能在未来十年内变得很有价值;对于工程师人数很少的公司,期权一般都是毫无价值。
(6)好的代码是初级工程师可以理解的代码,伟大的代码可以被 CS 专业大一新生理解。而最好的代码,是不写代码。
(7)作为一名工程师,最被低估的技能是记录与文档。说真的,如果有人可以教我怎么写文档,我会付钱,也许是 1000 美元。
(8)网上的口水战,几乎都无关紧要,别去参与。
(9)如果我发现自己是公司里面最厉害的工程师,那就该离开了。
(10)我们应该雇佣更多的实习生,他们很棒。那些精力充沛的小家伙,用他们自己的想法乱搞一气;如果他们公开质疑或批评某件事,那就更好了。我喜欢实习生。
(11)技术栈很重要。如果你使用 Python 或 C++ 语言,就会忍不住想做一些非常不同的事情。因为某些工具确实擅长某些工作。
(12)如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。
(13)对初学者来说,最赚钱的编程语言是 SQL,干翻所有其他语言。你只了解 SQL 而不会做其他事情,照样赚钱。一个普通的薪资专员(payroll specialist)年薪?也许 5 万美元。懂 SQL 的薪资专员?9 万美元。
(14)测试很重要,但 TDD(测试驱动开发)几乎变成了一个邪教。
(15)政府单位的轻松工作,并不像人们说的那样好。对于职业生涯早期到中期的工程师,12 万美元的年薪 + 各种福利 + 养老金听起来不错,但是你将被禁锢在深奥的专用工具里面,离开政府单位以后,这些知识就没用了。我非常尊重政府工作人员,但说真的,这些地方的工程师年龄中位数在 50 岁以上,是有原因的。
(16)再倒一杯酒。
(17)大多数头衔都无关紧要,随便什么公司都可以有首席工程师。
(18)手腕和背部的健康问题可不是开玩笑的,好的设备值得花钱。
(19)当一个软件工程师,最好的事情是什么?你可以结识很多想法相同的人,大家互相交流,不一定有相同的兴趣,但是对方会用跟你相同的方式思考问题,这很酷。
(20)有些技术太流行,我不得不用它。我心里就会很讨厌这种技术,但会把它推荐给客户。比如我恨 Jenkins,但把它推荐给新客户,我不觉得做错了。
(21)成为一名优秀的工程师意味着了解最佳实践,成为高级工程师意味着知道何时打破最佳实践。
(22)发生事故时,如果周围的人试图将责任归咎于外部错误或底层服务中断,那么是时候离开这家公司,继续前进了。
(23)我遇到的最好的领导,同意我的一部分观点,同时耐心跟我解释,为什么不同意我的另一部分观点。我正在努力成为像他们一样的人。
(24)算法和数据结构确实重要,但不应该无限夸大,尤其是面试的时候。我没见过药剂师面试时,还要测试有机化学的细节。这个行业的面试过程有时候很糟糕。
(25)做自己喜欢的事情并不重要,不做我讨厌的事情才更重要。
(26)越接近产品,就越接近推动收入增长。无论工作的技术性如何,只要它接近产品,我都感到越有价值。
(27)即使我平时用 Windows 工作,Linux 也很重要。为什么?因为服务器是 Linux 系统,你最终都要在 Linux 系统上工作。
(28)人死了以后,你想让代码成为你的遗产吗?如果是那样,就花很多时间在代码上面吧,因为那是你的遗产。但是,如果你像我一样,更看重与家人、朋友和生活中其他人相处的时光,而不是写的代码,那就别对它太在意。
(29)我挣的钱还不错,对此心存感激,但还是需要省钱。
(30)糟糕,我没酒了。
关于原文
这 30 条来自 Reddit 的 r/ExperiencedDevs 社区,原帖标题为《Drunk Post: Things I’ve learned as a Sr Engineer》,发表于 2021 年 5 月 30 日,作者是一位有十年经验的数据工程师(data engineer)。原文采用醉态随想的写法,比译文更加粗粝直白,条目数量也远不止 30 条。本文只是节选,译注时对口语化表达做了适度润色,并补上了中文初译本遗漏的一句"最好的代码是不写代码"。
需要说明的是:文中提到的薪资数字(5 万 / 9 万 / 12 万美元)反映的是 2021 年前后美国市场的水平,且地区差异巨大,不必当作绝对参照。原帖作者也并非在给出普适建议,而是酒后吐真言,读者权当一种视角即可。