If you look at some job postings for junior web developer positions these days, you will see over ten different technologies required for the position. Node.JS, Docker, Postgres, Redis, React, SCSS, etc… Such requirements for junior developer jobs are unrealistic. So many developers spread themselves thin learning every new and shiny technology without focusing on a set of core tools. I know some developers who dabble in app, web frontend, and web backend development. After years of experience that is something you can maybe do, but developers who have under five years of experience that sort of variety of experience, without mastering a particularly marketable skill is detrimental. In most cases, a company with over ten employees would prefer to hire someone experienced at a single technology such as Android development or iOS development over a jack of all trades who has done a bit of everything but not great at any.
There is some benefit from getting such broad exposure to different technologies, but I think in general that is detrimental to a developers marketability and job prospects. For example, I started off as a full stack developer, I built a website from scratch, frontend, backend, server management, database management, etc… But after getting that exposure, I decided to niche down into backend development. That’s what I enjoyed doing, and I figured if I kept up with the full stack I ultimately would be a worse developer because it is tough to be at the bleeding edge of everything.
Ultimately, I feel the emphasis on learning everything hurts developers, especially junior developers. Focusing on one stack and branching out after you’ve mastered that helps developers become great at what they do before learning an entirely new set of skills. The bottom line is companies will pay more for an expert, become an expert before you move onto new and shiny things.