I look at this in the same way that I used to look at creating Diablo 2 characters when I was a kid.
You're building a skill tree. The first thing you need to take into consideration is whether you're playing with other people or solo.
If you're playing solo, you need to be more of a generalist. You need to pick just the right skills so that you're able to handle an scenario that the game will throw at you. You need to be able to deal at least two types of damages, for when you're facing monsters that are immune to some types of damage. You also need decent defence. And preferably a way of travelling over obstacles.
When you're playing with other players, you can go for only one type of damage, and pick other skills that amplifies or synergises with this skill. You actually don't have to focus on damage much, if you can tank and take damage well to protect other fragile players who do lots of damage. Or if you focus on doing lots of damage but you're a bit of a glass canon, you just need to make sure that you're playing with another player than can pull the attention of dangerous monsters.
In both scenarios you need to pay attention to how you build your skill tree. Just the considerations are a bit different.
I tend to pick skills and technologies to learn that are on different parts of the stack, because I often work alone or in small teams. I need to be able to create a whole app with front-end and back-end and manage the infrastructure. So I only pick one front-end framework, one back-end framework, and one or two infrastructure tools.
It's a tall order, but you can do it if you don't spend time learning things you don't need to.
On the other hand, people who work in large teams are usually better off focusing on their niches. So if you're a front-end dev, you can learn 2 or 3 different front-end frameworks, and it will make you a more effective front-end developer in both. It's just that you get diminishing returns with each new front-end technology that you learn. But this is work it if you're in a position where the other parts of the stack are handled by people who focus all their efforts to be exceptionally competent there.
I consider myself a generalist. At least, on my side-projects, I'm a generalist because I have to build the entire "system" all by myself :)
At my day job, however, I'm specialized more into backend stuff: architecture, databases, etc., it pays decently well, but it's become so familiar (and mostly straightforward with the types of problems I work on) that it's starting to get boring.
My 'other' skills which I've cultivated on my own time do occasionally come in handy at the day job, however. I do try to hide the fact that I know how to do things like system administration, ansible, etc. ;)
You're building a skill tree. The first thing you need to take into consideration is whether you're playing with other people or solo.
If you're playing solo, you need to be more of a generalist. You need to pick just the right skills so that you're able to handle an scenario that the game will throw at you. You need to be able to deal at least two types of damages, for when you're facing monsters that are immune to some types of damage. You also need decent defence. And preferably a way of travelling over obstacles.
When you're playing with other players, you can go for only one type of damage, and pick other skills that amplifies or synergises with this skill. You actually don't have to focus on damage much, if you can tank and take damage well to protect other fragile players who do lots of damage. Or if you focus on doing lots of damage but you're a bit of a glass canon, you just need to make sure that you're playing with another player than can pull the attention of dangerous monsters.
In both scenarios you need to pay attention to how you build your skill tree. Just the considerations are a bit different.
I tend to pick skills and technologies to learn that are on different parts of the stack, because I often work alone or in small teams. I need to be able to create a whole app with front-end and back-end and manage the infrastructure. So I only pick one front-end framework, one back-end framework, and one or two infrastructure tools.
It's a tall order, but you can do it if you don't spend time learning things you don't need to.
On the other hand, people who work in large teams are usually better off focusing on their niches. So if you're a front-end dev, you can learn 2 or 3 different front-end frameworks, and it will make you a more effective front-end developer in both. It's just that you get diminishing returns with each new front-end technology that you learn. But this is work it if you're in a position where the other parts of the stack are handled by people who focus all their efforts to be exceptionally competent there.