10年码龄的老外码农酒后吐槽,该说的不该说的全说了

开发 前端
今天是有点儿高了,跟老铁们吐一下槽。有一天我会后悔吗?嗯,只有上帝知道!区区不才,这是在下,工作10年的奇葩总结。

上个月,一个有着10年码龄的程序猿喝高了,在社交网站Reddit上吐槽。然后被疯狂转发,点赞。可说是讲出了咱们很多码农的心声。咱们国内这边也有不少版本了。我们也凑凑热闹翻译一版。跟大家一块儿欣赏一下:

今天是有点儿高了,跟老铁们吐一下槽。有一天我会后悔吗?嗯,只有上帝知道!区区不才,这是在下,工作10年的奇葩总结。

还在傻傻等老板给升职加薪吗?赶紧跳槽吧,哥儿们。世界上没有神仙皇帝,一切全靠我们自己!

现在都讲究全栈工程师,又焦虑了不是?可这真的不重要。就拿我所在的软件领域,你可以折腾出15种花样。在web编程或嵌入式,可能有所不同。但是所有的事情,基本上其核心的原则也就只有10到20条,技术栈只不过是让解决问题容易一些。没有必要去搞懂勾股定理的16种证明方法。

大家劝你另谋高就是几个意思。如果在一个地方待的不爽,可以考虑拎桶走人了。

在一些公司里找到了志同道合的好基友。可是你不能总有这种狗屎运。有的时候没有好基友也能开开心心,有好基友的公司并不是就不会碰上赛心事儿。

我学会了跟老板尽量交心,当然这要把握好度,让他能放心地把事情交给你就刚刚好。会触到什么霉头?炒我鱿鱼?花两周再找个下家好了。

如果一个季度有那么一两次,凌晨2点被从被窝里薅起来,那事儿就有点儿严重了,要么搞定要么走人吧。

唉,再搞一杯。

好的老板和好员工总是能惺惺相惜。

当我还是个小白,也曾狂热于技术,编写代码,计算机科技。现在不纠结了。

好代码能被一个小白工程师看懂,伟大的代码学生都能懂,最好的代码,是不敲代码。

作为一个工程师,最没学好的就是怎么写文档。擦,有没有人教我一下啊。我是认真的,谁给提点儿好建议,我真的很想花钱,找人给我上一课(很贵也在所不惜,一千美金够不够啊,教教我怎么写出个能让人满意的,高大上的文档)

接上条,写一个完美的设计更改需求,可能也是个高科技的活。

这些大战跟我有什么鸟关系(vim vs emacs, mac vs linux, 这些…),除了下面这个。看下面这条。

越来越老,就越来越觉得,动态语言真是个好东西。擦,是我说的,怎么着?来咬我呀。

在一个地方,当我觉得自己算最聪明一个了,就到了离开的时候了。

真不理解为毛给全栈web工程师这点可怜的薪水。噢,不,讲真的,这些家伙基本工资一年就算挣50万美金也不算多。擦,人家得懂前端,后端,各种浏览器,网络,数据库,还有什么缓存,网络端和移动端区别,啥,公司要上个新框架?这当然也得懂。讲真,作为懂王,为啥网端大佬工资这么低。

我们应该多雇点儿实习生,真是棒极了。这些小不点儿充满奇思妙想。再指点一下江山,真是棒极了。我喜欢。

再搞一口

千万别跟偶像见面。我花了5千大洋去听偶像的课。他可是亮瞎眼的明星,但最后我发现他和你我也并没有太多不同,都是包装炒作而已。

技术栈很重要。噢,对,我好像刚刚讲了这不重要,好吧,接着听我唠一唠。你听人讲Python 开发,和讲C++ 开发,你会说这区别蛮大的,对不对?因为干什么活就得用什么工具。如果你不明白该用什么,那就用Java吧。这种编程语言虽然烂到家了,但它又什么都能干。

最伟大的编程语言是lisp。我应该学一下了。

对于一个新手来说,学习SQL语言是迅速致富的不二法门。让其它的语言都见鬼去吧。你不用懂别的,就懂个SQL就可以了。薪资数据处理专家?能拿5万美金。懂SQL的薪资数据处理专家?9万美金!大公司里懂管理架构的大牛?4万美金。懂管理架构的大牛又懂SQL?那就可以称得上项目经理,拿到15万美金了。

如果说要重视测试(Test),那么就需要把测试驱动开发 (TDD)供上神坛。

政府部门工作并不真的像传说中的香饽饽,至少对于初入职场的工程师来说是这样。120K美金加上各种福利还有养老金,的确有些诱人,但是你愿意出卖你的灵魂,扑在那些只有内部人才懂的技术上吗?非常尊重公务员,但那里的确是个养老的地方。此建议不适用于政府承包商。

第三方猎头就是寄生虫。话说回来,如果你能找到个狠角色,跟他们建立良好关系,对你的职业生涯大有好处。怎么样才能知道是个好猎头呢?好猎头通常不会在第三方公司超过三年。他们常常被大公司挖走。

如果公司员工少于100人,期权估计就是个大饼。反之,它有可能让你10年之内成为大款儿。

在家工作很滋润,但没有白板用,有点儿不得劲儿。

我从来没在Facebook,Google这样的大公司待过,所以我不知道是否错过了什么。但我招罗了一些(也有些没用)这些大公司出来的员工,他们也是迷迷糊糊的。

我觉得我个人取得的报酬,相比于自身价值简直九牛一毛。你们都知道,用金钱来衡量一个人有时候是愚蠢的。

经理的权利比你想象的小的多的多,想想吧,为什么那个经理不把谁谁开掉,因为他不能把谁谁开掉。

头衔最没鸟用。什么什么大公司的首席,杰出员工,通通没什么用。你做过什么,完成了什么项目,这才是大家最关心的。

我们接着聊聊头衔:职业初期,头衔越来越高是个好事情。初级到中级,中级到高级,高级到首席。如果你已经是职场老人了,头衔越低越好。这样,工资还是一样,如果有晋升机会又可以加薪了。也就是说,职场头10年,头衔的晋升代表着技能和责任的增长。之后,越低的头衔让你工资更容易增长。

退休金计划要交满。

要和善地对待身边的每个人。这样做不是为了升职加薪(虽然肯定有所帮助),这样做本身就是它的价值所在。

如果过去这个月,我没从新手那里学到什么,那一定是大意了。

见鬼,酒没了。

为课程,书籍,会议付费是物有所值的。我参加了数次会议,几个1千5百大洋的课程,很多很多书,还订阅了一些。很值,这样我就可以在工作中更装了。

讲真的,为什么不给web开发人员更高的工资?他们可是懂王啊!!!

腕管综合症,背部拉伤,都不是闹着玩儿的。花1千大洋买点儿好设备吧。

我碰到过的一位大神是个数学博士。从老兄那儿我学了很多。希望他还好。

曾经,在高中时代,我有一个非常棒的女同学。我的意思是我们经常一起晃荡了几年,无所不谈。然后谣言四起,说我喜欢她,一起那啥啥的。她不能正确的看待这个问题,开始忽视我的存在。这让人有点儿郁闷。拿个现在时髦的词儿讲,就是我被“拉黑”了。但我并没有怀恨在心,还是希望她元气满满。要是能穿越回去,应该会有个好一些的结局吧。

我还在8年级有个小女朋友,虽然我不太喜欢她了,也还没想着结束,就这样吧。这真是有点儿蛋疼。抱歉,Lena。

你知道作为一个软件工程师,最棒的是什么?你可以碰到和你一样的家伙们。并不是说你们都喜欢运动,看电视这些。就是说你们常常钻同样的牛角尖,这真是棒极了。

技术领域让女生走开。这是什么鬼行业。这真需要改变,不是吗?我在工作中一直热心的帮助这些女工程师,我还想做更多。你说该如何下手?

黑人工程师,一样的啊。什么鬼?

我对一个技术经常是爱极生恨。当我开始讨厌这个技术时往往又觉得它还不错,老爱推荐给别人。Jenkins是个什么鬼,老兄,我即使给一个新客户推荐这个软件,并不是说明我能减少它运行故障带来的灾难。

继续吐槽,git棒极了,我正在用呢。然并卵,GUI图形界面去死吧,还是让我用命令行吧。7个命令多好记呀,其它的Google一下就好啦。

我说过我做数据这一行,我要去学个数据方面的课程。Pandas,真是受够了啊啊啊。

我的工作还算容易,因为我有一群半吊子技术分析师。他们懂编程,但又不是软件工程师。这真是谢天谢地,如果他们发现什么不对劲儿,他们总会说这肯定是设计问题。我爱死他们了。他们可比最棒的工程师棒多了。

暗色调棒极了。直到你被逼着使用亮色调。这就是为什么我是用亮色调。

我对加密太了解了,突然发现一点儿都不懂啊。

大哥,酒怎么又没了呢。

熟知各种套路才能做一个好工程师。然而成为一个更棒的高级工程师,你需要知道有时候需要打破套路。

如果大家都认为所有问题都是Bug惹的祸,该继续了。

很多创业公司热衷于让员工打开心扉,展现“真我”。好吧,如果这个真我的爱好是爱看小电影可咋整?工作和私生活还是井水不犯河水的好。

开心时刻和同事们喝喝酒挺好的。我更乐意和小孩子们,家人和朋友们在一起。

什么是超级领导力?明明是你的错误,可你的头儿把责任全都揽过去。你肯定知道我就算为她赴汤蹈火也在所不惜。

是的,我效力过的最棒的老板总是大力支持我的观点,同时他们会跟我尽力解释那些跟我相冲突的观点。我一直想做到像他们一样。

去他娘的副业。如果你喜欢搞副业,也挺棒的!但我更醉心于忙着在reddit上吐吐槽。

算法和数据结构很重要,在一定程度上来讲。但你见过老中医面试的时候还要考考有机化学之类的吗?我们的专业面试真是狗屁不通。

那些搞开发的小男生,小女生们都是机灵鬼儿。至少某个地下行业有钱赚了。

干不干我喜欢的不重要,重要的是别干我讨厌的事儿。

你做的事儿离产品越近,你就越能体会什么是给公司创造价值。跟你做的事儿是否有技术含量真没关系。在初创公司尤其如此。

Linux真的挺重要的,即使在我还是Window程序猿时。为毛?因为我最后还是加入了Linux阵营。在周末加班加点儿地安装Arch真是挺激动人心滴。

我学会了小心对付那些模糊的字眼,像大数据之类的。WTF是个敏感词儿吗?我对付过Spark和Kafka每10分钟的上万行的数据流,还有Python和MySQL,一小时10亿行的数据流。那些该死的标号真是见了他妈的鬼了。

并不是所有好职位都在硅谷。但大部分都是。

好吧,如果你想鄙视我一下,千万被给我差评,咱可不在乎这个。就当没看见好了。最让我郁闷的就是我啰啰嗦嗦讲了大半天,贴出来没半点儿反应了。如果你觉得这是个烂贴,就这样吧。

附原文:

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 fk 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.

 

责任编辑:未丽燕 来源: 今日头条
相关推荐

2022-12-07 10:35:28

2018-06-04 14:41:36

互联网数据移动

2012-08-29 10:59:15

Win 8操作系统

2016-12-14 09:54:56

Safari浏览器苹果

2014-08-06 14:13:30

Windows Pho

2013-10-17 10:13:30

码农程序员

2014-07-17 09:21:57

编程编程漫画

2018-03-12 11:00:54

Windows 10微软强制更新

2020-09-30 11:14:24

AI码农架构

2023-07-16 22:34:55

2015-05-12 10:15:15

程序员

2012-05-21 17:37:17

Windows Pho吐槽

2021-04-24 08:03:57

Windows10操作系统21H2

2021-01-01 14:59:51

Python机器学习算法

2017-12-21 10:01:09

移动端程序员安卓

2024-01-15 15:11:03

物联网5G数字孪生

2013-10-29 09:08:05

2013-10-29 09:32:05

2018-10-17 22:01:06

2014-04-23 17:58:32

码农码农思想
点赞
收藏

51CTO技术栈公众号