程序员的酒后真言

作者: 阮一峰

日期: 2021年6月28日

美国最大的论坛 Reddit,最近有一个热帖

一个程序员说自己喝醉了,软件工程师已经当了10年,心里有好多话想说,"我可能会后悔今天说了这些话。"

他洋洋洒洒写了一大堆,获得9700多个赞。内容很有意思,值得一读,下面是节选。

(1)职业发展的最好方法是换公司。

(2)技术栈不重要。技术领域有大约 10-20 条核心原则,重要的是这些原则,技术栈只是落实它们的方法。你如果不熟悉某个技术栈,不需要过度担心。

(3)工作和人际关系是两回事。有一些公司,我交到了好朋友,但是工作得并不开心;另一些公司,我没有与任何同事建立友谊,但是工作得很开心。

(4)我总是对经理实话实说。怕什么?他开除我?我会在两周内找到一份新工作。

(5)如果一家公司的工程师超过 100 人,它的期权可能在未来十年内变得很有价值。对于工程师人数很少的公司,期权一般都是毫无价值。

(6)好的代码是初级工程师可以理解的代码。伟大的代码可以被第一年的 CS 专业的新生理解。

(7)作为一名工程师,最被低估的技能是记录。说真的,如果有人可以教我怎么写文档,我会付钱,也许是 1000 美元。

(8)网上的口水战,几乎都无关紧要,别去参与。

(9)如果我发现自己是公司里面最厉害的工程师,那就该离开了。

(10)我们应该雇佣更多的实习生,他们很棒。那些精力充沛的小家伙用他们的想法乱搞。如果他们公开质疑或批评某事,那就更好了。我喜欢实习生。

(11)技术栈很重要。如果你使用 Python 或 C++ 语言,就会忍不住想做一些非常不同的事情。因为某些工具确实擅长某些工作。

(12)如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。

(13)对于初学者来说,最赚钱的编程语言是 SQL,干翻所有其他语言。你只了解 SQL 而不会做其他事情,照样赚钱。人力资源专家的年薪?也许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)糟糕,我没酒了。

(完)

留言(50条)

职业发展的最好方法是换公司>_

职业发展的最好方法是换公司。

---
修仙小说里,主角要不断从小地方、小帮派,慢慢到大地方、大帮派。我理解换公司有两种情况:
1. 当下公司承载不了你的个人发展了。
2. 当下公司因为固有印象,没法给你更高的工资。

It's not important to do what I like. It's more important to do what I don't hate.

职业发展的最好方法是换公司

+ 10086

再倒一杯酒!

第2条和第11条同时存在是因为有时间的先后?

职业发展的最好方法是换公司。

---
修仙小说里,主角要不断从小地方、小帮派,慢慢到大地方、大帮派。我理解换公司有两种情况:
1. 当下公司承载不了你的个人发展了。
2. 当下公司因为固有印象,没法给你更高的工资。

“我在八年级时有一个女朋友,我不想分手,即使我不喜欢她了,所以我开始不理她。太糟糕了对不起,莉娜”

对不起,我的前女友。

引用熠熠的发言:

第2条和第11条同时存在是因为有时间的先后?


Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs.

有道翻译:技术堆栈问题。好吧,我刚说了技术堆栈不重要,但听我说完。如果你听到Python dev和c++ dev,你会有不同的想法,对吗?这是因为某些工具确实适合于某些工作。

2和11冲突吗

It's not important to do what I like. It's more important to do what I don't hate.

这句话翻译成“做我喜欢的并不重要,更重要的是做我不讨厌的事情。”更准确。

个人理解:技术栈不重要是因为你可以很快的上手它;技术栈很重要是因为在某些方面它确实很好用。

第4条这里没有翻译不妥,意思完全变了 “I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. ”

hi 峰哥~ 原贴的下面评论中, 作者还有很多酒后真言, 可以也一起补充翻译啊

引用云淡风轻的发言:


引用熠熠的发言:

第2条和第11条同时存在是因为有时间的先后?


Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs.

有道翻译:技术堆栈问题。好吧,我刚说了技术堆栈不重要,但听我说完。如果你听到Python dev和c++ dev,你会有不同的想法,对吗?这是因为某些工具确实适合于某些工作。


“……你会认为是非常不同的事情,对吧?那是因为特定的工具真的是擅长特定的工作。”

前面提技术堆栈,是为了表明核心原则比技术堆栈更重要。
后面提技术堆栈,是为了提一句不同编程语言确实有其擅长的领域。

技术领域有大约 10-20 条核心原则,这些原则是什么呢?

我以前有个女朋友,当我意识到不爱她的时候,我没有说分手,而是用冷暴力对她,忽视她,那感觉真不好受,对不起,冷娜。

(24)算法和数据结构确实重要,但不应该无限夸大,尤其是面试的时候。我没见过药剂师面试时,还要测试有机化学的细节。这个行业的面试过程有时候很糟糕。
此处需要@字节跳动

有几条确实是干活, 换公司带来的收益是真的高

归根到底就是一句话:
技术不重要, 业务才是第一位

加油 好好干

引用恬惔的发言:

技术领域有大约 10-20 条核心原则,这些原则是什么呢?

同问,是不是设计能力 分析能力什么的?有没有什么书

原帖的留言也是相当精彩。

“网上的口水战,几乎都无关紧要,别去参与” +身份证号
能平心静气讨论问题的人的比例越来越少。

换公司!!

但是挣钱与好代码无关,因为老板又不懂代码,那些混子还工资高。难道是我瞎子看不到另一面好的

(18)手腕和背部的健康问题可不是开玩笑的,好的设备值得花钱。
这句话是什么意思?

引用李二狗的发言:

(18)手腕和背部的健康问题可不是开玩笑的,好的设备值得花钱。
这句话是什么意思?

程序员健康阿,好椅子好鼠标

不建议把原文中的“我”省略掉,本来他在表达自己的看法自己的经验,省略掉后就像一个好为人师的过来人再告诉新人真理

面试造火箭,工作拧螺丝!

引用luke的发言:

It's not important to do what I like. It's more important to do what I don't hate.

这句话翻译成“做我喜欢的并不重要,更重要的是做我不讨厌的事情。”更准确。

学生吗?你这是机翻层面上的更准确的!内容上的更准确当然是不做讨厌的事啦

引用qimiaojiyi的发言:

个人理解:技术栈不重要是因为你可以很快的上手它;技术栈很重要是因为在某些方面它确实很好用。

技术栈很重要事因为技术特性有时候决定了你的思考方式和一部分行为习惯

引用ddsdggsg的发言:

同问,是不是设计能力 分析能力什么的?有没有什么书

是啊是啊,峰哥,您的原则是什么?

越来越水

引用柠檬的发言:

(24)算法和数据结构确实重要,但不应该无限夸大,尤其是面试的时候。我没见过药剂师面试时,还要测试有机化学的细节。这个行业的面试过程有时候很糟糕。
此处需要@字节跳动

想起来脉脉上说字节面行政都要考算法的段子 哈哈哈

职业发展的最好方法是换公司。

我得换公司了

在现在公司待多久可以换呀,想积累一些技术上的asset

NICE 赞同绝大多数观点。

来人,再给他倒一杯酒!

字节就是膨胀;我等着看好戏

如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。

我也想学JAVA,来自iOS 的心声。

引用luke的发言:

It's not important to do what I like. It's more important to do what I don't hate.

这句话翻译成“做我喜欢的并不重要,更重要的是做我不讨厌的事情。”更准确。

我还是感觉原文翻译的更顺畅,“做我喜欢的事情并不重要,不要让我做讨厌的事情更重要。”

这篇文章真的很好,说出了大部分时候的真相;
但似乎没有全部翻译,漏掉了一些。

我的观点是在去一家企业工作之前,必不可少地对其全方位的了解,包括创始人、文化、业务、规模、口碑等等,最重要的是,要弄清楚去这家企业的目的是什么,也就是说想要得到什么?如果仅仅为了那份微薄的收入,对自己的来讲就过于残忍了。年轻人不要着急赚钱,而是要为自己积累。积累的经验越丰富多元未来的生活就越有保障。所以我们应该关注的是能学到什么,能有怎样的成长和发展机会。总而言之,其实换个思路会上程序员越老越吃香。

在加拿大做了十年程序员有点迷茫。。

引用JJo的发言:

在加拿大做了十年程序员有点迷茫。。

硕士毕业后在国内自动驾驶行业干了4年,准备这一两年内赚一笔钱,就去加拿大读书,目标移民的。前辈能给点经验吗?为什么干了10年迷茫了?没有中年危机,WLB不好么?

换公司确实对职业发展很重要,可以接触到更多技术。

感觉迷茫了就过来看看,记不清来过多少次了。

一字一句看完

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接