The original link

  • The translation link is here
  • The original Reddit is here

Author: Ruan Yifeng

Date: June 28, 2021

The article content

Reddit, the largest forum in the United States, recently had a hot thread.

One programmer said he was drunk. He had been a software engineer for 10 years and had a lot to say. “I’ll probably regret saying this today.”

He went on and on about it, getting more than 9,700 likes. It’s interesting and worth reading. Here’s an excerpt.

(1) The best way to advance your career is to change companies.

(2) Technology stack is not important. There are about 10-20 core principles in the technology world, and what’s important about these principles is that the technology stack is just a way to implement them. If you’re not familiar with a technology stack, don’t worry too much.

(3) Work and relationships are two different things. There are some companies where I make good friends but I’m not happy. At other companies, I didn’t have any friendships with my colleagues, but I was happy there.

I always tell the manager the truth. Afraid of? He fired me? I’ll have a new job in two weeks.

(5) If a company has more than 100 engineers, its options may become valuable over the next decade. Options are generally worthless for companies with few engineers.

(6) Good code is code that junior engineers understand. Great code can be understood by first-year CS majors.

(7) The most underrated skill as an engineer is keeping track. Seriously, if someone could teach me how to document, I’d pay, maybe $1,000.

(8) Don’t engage in online spats that are almost irrelevant.

(9) If I find myself the best engineer in the company, it’s time to leave.

(10) We should hire more interns. They’re great. Those energetic little guys messing around with their ideas. If they openly question or criticize something, so much the better. I love interns.

(11) Technology stack is important. If you use Python or C++, it’s tempting to do something very different. Because some tools are really good at some jobs.

(12) If you’re not sure what you want to do, use Java. It’s a terrible programming language, but it can do almost anything.

(13) The most profitable programming language for beginners is SQL, to the exclusion of all other languages. You can make money just knowing SQL and not doing anything else. Annual salary for hr professionals? Maybe $50,000. A HUMAN resources expert who knows SQL? Ninety thousand dollars.

(14) Testing is important, but TDD (Test-driven development) has almost become a cult.

(15) Government units are easy, but not all they are cracked up to be. For early-to-mid-career engineers, $120,000 a year plus benefits plus a pension may sound good, but you’ll be locked into esoteric specialized tools that will be useless once you leave government. I have great respect for government workers, but seriously, there’s a reason why the median age of engineers in these places is over 50.

Pour another glass of wine.

(17) Most titles are irrelevant; any company can have a chief engineer.

(18) Wrist and back health problems are no joke, and good equipment is worth the money.

(19) What is the best thing about being a software engineer? You get to meet a lot of people who think the same way, who talk to each other, who don’t necessarily have the same interests, but who think the same way you do, and that’s cool.

Some technology is so popular that I have to use it. In my heart, I hate the technology, but I recommend it to a client, like I hate Jenkins, but I recommend it to a new client, I don’t think I did a wrong thing.

(21) Being a good engineer means knowing best practices, and being a senior engineer means knowing when to break best practices.

(22) When an accident happens, if those around you try to blame external errors or disruptions to underlying services, it’s time to leave the company and move on.

(23) The best leaders I have ever had agreed with one part of me and patiently explained why they disagreed with the other. I’m trying to be like them.

(24) Algorithms and data structures are important, but they shouldn’t be overstated, especially during interviews. I’ve never seen a pharmacist interview where they had to test the details of organic chemistry. The interview process in this industry can be terrible.

It’s not so important to do what you love. It’s more important not to make me do what I hate.

The closer you get to the product, the closer you get to driving revenue growth. Regardless of the technical nature of the work, the closer it is to the product, the more valuable I feel.

(27) Even if I work with Windows, Linux is important. Why is that? Because the server is Linux, you end up working on Linux.

(28) When people die, do you want your code to be your legacy? If so, spend a lot of time on code, because that’s your legacy. But if, like me, you value the time you spend with family, friends and other people in your life more than the code you write, let it go.

(29) I make decent money and am grateful for that, but I still need to save.

Oops, I’m out of wine.

(after)