news.volyx.in

Things I’ve learned in my 20 years as a software engineer (simplethread.com)

1605 points by D_Guidi · 1810 days ago · 722 comments on HN

Article summary

The article shares 20 lessons learned by a software engineer over their 20-year career, covering topics such as the importance of understanding the context of advice, the value of humility, and the need to focus on delivering value. The author emphasizes that software engineering is a complex and nuanced field, and that there is no one-size-fits-all approach to success. The lessons are drawn from the author's experiences working in small and large teams, and are intended to be applicable to a wide range of software engineering contexts. The article concludes by encouraging readers to share their own experiences and lessons learned.

Main themes

  • software engineering lessons
  • 10x programmers
  • blame-free culture
  • teamwork and collaboration
  • humility and recognition of limitations
  • avoiding mistakes vs avoiding blame

What commenters say

  • Some commenters agree that 10x programmers exist, but define them as individuals who can produce high-quality code quickly and efficiently, while others argue that the term is problematic and can be used to describe individuals who produce low-quality code that requires significant maintenance.
  • The importance of avoiding blame and focusing on learning from mistakes is emphasized, with some arguing that a blame-free culture is essential for success.
  • There is disagreement over the value of labels such as '10x programmer', with some arguing that they are unnecessary and can be insulting, while others see them as a way to recognize exceptional talent.
  • Some commenters argue that the ability to reason quickly and architect well is key to being a successful software engineer, while others emphasize the importance of teamwork and collaboration.
  • The idea that people are often more focused on avoiding blame than on avoiding mistakes is seen as a major obstacle to success in software engineering.
  • There is a debate over whether it is more important to have a few highly skilled programmers or a larger team of average programmers, with some arguing that the former is more effective, while others argue that the latter can be more productive and efficient.
  • The importance of humility and recognizing one's own limitations is emphasized, with some arguing that this is essential for success in software engineering.