IT 人酒后吐了 58 条真言:换工作是促进事业发展的最好方式

2021-06-28 星期一
一个月前,一个帐户名为flipstables的用户在社交网站Reddit上发表了一则帖子,此帖瞬间在圈内流传开来。云头条现将其内容翻译如下,供大家参考。


我现在喝高了,可能会为公开下面这些内容而后悔,但我还是要说一说过去十年作为一名工程师所体会的几点心得,与诸君分享。

1、促进事业发展的最好方式是换公司。

2、技术栈其实并不重要,因为在我所在的领域有大约15种基本的软件工程模式可以适用。我从事数据方面的工作,所以与Web开发或嵌入式开发方面的工作不一样。但所有领域都有大约10条至20条核心原则,技术栈只是让那些方面更容易而已,所以不要为此烦恼。

3、大家建议找工作是有道理的。如果我对某份工作不满意,可能是该跳槽了。

4、我在之前待过的公司结识了几位终生的好朋友,但我没必要把交到好朋友列为寻找每个新雇主所附带的一个要求。我曾在没有与同事建立起友谊的地方工作得很开心,也曾在交到几个好朋友的公司工作得很不开心。

5、我学会了与直属经理坦诚相待。并非完全敞开心扉,不过在工作中尽量做到坦诚。会发生什么更糟糕的情况呢?大不了解雇我。我会在两周内找到新工作。

6、如果一个季度内出现我在凌晨2点被紧急喊醒这种事不止一次,那么这意味着出了大岔子。我要么解决根源,要么就走人。

再灌一杯酒。

7、优秀经理与优秀工程师有着许多相似的优秀品质。

8、我初入职场时,迷恋于技术、编程和计算机科学。现在我已习惯了。

9、好的代码是初级工程师也能理解的代码;优秀的代码连计算机科学系的大一新生都能看懂;最好的代码是根本没有代码。

10、工程师要学习的最被低估的一项技能是如何写文档。有人教我怎么写好文档就好了。讲真的,如果真有什么好的建议,我会花钱上课(哪怕花很多钱,可能一门课1000美元,只要保证我能写好文档)。

11、与上一条相关,为代码变更写好提案是一项出色的技能。

12、几乎每一场激烈争论(vim与emacs之争和mac与linux之争等)都无关紧要,但一场争论除外。见下面这条。

13、年龄越大,我越欣赏动态语言。欢迎拍砖争论。

14、如果我发觉自己是房间里最聪明的那个人,是该走人的时候了,因为学不到新的。

15、我不知道为什么全栈Web开发者的薪水这么低。他们应该拿到50万美元的基本年薪。全栈开发者要了解前端和后端、不同的浏览器如何工作、网络和数据库、缓存、Web端和移动端的差异,甚至要了解公司想使用的另一种框架……谁能告诉我为什么Web开发者的薪水这么低?

16、我们应该雇佣更多的实习生,他们很棒。那些精力充沛的年轻人有很多奇思妙想。如果他们能提出质疑或批评,那就更好了。我喜欢实习生。

让我喝一口。

17、别去见你的偶像。我曾花了5000美元听一位偶像讲授的课程。他才华横溢,但结果我意识到他是编故事,他与我们其他人一样平庸。

18、技术栈很重要。我前面说技术栈不重要,且听我把话讲完。如果你听到Python开发vs C++开发,会觉得大不一样,是不是?那是由于某些工具确实很擅长处理某些工作。如果你不确定自己想做什么,那就用Java。这种再平常不过的编程语言擅长处理几乎一切任务。

19、有史以来最出色的编程语言是lisp,我应该学lisp。

20、对于初学者来说,最有钱途的编程语言是SQL,比所有其他语言更有钱途。就算只懂SQL,别的语言都不懂,你也能赚到大钱。薪资软件开发专家?月薪可能5万美元。懂SQL的薪资专家可能拿到9万美元!大公司有组织技能的普通人月薪4万美元。有组织技能又懂SQL 的人称得上项目经理(PM),月薪可达到15万美元。

21、测试很重要,但TDD(测试驱动开发)简直就是一门邪教。

22、轻松又来钱的政府工作并不像所说的那么好,至少对职业早期的工程师来说是这样。当然,12万美元薪资还有养老金听起来不错,但你将出卖自己的灵魂去研究机密的专有技术。我很尊重政府工作人员,但说真的,政府部门的工程师平均年龄在50岁以上是有原因的。这条建议不适用于政府承包商。

23、第三方招聘专员如同吸血蚂蟥。然而,如果你遇到了好的第三方招聘专员,应与对方认真搞好关系,他们可以帮助你促进事业发展。如何知道对方是好的第三方招聘专员?如果他们有至少三年的从业经验,可能不赖。好的第三方招聘专员通常成为大公司的招聘专员。

24、期权要么不值钱,要么会让你成为百万富翁。除非工程队伍数量超过100人,否则期权可能毫无价值。

25、在家工作很棒,但是没有白板很糟糕。

26、我从来没有在FAANG这些大公司工作过,所以不知道错过了什么。但是我雇佣过从FAANG出来的工程师,他们也不知道自己在做什么。

27、我的自我价值与总薪酬无关。金钱不是确定自我价值的好方法。

28、经理的权力比你想象的要小,而且小得多。你有没有想过,为什么某某经理不解雇某人?那是因为他们无力解雇。

29、头衔基本上不重要。某某公司的首席杰出主管工程师,这种头衔是虚的。大家只关心你做了什么工作、完成了什么目标。

30、说到头衔:在职业生涯早期,头衔变高是好事。从初级到中级,从中级到高级,从高级到首席。在职业生涯后期,头衔变低是好事。那样一来,你能拿到同样的薪酬,但留下了升职后涨薪水的空间。换句话说,在职业生涯早期(工作不到10年),头衔变高是好事,因为这让你的技能和职责都上升。随后,头衔变低是好事,因为这让你的薪水上涨。

31、善待每个人。不是因为此举有助于你的事业,而是因为与人为善本身带来回报。

32、如果我在过去一个月没有从初级工程师或实习生身上学到什么,那是我没注意他们。

33、在课程、书籍和会议上花点钱是值得的。我掏钱参加过几次会议,上过几门每门1500美元的课程,买过很多书,还订阅过。很值得。这样,我谈起自己从事的工作更头头是道。

34、说真的,为什么不付给Web开发者更高的薪水?他们什么都懂!!!

35、腕管和背部问题可不是闹着玩的。赶紧花钱买好的装备。

36、我在职场上遇到过的最聪明的人是一位数学博士。他让我受益匪浅。但愿他近况良好。

37、你知道身为软件工程师最大的好处是什么吗?可以和你想法相似的人见面聊天。不一定是体育和电视节目之类的同样的兴趣爱好,而是他们看待问题的方式与你一样。这太棒了。

38、从事技术工作的女性不够多。IT真是糟糕的行业,这需要有所改变。我一直试图给身边的女工程师给予更多的鼓励和帮助,但我不知道自己还能做什么。

39、黑人工程师存在同样的情况。究竟怎么回事?

40、我从未真正讨厌过哪种语言或技术,除非开始熟悉它。此外,即使我讨厌一项技术,但只要认为它是好的技术,仍会向客户推荐它。

41、话虽如此,git很糟糕,但我别无选择,只能使用它。另外,GUI git工具越来越糟糕,每天给我命令行。可能有7个命令行要记住,别的一切可以上网搜索到。

42、由于我从事数据方面的工作,会给出数据方面的一个经验:该死的pandas。

43、由于我的团队中有半技术分析师,我的工作比较容易。之所以称之为半技术,是由于他们懂编程,但不懂软件工程。这是件好事,因为如果某个东西对他们来说没有意义,就意味着可能设计得不好。我喜欢团队中的分析师,他们在帮助我成长方面比最出色的工程师还重要。

44、暗黑模式非常好,除非你不得不使用明亮模式(网页或不支持暗黑模式的应用)。这就是为什么我使用明亮模式。

45、我以为自己对安全足够了解,到头来却发觉对安全一无所知。

我喝光酒了。

46、作为一名不错的工程师意味着了解最佳实践。而作为一名高级工程师意味着知道何时打破最佳实践。

47、如果有人试图将责任归咎于 bug或故障,是时候换公司了。

48、许多成长型的公司(尤其是初创公司)都在谈论体现“真实的自我”。但如果体现真实的自己只是看色情内容,又有何意义?有必要做到工作与个人生活分开来。

49、我喜欢在开心的时候与同事一起喝酒。但我宁愿花时间与孩子、家人和朋友在一起。

50、明明是我造成的错误,领导人却揽过全部责任,这时候最能证明出众的领导力。你要相信,我会为他赴汤蹈火。

51、同样,我有幸效力过的最优秀领导人总是全力支持我的观点,并向我解释与我的观点相冲突的其他观点。我正在努力成为他们那样的人。

52、让副业见鬼去吧。如果你喜欢搞副业,很好!但即使我有时间搞副业,也会忙着在醉醺醺的状态下在Reddit上写帖子。

53、在一定程度上,算法和数据结构很重要。我没见过药剂师面试考有机化学方面的知识。我们行业的面试过程有问题。

54、做自己喜欢的事不重要,做自己不讨厌的事更重要。

55、我越接近产品,越有机会提高产品收入,此时无论我的工作技术性有多强,我都觉得自己越受重视。即使在成长速度最快的公司,也是如此。

56、Linux很重要,即使我在周围全是Windows的环境下工作。为什么?因为我最终用Linux完成工作,所以我经常在周末捣鼓安装Arch。

57、我学会了对大数据这类模棱两可的流行语保持警惕。“大”数据到底是什么?我用Spark和Kafka处理过每10分钟10000行的数据流,用Python和MySQL处理过每小时10亿行的批处理。那些标签见鬼去吧。

58、不是所有的好工作都在硅谷,但硅谷确实有许多好工作。

最后,如果你确实想怼我,别给我差评,我才不会在乎差评。无视此帖就行了。没有什么比我写了一长篇文章,却无人响应更让我伤心的了。所以如果你讨厌此文,无视它就行。

英文原文:

I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.

  • The best way I've advanced my career is by changing companies.

  • Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.

  • There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.

  • I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.

  • I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.

  • If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.

  • pour another glass

  • Qualities of a good manager share a lot of qualities of a good engineer.

  • When I first started, I was enamored with technology and programming and computer science. I'm over it.

  • Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.

  • The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)

  • Related to above, writing good proposals for changes is a great skill.

  • Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.

  • The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.

  • If I ever find myself thinking I'm the smartest person in the room, it's time to leave.

  • I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.

  • We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.

  • sip

  • Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.

  • 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. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.

  • The greatest programming language ever is lisp. I should learn lisp.

  • For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.

  • Tests are important but TDD is a damn cult.

  • Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.

  • Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.

  • Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.

  • Work from home is the tits. But lack of whiteboarding sucks.

  • I've never worked at FAANG so I don't know what I'm missing. But I've hired (and not hired) engineers from FAANGs and they don't know what they're doing either.

  • My self worth is not a function of or correlated with my total compensation. Capitalism is a poor way to determine self-worth.

  • Managers have less power than you think. Way less power. If you ever thing, why doesn't Manager XYZ fire somebody, it's because they can't.

  • Titles mostly don't matter. Principal Distinguished Staff Lead Engineer from Whatever Company, whatever. What did you do and what did you accomplish. That's all people care about.

  • Speaking of titles: early in your career, title changes up are nice. Junior to Mid. Mid to Senior. Senior to Lead. Later in your career, title changes down are nice. That way, you can get the same compensation but then get an increase when you're promoted. In other words, early in your career (<10 years), title changes UP are good because it lets you grow your skills and responsibilities. Later, title changes down are nice because it lets you grow your salary.

  • Max out our 401ks.

  • Be kind to everyone. Not because it'll help your career (it will), but because being kind is rewarding by itself.

  • If I didn't learn something from the junior engineer or intern this past month, I wasn't paying attention.

  • Oops I'm out of wine.

  • Paying for classes, books, conferences is worth it. I've done a few conferences, a few 1.5k courses, many books, and a subscription. Worth it. This way, I can better pretend what I'm doing.

  • Seriously, why aren't webdevs paid more? They know everything!!!

  • Carpal tunnel and back problems are no joke. Spend the 1k now on good equipment.

  • The smartest man I've every worked for was a Math PhD. I've learned so much from that guy. I hope he's doing well.

  • Once, in high school, there was thing girl who was a great friend of mine. I mean we talked and hung out and shared a lot of personal stuff over a few years. Then there was a rumor that I liked her or that we were going out or whatever. She didn't take that too well so she started to ignore me. That didn't feel too good. I guess this would be the modern equivalent to "ghosting". I don't wish her any ill will though, and I hope she's doing great. I'm sorry I didn't handle that better.

  • I had a girlfriend in 8th grade that I didn't want to break up with even though I didn't like her anymore so I just started to ignore her. That was so fucked up. I'm sorry, Lena.

  • You know what the best part of being a software engineer is? You can meet and talk to people who think like you. Not necessarily the same interests like sports and TV shows and stuff. But they think about problems the same way you think of them. That's pretty cool.

  • There's not enough women in technology. What a fucked up industry. That needs to change. I've been trying to be more encouraging and helpful to the women engineers in our org, but I don't know what else to do.

  • Same with black engineers. What the hell?

  • I've never really started hating a language or technology until I started becoming intimately familiar with it. Also, I think a piece of tech is good if I hate it but I simultaneously would recommend it to a client. Fuck Jenkins but man I don't think I would be commuting software malpractice by recommending it to a new client.

  • That being said, git is awful and I have choice but to use it. Also, GUI git tools can go to hell, give me the command line any day. There's like 7 command lines to memorize, everything else can be googled.

  • Since I work in data, I'm going to give a data-specific lessons learned. Fuck pandas.

  • My job is easier because I have semi-technical analysts on my team. Semi-technical because they know programming but not software engineering. This is a blessing because if something doesn't make sense to them, it means that it was probably badly designed. I love the analysts on the team; they've helped me grow so much more than the most brilliant engineers.

  • Dark mode is great until you're forced to use light mode (webpage or an unsupported app). That's why I use light mode.

  • I know enough about security to know that I don't know shit about security.

  • Crap I'm out of wine.

  • Being a good engineer means knowing best practices. Being a senior engineer means knowing when to break best practices.

  • If people are trying to assign blame to a bug or outage, it's time to move on.

  • A lot of progressive companies, especially startups, talk about bringing your "authentic self". Well what if your authentic self is all about watching porn? Yeah, it's healthy to keep a barrier between your work and personal life.

  • I love drinking with my co-workers during happy hour. I'd rather spend time with kids, family, or friends.

  • The best demonstration of great leadership is when my leader took the fall for a mistake that was 100% my fault. You better believe I would've walked over fire for her.

  • On the same token, the best leaders I've been privileged to work under did their best to both advocate for my opinions and also explain to me other opinions 'that conflict with mine. I'm working hard to be like them.

  • Fuck side projects. If you love doing them, great! Even if I had the time to do side-projects, I'm too damn busy writing drunken posts on reddit

  • Algorithms and data strictures are important--to a point. I don't see pharmacist interviews test trivia about organic chemistry. There's something fucked with our industry's interview process.

  • Damn, those devops guys and gals are f'ing smart. At least those mofos get paid though.

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

  • The closer I am to the product, the closer I am to driving revnue, the more I feel valued regardless of how technical my work is. This has been true for even the most progressive companies.

  • Linux is important even when I was working in all Windows. Why? Because I eventually worked in Linux. So happy for those weekend where I screwed around installing Arch.

  • I've learned to be wary for ambiguous buzz words like big data. WTF is "big" data? I've dealt with 10k rows streaming every 10 minutes in Spark and Kafka and dealt with 1B rows batched up hourly in Python and MySQL. Those labels can go fuck themselves.

  • Not all great jobs are in Silicon Valley. But a lot are.


Finally, if you really want to hurt me, don't downvote I don't care about that. Just ignore this post. Nothing makes me sadder than when I wrote a long post and then nobody responds. So if you hate this post, just ignore.


 相关阅读 ·



原文地址:点击此处查看原文