DEV Community


Discussion on: What is more valuable in software, specialization or generalization?

gsto profile image
Glenn Stovall

Talk like a specialist, walk like a generalist.

Think about it like college: You take a variety of courses, but you still pick and focus on a major. I think of the T-Shirt shaped model of skills: You find a primary focus, build expertise there, but you still have other skills that can apply elsewhere.

In addition to specialization, it's important to also think about positioning. By that I mean, how do you answer the question: "What do you do?" You could say you are a full-stack developer, or that you develop in React.js. You could also say you specialize in writing DevOps work in C. All are true, but all affect how people think about you, and the opportunities you'll be presented.

Being viewed as a generalist can be harmful to your career long term. If you are intermediate at everything, it is difficult to move beyond intermediate positions. You're better off focusing on something and working towards it, even if you shift focuses later. Take it from someone who used to be an "AngularJS expert." 🙂

Just because you say you do one of these doesn't mean you can't or won't do the others. For example, most of the work I do is in React/Redux these days, however, I've also written my share of Ruby on Rails applications, done BI analysis, and studied related fields like usability and copywriting. All come into play when it comes to building interfaces that help people solve problems, and convincing them to use them.

Specialization is not a constraint on what you learn, it is adding focus to your craft.