Having been in the software industry for 45 years, this "old man" shared his career insights when he retired

愿你我相遇,皆有所获! 欢迎关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!

Recently, a post on HackNews has aroused heated discussion and resonance among many netizens. The focus of the discussion was that Joel Goldberg, a software engineer at BTI360, was about to retire in December last year, sharing his 45-year software writing career with his team members.

Specifically, he shared his experience on knowledge learning, coding, teamwork guidelines, career planning and many other aspects, which I believe will bring some inspiration to the majority of software industry practitioners.

The following is what Joel Goldberg shared:

Looking back on the past 40 years in the software industry, I was shocked by the magnitude of the changes. I still used punch cards at the beginning of my career, but now I retired in the cloud computing era. Although I have undergone various changes, many of the principles that helped me through my entire career have not changed. They still have meaning. As I am about to retire, I want to share with you some insights I have learned as a software engineer.

Be wary of the "curse" of knowledge

When you know certain things, you can hardly imagine yourself not knowing what these things will look like. This is the "curse" of knowledge, and it is also the source of endless misunderstandings and inefficiencies. Smart people who can adapt to complex situations are more likely to fall into this "curse."

If you do not guard against the "curse" of knowledge, you may take the wrong position in all forms of communication, including writing code. The more professional the work you are doing, the more likely you are to communicate in ways that laymen cannot understand. Therefore, we must fight against the "curse" of knowledge. Try to understand your audience and try to imagine what it's like to learn what you are communicating for the first time.

Six basic principles

Technology is always changing, but some basic methods of software development have never changed. Here are the six basic principles that I think will remain unchanged for a long time to come:

  1. Teamwork: A good team builds good software, but don’t take teamwork for granted, everyone should participate in it;
  2. Trust: Trust between teams can promote development and strive to become a person worthy of the trust of oneself and others;
  3. Communication: Communicate sincerely and actively to avoid falling into the "curse" of knowledge;
  4. Seek consensus: Take time to lead the entire team on the same "track" and discuss different opinions to find the best solution;
  5. Automated testing: The well-tested code enables the team to quickly move forward with confidence;
  6. Clean, easy-to-understand, and navigable code and design: Treat the successor engineer who takes over your code as your own customer, and make sure that they will not encounter any trouble when reading, maintaining, and updating the code.

Simple rule

Fighting complex situations is something that never ends, so the solution should be as simple as possible. We can assume "badly" that the successor who maintains our code is not as smart as you.

When there is nothing to delete, not when there is nothing to add, the designer realizes that he has reached perfection. -Antoine de Saint-Exupery

Seeking understanding is the first
one of the seven habits of Stephen Covey, the famous American management master, is to seek understanding first, and then be understood. This criterion has helped me become a good listener and work partner more than any other advice. If you want to influence others and work effectively with them, you need to understand them first. Actively listen to and understand their feelings, thoughts, and opinions before trying to make others understand what you think.

Be careful to get stuck

In the industry, there will always be next-generation efficient products that may change the way software is built, such as computer-aided software engineering (CASE) tools, enterprise resource planning products such as COTS, Peoplesoft, and SAP, and even Ruby. These products all claim that if people accept their overall development concept, it will greatly reduce costs and time. However, the facts are not always as smooth as people expect, the upfront costs may be very large, and you are still subject to many restrictions. "Get stuck" used to appear at the supplier level, but now it also appears at the framework level. Regardless of the level, the high sunk costs mean that there is a lot of pressure to change, and new things are not always better.


Have the courage to admit and change when you are not suitable for a role. At certain stages in your career, you may find that you are not suitable for certain roles. This incompatibility is not a character defect, but a problem you should not ignore. There is more than one way to solve this dilemma: you can continue to improve yourself or change your role. The key is to be self-aware, to be aware of your own situation and to free yourself from this role that is not conducive to development. Unhappiness at work is no good to anyone.

When I worked at General Motors, the corporate culture was like this: If you don't want to manage more people or be responsible for larger and more complex projects, then you are a loser. For most people, this is a miserable career development path.

At the time of EDS, the corporate culture was not like this, and management positions were mobile. It is not a shame to step down from a position with greater authority, such as a strategic planner, to a position with less authority such as project management or project developer. I took advantage of this kind of personnel mobility and returned from the role at the top of the technical golden prefix to the ordinary project developer. I never regret this.

Finally: test the welfare

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your testing technology.

In the interview season of the Golden 9th and the Silver 10th, the job-hopping season, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.


For software testing friends, it should be the most comprehensive and complete interview preparation warehouse. In order to better organize each module, I also refer to many high-quality blog posts and projects on the Internet, and strive not to miss every knowledge point. Friends relied on these contents to review and got offers from big factories such as BATJ. This warehouse has also helped many learners of software testing, and I hope it can help you too!

May you and I meet and you will find something! Welcome to follow the WeChat public account: [Sad Spicy Article] Receive a 216-page software test engineer interview book for free. And the corresponding video learning tutorials are free to share!

Guess you like

Origin blog.csdn.net/weixin_50829653/article/details/112686133