This is a question I've seen asked on Reddit and also by colleagues of mine. I think, in part, it may seem enticing to be the person who knows something about everything so your options are open and abundant.
Should you specialize?
If you can possibly do it, do it. There's your TLDR; :)
Most people that I know of, personally, or in the developer communities I'm a part of, who are successful and never have a problem finding work are people who have specialized.
It seems counter-intuitive that limiting your scope of knowledge makes you more valuable and opens more doors but it really does work. Being an expert in something specific does a number of miraculous things for you.
In short, you're more successful, you get more experience under your belt, which leads to better references, which leads to better reputation, so on and so on.
Not every situation is suited for someone specialized. I'll talk about that briefly later on.
Let's say you agree and you want to specialize in something. What does that look like?
Well, it could be anything. People specialize in Wordpress, Drupal, Cyber Security (which has its own specialized fields too) and more.
The pickings are ripe if you know how to put yourself there! Take a beat from other firms or people who are specialists and see if you can learn from them.
The point is to limit your focus to a few areas or even just one area and know that (or those) really really well. Start with that.
Yeah, it can be. You want to be in demand. You're sinking a lot of time into something that you end up specializing in only to find out there's no demand for it. That can happen.
It does happen.
It will happen.
Failure is progression. It means you've eliminated something from your path to success as not the path to success.
If you happen to see an area, up front, that seems ripe and you can specialize in it, you might have yourself a shortcut. But that opportunity may not be clear and you have to be willing to take a risk in focusing.
Don't worry, though. If you become successful at specializing but find out there's no demand for it, a lot of the principles you've learned transfer over when you have to change course, you only get better and faster.
Mostly when you're in a leadership role at an organization. A tech lead, a technical architect, a CTO, etc... If you're one of these, you're probably not a specialist.
The idea is that you can pick up a document or read about a certain type of technology and see if it fits the needs of the project or the company at a general, high level, viewpoint.
So specializing doesn't fit every job.
I do feel that specializing is a really good path to success as a developer. In future posts/videos, I'll go over how to specialize in specific fields and what you might need to know or learn (or at least how to find the resources), because that can be tough too.
Thanks for reading this or watching my video. :)