A generalist software engineer can learn ${buzzword}

📰 Hacker News · lambdabit

A generalist software engineer can quickly learn new frameworks or languages, but proficiency in programming fundamentals is what truly matters

intermediate Published 9 Jun 2018
Action Steps
  1. Learn the fundamentals of programming, such as object-oriented design and algorithms
  2. Practice systems design and architectural patterns to improve your skills
  3. Focus on creating reusable modules that are easy to understand, maintain, test, and extend
  4. Don't get caught up in trendy frameworks or languages, but instead focus on building a strong foundation in programming principles
  5. Apply your generalist skills to a variety of projects and technologies to demonstrate your versatility
Who Needs to Know This

Software engineers and recruiters can benefit from understanding the value of generalist skills, as it can lead to more effective hiring and team composition

Key Insight

💡 Proficiency in programming fundamentals is more important than expertise in a specific framework or language

Share This
💡 Generalist software engineers can learn new frameworks or languages quickly, but it's the fundamentals that matter #softwareengineering #programming

Full Article

There are a lot of frustrating things when it comes to the hiring process. But by far the most frustrating thing is the obsession by recruiters to categorize engineers by a trendy framework, language or buzzword. React engineer, Java engineer, data engineer, Ruby ninja, and so forth. The problem with this sort of categorization is that it's trivial to learn another framework or language for a generalist. It takes a week or two to get up to speed in a ${buzzword} while it takes much longer to become proficient in programming fundamentals. Things like object oriented design, algorithms, systems design, architectural patterns, debugging, etc. In fact, it is likely that a strong generalist can outperform say a "Ruby ninja." A strong generalist can create reusuable modules that are easy to understand, maintain, test, and extend. Meanwhile, the ability to use a slightly shorter syntax in Ruby provides minimal benefits. I suspect the reason why this categorization exists is bec
Read full article → ← Back to Reads