It's certainly not a one-size-fits-all kind of model, and there are indeed a lot of cases where being really good at one thing makes the difference.
What I'm suggesting is not that you should simultaneously learn to program, do accounting, lay bricks and repair shoes - but rather let's say that if you are a programmer, you should not only be good at backend programming, but also know a decent bit about frontend programming, server ops and team communications, and not be terrible at UI design, spreadsheets, and customer communications.
And there's nothing wrong with being a specialist - but I find that generally good teams need at least someone that can bridge across areas, even if that's not you.
Also, it's often easy or natural enough to not be terrible at something that you may not realize how bad things could be.
What I'm suggesting is not that you should simultaneously learn to program, do accounting, lay bricks and repair shoes - but rather let's say that if you are a programmer, you should not only be good at backend programming, but also know a decent bit about frontend programming, server ops and team communications, and not be terrible at UI design, spreadsheets, and customer communications.
And there's nothing wrong with being a specialist - but I find that generally good teams need at least someone that can bridge across areas, even if that's not you.
Also, it's often easy or natural enough to not be terrible at something that you may not realize how bad things could be.