Image for post

Photo by Laura Smetsers on Unsplash

I came across a tweet the other day asking this question. As expected, among the hundreds of comments it seemed to be a 50/50 split. It’s a hotly debated topic and there are great points to be made on both sides of the fence.

Many claim that you should specialize in a particular language and possibly even an associated framework. In doing so, you can position yourself as the expert and have a successful career. This is mostly true.

Others claim that this locks you into a language that may not stay in demand. Thus you should instead nail down programming concepts, learn to adapt to any language, and demonstrate your marketability by being a “jack of all trades.” This is also mostly true.

Both are important. And actually, both can be pursued.

How? By following one principle.

Developers should generalize concepts and specialize in languages.

This principle can help you contextualize both. Let’s discuss what it means.


Generalization

Being able to work with multiple programming languages and having the ability to adapt quickly to different environments has nothing to do with mastery. It has more to do with having a solid programming foundation, the ability to read documentation well, and understanding the core concepts that are shared across languages.

Most general programming languages share many concepts — variables, objects, arrays, functions, classes, etc. They use brackets, returns, conditionals, key/values, parameters, and imports. Principles, like separation of concerns, abstraction, and MVC, are also shared.

Knowing these core principles allows you to work across many coding languages.

If you need to use an array and understand the concept, all that’s left is looking up how that language implements one.

All developers should generalize concepts. A solid programming foundation allows you to adjust more quickly to the various technologies your employer may throw at you.

#coding #web-development #software-development #programming #specialization

Should Developers Generalize or Specialize?
1.30 GEEK