3
头图

When you become an industry veteran, are you willing to provide some experience to the younger generation? Recently, a senior engineer with 10 years of experience wrote more than three thousand words after drunk, involving technology, remote work, career development, work and life, etc. As the so-called "speak truth after drinking", let's take a look at what he said.

  • The best way for me to advance my career is to change companies.
  • The technology stack is not important, because there are about 15 basic software engineering patterns that can be applied in my field. I work in data, which is different from webdev or embedded development, but all fields have about 10-20 core principles. The technology stack is just trying to make things easier, so don't worry about it.
  • People recommend changing jobs for a reason. If I am not satisfied with a job, it may be time to move on.
  • I have made some lifelong good friends in the company I have stayed in before, but I have no such requirements for the company. I have had a very happy experience working in a place where I did not establish friendship with my colleagues, and I have also had an unhappy experience in a company where I have made good friends.
  • I learned to be honest with my manager. Not completely honest, but try to be true at work. What worse can happen? Fired? It doesn't matter, I can find a new job within two weeks.
  • If I am awakened more than once every quarter at 2 AM, then it means a big problem. I will either fix it or quit.
  • The quality of a good manager has many things in common with a good engineer.
  • In the beginning, I was obsessed with technology, programming and computer science. And now, I have had enough.
  • Good code is code that can be understood by junior engineers; excellent code can be understood by even CS freshmen; and the best code is no code at all.
  • The most underestimated skill of an engineer is how to write documentation. Someone ask me how to write a good document, to be honest, if there is a good recommendation, I will pay the course fee (even if it costs a lot of money, as long as I can write the document).
  • Similar to the previous one, writing a revised proposal is a great skill.
  • Almost all battles (vim vs emacs, mac vs linux, etc.) are irrelevant, except for...
  • The older I get, the more I appreciate dynamic language.
  • If I find myself the smartest person in the room, then it's time to leave.
  • I don't know why the salary of Web full-stack developers is so low, they should get a basic annual salary of 500,000. Full-stack developers must understand the front-end and back-end, how different browsers work, the differences between networks and databases, caching, web and mobile, and even another framework the company wants to use... So why are web developers' salaries so low?
  • We should hire more interns, they are great. Those energetic little guys have a lot of fantastic ideas, and it would be better if they could question or criticize. I like interns.
  • Don't meet your idol. I spent $5,000 to attend a class of one of my idols. He was very smart and dazzling, but in the end I realized that he was making up stories, and he was just like the rest of us.
  • The technology stack is very important. I just said that the technology stack is not important, but in fact, when you hear Python dev vs C++ dev, you must think differently. That's because certain tools are really good at performing certain tasks. If you are not sure what you want to do, write Java. This programming language is good at almost everything.
  • The greatest programming language ever is lisp, I should learn lisp.
  • For starters, the most profitable programming language is SQL. Even if you only understand SQL and don't understand anything else, you can make money. Compensation specialist? The salary is about 50,000 yuan. A salary specialist who understands SQL? 90 thousand! Ordinary people with organizational skills in large companies? US$40,000. A person who has organizational skills and knows SQL? Please call yourself a PM, with a salary of $150,000.
  • Tests are important but TDD is a damn cult.
  • Testing is important, but TDD (Test Driven Development) is a damn cult.
  • Easy government work is not what people say, at least for engineers early to mid-career. Of course, the $120,000 salary and pension sounds good, but you will betray your soul to research confidential know-how. I respect government workers very much, but to be honest, the average age of these local engineers is over 50 years old for a reason. This recommendation does not apply to government contractors.
  • Third-party recruiters are like leeches. But if you meet a good third party, make a good relationship, and they can help your career develop.
  • Options are either worthless or they can make you a millionaire. Unless there are more than 100 engineers, the options may be worthless.
  • Working from home is best, but the lack of a whiteboard is terrible.
  • I have never worked for several big companies like FAANG, so I have no way of knowing what I missed. But I have hired engineers from FAANG, and they don't know what they are doing.
  • My self-worth has nothing to do with total compensation, and capital is not a good way to determine self-worth.
  • The manager has less power than you think. If you want to know why the manager so and so doesn't fire someone, it's because they can't.
  • The title is mostly unimportant. What you have done and what you have accomplished is what people care about.
  • Be kind to everyone. Not because they can help your career, but because kindness itself pays off.
  • If I haven't learned anything from junior engineers or interns in the past month, it's because I didn't notice it.
  • It is worth paying for courses, books, and conferences. I have attended several conferences, participated in several paid courses, and read many books. It's worth it, I can better pretend what I'm doing.
  • The carpal tunnel and back problems are not a joke. Now spend money to buy equipment.
  • Do you know what is the biggest advantage of being a software engineer? You can meet and chat with people who think like you. It’s not necessarily that they have the same interest in sports and TV shows, but they look at the problem the same way you do. That's cool.
  • There are not enough women in the technology field. What a bad industry, this needs to change. I have been trying to give more encouragement and help to the female engineers in our organization, but I don't know what else I can do.
  • The same goes for black engineers.
  • I never really hated a language or technology until I became familiar with it. In addition, even if I hate a technology, as long as I think it is good, I will still recommend it to customers.
  • Git is terrible, but I have no choice but to use it, and GUI git tools.
  • Since I am engaged in data work, I will give a data-related lesson-damn pandas.
  • My job is easier because there are semi-technical analysts in the team. Semi-technical, meaning they know programming but not software engineering. This is a blessing, because if something doesn't make sense to them, it means it may be poorly designed. I like the analysts in the team, they are more helpful to me than the most outstanding engineers.
  • Dark mode is very good, unless you have to use light mode (such as web pages or apps that do not support dark mode).
  • I knew enough about security, and then I found out that I didn't know anything about security.
  • Being a good engineer means knowing best practices, and being a senior engineer means knowing when to break best practices.
  • If people are trying to blame a bug or interruption, then it's time to move on.
  • Many advancing companies, especially start-up companies, are talking about bringing "true selves." But what if the real self just wants to watch porn? A healthy approach is to establish a barrier between work and personal life.
  • The best proof of great leadership is that when my leader is frustrated because of my mistakes, I will go through fire and water for her.
  • Likewise, the best leaders I have had the privilege of working with do their best to advocate for my views and explain to me other views that conflict with my views. I am trying to be someone like them.
  • Go fucking sideline. If you like to do it, great! Even if I have time to work part-time, I will be busy writing drunken posts on the reddit website.
  • To some extent, algorithms and data structures are important. I haven't seen pharmacists interviewing for organic chemistry. There is a problem with the interview process in our industry.
  • It’s not important to do what you like, but it’s more important to do what you don’t hate.
  • The closer I am to the product, the closer I am to improving my earnings. At this time, no matter how technically my work is, I feel that I am more valued. This is true even in the most growing companies.
  • Linux is very important.
  • I learned to be wary of ambiguous buzzwords like "big data." What is "big" data? I have processed data streams of 10,000 rows per 10 minutes in Spark and Kafka, and batches of 1 billion rows per hour in Python and MySQL. Fuck those tags.
  • Not all good jobs are in Silicon Valley, but many are.

About programming languages

  • I used to hate a programming language (C#) until I started using it. Now I still hate it, but think it is still useful.
  • I started to hate a programming language (C#), then left and came back. Wow, that programming language has really improved.
  • The greatest thing about functional languages is that functions are the most important, and all programmers know this.
    No matter how great or superior a language is, people can't help it without using it.
  • Learning a language is not difficult, but learning the ecosystem is difficult.

About colleagues

  • Pair programming is great, but it takes a lot of time, and companies usually don't want to spend that time.
    Working with smart engineers makes me a better programmer, and working with smart non-technical colleagues makes me a better engineer.
  • Don't work outside of the nine-to-five working hours. Unless you have a great project and you are at your best. That would be great.

About working from home

  • If half of the company’s employees are remote and half are on duty, the company needs to determine whether remote personnel are considered second-class citizens. If major decisions are made "by the drinking fountain," then it is best to work hard to change the company's culture, or to switch to another company that treats remote employees as first-class citizens.
  • The second major disadvantage of working from home is that there is no whiteboard.
  • The main disadvantage of working from home is that it is difficult to learn from colleagues. Unless I ask questions confidently and decisively, and the company culture recognizes that remote employees are as valuable as on-site employees, I think it's best to work in the first 5 years of my career.

About technology

  • Everyone knows that technology is always changing. In the past 10 years, the technological landscape has undergone tremendous changes. But the fundamentals have not changed much, especially the fundamentals that apply to my field.
    -Hacker news and-/r/programming are only useful for getting general ideas and following up on the latest news, comments are almost worthless.
  • Many hobbyists have strong insights into technology and even publish articles in "decent" magazines and blogs. I need to distinguish their value.

About data engineering

  • I am a data engineer, so I can give more specific and targeted advice/experience.
  • SQL is king. Databases like MySQL, Postgres, Oracle, SQL Server, SQLite are still great. Even if you work with new technologies, most technologies will still migrate.
  • Most companies do not do streaming media, which is difficult and complicated. If you have worked for 10 years and still don’t know how to handle 10k records per second, don’t worry, you can still find a suitable job.
  • Airflow is rubbish.
  • Machine learning projects are prone to failure, they are complex and difficult to implement.
  • Our field is new. There is no good book about data engineering, just "do it".

About life

  • People will die. Do you want your code to become a legacy? If so, then spend a lot of time on it, because that is your legacy! But if you, like me, don’t want code to become a legacy, then don’t care too much.
  • Good people write bad code, smart people write bad code, good programmers and engineers also write bad code. Don't let code quality become a dependent variable of your own value.
  • I like technology and programming because technology is my hobby. Now my hobby is work, and work ruined my hobby. Now if I want to enjoy technology, I need to give up hobbies. Or I need to make sure that technology is no longer my hobby and find a new hobby.

other

  • Over the years, I have built large platforms and libraries for use by multiple teams and people. However, for some reason, the code I am most proud of is the small script I use.
  • When I was looking for a job, I created a Linkedin homepage. But after receiving a mess of replies, I deleted it. Now I use Linkedin to find other candidates to join my company. In a word, Linkedin is a lot of noise. The reason I think it is valuable is that part of my job now is to make noise.
  • I became a person I hate: I work in technology in my career, but avoid technology in real life. Maybe this is because of getting older.
  • /r/ExperiencedDevs is a very cool community.

Reference link: https://old.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/


小魔
735 声望1k 粉丝