Recently, a Reddit user posted on R /ExperiencedDevs about what it’s been like to live and work in the past few years. The post received more than 10,000 comments, and a User on Jianyue.com translated the article into Chinese using DeepL and proofread it. The following is a Chinese translation of the full text

Things I’ve learned as a Sr Engineer

I got drunk, and I may regret it, but here’s a ranking of what I’ve learned in the last 10 years as an engineer.

  • The best way FOR me to advance my career is to change companies.
  • The technology stack doesn’t really matter, because in my field, there are 15 basic software engineering patterns that apply. I work in the data space, so it won’t be the same as Webdev or embedded. But all areas have about 10-20 core principles, and technology stacks are just trying to make these things easier, so don’t let it bother you.
  • There’s a reason people suggest looking for a job. If I’m unhappy in a job, it might be time to move on.
  • I’ve made some good, lifelong friends at the companies I’ve worked for. I don’t need to make this a requirement everywhere I work. I’m happy to work in places where I don’t have friendships with my colleagues; I was also unhappy in places where I had made some good friends.
  • I’ve learned to be honest with my manager. Not too honest, but just right, so I can take my job with my heart. What’s the worst that can happen? He fired me? I can find a new job in two weeks.
  • If I’m woken up at 2am more than once a quarter to be on call, then something is serious and I can either fix it or quit.

Have another glass of wine

  • The qualities of a good manager have much in common with those of a good engineer.
  • When I first started working, I was fascinated by technology, programming and computer science. I’ve moved on.
  • Good code is code that can be understood by a junior engineer. Good code can be understood by a first-year computer science student. The best code is no code at all.
  • As an engineer, one of the most underrated skills is how to keep track. God damn it, somebody teach me how to document. Seriously, IF there is any recommendation, I will seriously pay for a course (which could be a lot of money, maybe $1,000 for a course, if it guarantees that I can write good documentation).
  • Related to this, writing good change suggestions is a great skill.
  • Almost all jihad (Vim vs Emacs, MAC vs Linux, etc.) is not important… Except for one. See below.
  • The older I get, the more I appreciate dynamic languages. Fuck, I told you. To hurt each other.
  • If I find myself thinking I’m the smartest person in the room, it’s time to leave.
  • I don’t know why full stack network engineers are paid so little. No, really, they should be making half a million a year, and that’s just base pay. Fuck, they have to understand front end and back end, and how different browsers work, web, database and cache, and the difference between web and mobile, and it’s not over yet, OMG, the fucking company has another framework they want to use? Seriously, why are network engineers so underpaid?
  • We should hire more interns. They’re amazing. These energetic little guys have ideas of their own. If they can question or criticize something, so much the better. I love interns.

sip

  • Don’t meet your idols. I paid $5,000 to take a class with one of my idols. He was a brilliant man, but by the end of the course I realised he was just making things up on the spot like the rest of us.
  • Technology stacks are important. Okay, I just said the technology stack is not important, but listen to me. If you hear about Python development and C++ development, you think about very different things, right? This is because certain tools are really good at certain jobs. If you’re not sure what you want to do, do Java. It’s a garbage programming language that can do almost anything.
  • The greatest programming language of all time is Lisp. I should learn Lisp.
  • For starters, the most lucrative programming language is SQL. All other languages go to hell. If you know SQL and nothing else, you can make money. A salary expert? Maybe $50,000. Know the salary expert in SQL? $90,000. Ordinary people with organizational skills in a big company? $40,000. Organized, normal people who know SQL? Think of yourself as a product manager and get paid $150,000 effortlessly.
  • Testing is important, but TDD (Test-driven Development) is a damn cult.
  • Cozy government jobs are not what others portray them to be, at least for early – to mid-stage engineers. Sure, 120,000 + benefits + pension sounds sweet, but you’ll be selling your soul to work on esoteric patented technology. I have a lot of respect for government workers, but seriously, there’s a reason the median age of engineers in these places is over 50. This advice does not apply to government contractors.
  • Third-party recruiters are vampires. However, if you find a good and serious relationship with them, they can help guide your career. How do you know if you have a good one? If they have been working for a third-party recruitment agency for more than 3 years, they are probably not very good. Good recruiters usually come from big companies.
  • Options are either worthless or can make you a millionaire. They’re probably worth nothing, unless the engineering department has more than 100 people, and then at least for a decade, they might be worth something.
  • Working from home is the best. But not being able to collaborate on whiteboards sucks.
  • I didn’t work at FAANG, so I don’t know what I’m missing. But I’ve hired (or not hired) FAANG engineers who didn’t know what they were doing.
  • My self-worth is not a function, and it has nothing to do with my total income. Capitalism is a terrible way to show your self-worth.
  • Managers have a lot less power than you might think. If you’ve ever wondered why XYZ managers don’t fire someone, it’s because they can’t.
  • Most titles don’t matter. It doesn’t matter if it’s the chief standout, the chief engineer, whatever. What you do, what you achieve, is all people care about.
  • Speaking of titles: Changes in titles are good early in your career; Junior to intermediate, intermediate to advanced, senior to leader. Later in your career, it’s good to move down; That way, you’ll get the same amount of money, but you’ll get more when you get promoted. In other words, moving up early in your career (<10 years) is a good thing because it allows your skills and responsibilities to grow. Later, a downgrading is a good thing because it can increase your salary.
  • Using up our $4 million pension.
  • Be kind to everyone. Not because it will help your career (which it will), but because kindness is meaningful in and of itself.
  • If I haven’t learned anything from junior engineers or interns in the past month, I haven’t been paying attention.

Oh, my goblets are at the bottom.

  • Paying for courses, books, conferences is worth it. I’ve been to some conferences, some $15,000 classes, lots of books, and a subscription service. It’s all worth it. That way, I can better pretend what I’m doing.
  • Seriously, why aren’t WebDevs paid well? They know everything!! .
  • Carpal syndrome and psoas strain are no joke. Now put that $1,000 on good equipment.
  • The smartest guy I ever worked for was a math PhD. I learned a lot from that man. I hope he is well.
  • Once, when I was in high school, there was a girl who was a good friend of mine. During those years, we talked, got along, and shared a lot of personal things. Then there were rumors that I liked her or that we were dating or something. She didn’t like it, so she started ignoring me. I think it’s the popular term for ‘Ghosting’. But I don’t hold any grudges against her. I wish her well. I blame myself for not handling it better.
  • I had a girlfriend in eighth grade, and even though I didn’t like her anymore, I didn’t want to break up with her, so I just started ignoring her. That’s too bad. I’m sorry, Lena.
  • You know what the best part of a software engineer’s job is? You can meet people who think like you and communicate with them. They don’t necessarily have the same interests, like sports and TV shows and things like that. But they think the same way you do. It’s pretty cool.
  • There aren’t enough women in tech. What a terrible industry. That needs to change. I’ve been trying to do more to encourage and help women engineers in our organization, but I don’t know what else to do.
  • Black engineers are also rare. What the hell is going on here?
  • I never really started to hate a language or technology until I became intimately familiar with it. Also, if I hate a technology and I think it’s good, I’ll still recommend it to a client. Jenkins fuck you, but I don’t think IT would be software malfeasance for me to recommend it to a new client.
  • In other words, Git sucks, but I have no choice but to use it. In addition, git tool of GUI can be dead, just give me the command line, all need to memorize 7 command lines, the rest can be googled.
  • Since I’m in the data business, I’m going to give you a data lesson. Fuck Pandas (a Python database).
  • 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 is incomprehensible to them, that means it’s probably poorly designed. I like the analysts on the team; They helped me grow more than the best engineers.
  • Dark mode is fine until you are forced to use light mode (web pages or unsupported apps). That’s why I use light mode.
  • The only knowledge I have of security is that I know nothing about it.

Oh, 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 try to pin the blame on a mistake or glitch, then move on.
  • A lot of progressive companies, especially startups, talk about bringing your “true self.” So what if all your real self is watching porn? Yes, it’s healthy to maintain a barrier between your work and personal life.
  • I like to drink with my colleagues at happy hour. I’d rather spend time with my kids, family or friends.
  • The best form of great leadership is when my leader takes the blame for a mistake that is 100% mine. You better believe I’d do anything for her.
  • Likewise, the best leaders I have had the privilege of working under have tried to both advocate my ideas and explain to me other ideas that conflict with mine. I’m trying to be like them.
  • Fuck the side business. If you like doing that, fine! Even if I had time for a side hustle, I was too fucking busy getting drunk and Posting on Reddit.
  • The limitations of algorithms and data are important — up to a point. I don’t think the pharmacist interview is going to test the trivia of organic chemistry. There’s something wrong with the interview process in our industry.
  • Damn, those development guys and girls are fucking smart. But at least these people are well paid.
  • It’s not important to do what I love. It’s more important to do things I don’t hate.
  • The closer I get to the product, the closer I get to the work that drives the revenue, the more valuable I feel, no matter how skilled my work is. This is true even for the most up-to-date companies.
  • Even when I’ve been working on Windows, Linux is important. Why is that? Because I ended up working on Linux. The weekends I screwed up installing Arch were my happy times.
  • I’ve learned to be on the alert for ambiguous buzzwords like “big data.” What is “big” data? I’ve worked on streams of 10,000 rows per 10 minutes in Spark and Kafka, and a billion rows per hour in Python and MySQL. These tags can go to hell.
  • Not all the good jobs are in Silicon Valley. But a lot of them are.

Finally, if you really want to hurt me, don’t step on my post, I don’t care about this. Just ignore the post. Nothing makes me more upset than when I write a long post and then no one responds. So if you hate this post, ignore it.

Oh, shit, I found the beer: let’s get on with this.

About programming languages.

  • I used to hate a programming language (C#) until I started using it. I still hate it, but I find it useful.
  • Then I started hating a programming language (C#), ditched it and went back to it. Wow, that programming language has really improved.
  • The great thing about functional languages is that the functions are superb, and every other programmer knows it.
  • No matter how great or superior a language is, it is useless if people do not use it.
  • Learning a language is not difficult. The learning ecosystem is the problem.

About the colleagues,

  • Collaboration is great for programming, it just takes a lot of time that companies don’t usually want to spend.
  • Working with smart engineers has made me a better coder. Working with smart, non-technical colleagues has made me a better engineer.
  • Don’t work outside of your nine-to-five hours. Unless you want to do it because you have an exciting project and you’re in a state of excitement. That’s a great thing.
  • It’s great that 99% of the team’s happy hour and social time is spent relaxing and getting to know colleagues. Occasionally, that 1% of the time is about a critical project and critical code, and you’re glad you brought up work socially, because otherwise there would have been trouble. I’m not saying that I should play with other teams outside of work based on this. I was just trying to connect. But it’s a really nice perk.

About Working from home

  • If the company is half remote and half field, it is important to determine whether remote people are treated as second-class citizens. If big decisions are made at the water cooler, it’s better to try to change the culture (hard) or move to another company that treats remote employees like first-class citizens.
  • The second worst major drawback to working from home is the lack of a whiteboard.
  • The number one downside of working from home is that it’s hard to learn from colleagues. Unless I (a) have the confidence and confidence to ask questions, and (b) the company has a culture that equates remote employees with field employees, I think it’s best to work in the field for the first five years of my career.

About the technology

  • Everyone knows that technology is changing. In the last 10 years, the tech world has changed dramatically. But the fundamentals haven’t changed, especially as they apply to my field.
  • Hacker News and R/Programming are only good for getting general ideas and keeping up to date. Comments are almost worthless.
  • There are plenty of amateurs with strong opinions about technology, including many who write in respectable journals and blogs. I’ve found that it’s important to keep up with the rumors and be creative at the same time.
  • I work for a cutting-edge startup, and we don’t use the latest XYZ technology from ABC Cutting-edge Technologies. As it turns out, they usually show only a small part of their engineering department, and most of them are using the same technology as us.
  • Having said that, it’s important to read the signs. If you want to work with modern technology, and your company still does most of its development with jQuery, it might be time to reevaluate your career.

About Data Engineering

  • Damn it, I’m a data engineer, so I’m just going to write you some more specific, targeted advice/experience
  • SQL is king. For databases like MySQL, Postgres, Oracle, AND SQL Server, SQLite is still the best. Even if you deal with new technology, most of it will eventually transfer.
  • Most companies don’t stream. It’s hard. It’s complicated. If you’ve been working for 10 years and still don’t know how to handle 10,000 records per second, don’t worry, there’s plenty of work out there for you.
  • Airflow is a piece of shit. That’s right. Airflow is the most widely-used of the other offerings out there.
  • Machine learning projects are very easy to fail. They are complex and difficult to implement. Don’t believe me? How easy is it to write a fucking unit test for a machine learning model? Got it.

Our territory is new. There are no good books about data engineering. Just do it. You can’t learn it through boot camps and other garbage. That may change in 10 years, as we all figure out what the fuck we’re doing.

About life

  • People will die. Do you want your code to be your legacy? If so, spend a lot of time on it, and then die, because that’s your fucking legacy! But, if you’re like me, your legacy is surrounded by family, friends, and people in your life, not the code you write. Don’t worry too much about the code.
  • Good employees write bad code. Smart employees can write bad code. Good programmers and good engineers write bad code. Don’t let code quality become a measure of your self-worth.
  • I went into technology and coding because technology is my passion. Now my hobby and my job are the same, and it ruined my hobby. So now if I want to enjoy technology, I need to give up my hobby. Or I need to accept that technology is no longer my hobby and find new ones.
  • Programming and computer science has been going on for what, 80 years? Compared to any other engineering discipline. Yes, we generally don’t know what we’re doing.
  • I’m definitely making a lot of money. Be grateful and be grateful. Also, be frugal.

Other trivial

  • Over the years, I have built many large platforms and databases that are used by multiple teams and people. For some reason, though, I’m most proud of the little scripts I wrote that I used myself.
  • What I’m most proud of in my career is helping other people do their jobs better. It’s probably because I was meant to be a hiring manager, so it’s probably not going to help you.
  • Once when I was looking for a job, I created and updated my Linkedin. I got a shit response, and I shut down the account. Now I use Linkedin to find other candidates to join my company. In short, Linkedin is full of noise. Now that part of my job is to contribute to the noise, I find it useful.
  • Once, I found a girl in college who liked me. Because I’m not very confident, and I didn’t really believe it, but then she asked me out. Even though she was really cool, I told her I wasn’t interested. It was one of the proudest moments of my life because I was mature enough at 19 to say no in a mature way.
  • R /cscareerquestions are such a cesspall of ego and misinformation that I don’t know what to face. It’s like, fuck me, I’m trying to grab the attention of all these people and try to explain to them how the world really is, but they won’t believe me.

About how I feel in general right now

  • I was drunk, and I don’t usually drink, so I would assume that everything I said was likely to be lame or bad.
  • I strongly believe that people should save and invest money. If you make a six-figure salary, try to maximize your 401K.
  • I’ve become the person I’ve always hated: working in technology in my career, but avoiding it in real life. Maybe that comes with getting older.
  • R /ExperiencedDevs is a pretty cool community. Thank you, administrators. You get less praise than you deserve. Seriously, thank you.
  • I probably owe my career, my salary, my life to Reddit. Reddit is being sprayed to death, but the community here has lifted me out of poverty (working at gas stations, earning minimum wage), learned Linux, SQL, Python, C#, Python and others, and made me where I am today.
  • It’s nice to have kids. I didn’t choose to have kids. Why is that? Because I love children, and I’m scared of what kind of father I’m going to be. Oh, shit. Isn’t that too personal to post here?
  • Once, someone asked me who I admired and I said _Conan O ‘Brien _ and they laughed at me. But I’m serious, because during his last appearance on the Tonight Show, he told his viewers to be kind and to work hard. It happened at a difficult time in my life, and when I looked at him and said that, I said, you know what, I’m going to do that, too. Because what do I have to lose? And you know what? I met some great people because I treated them well, and I learned a lot from them over 10 years. I’ve grown a lot by working hard and not being afraid to try new things. My life is infinitely, infinitely better because of those words. So, yes, it might seem silly, even ridiculous, to say that I owe a certain amount of success in my life to a late night show. But you know what, fuck you, this is my life, and I’m proud to say that any success I’ve had has been because of one damn comedy master on late night TV.

I’m drunk, so please ignore everything I say. By the way, apologies for my complaint.