The issue is that web development encapsulates too many different roles, each of them is a job in itself. The role has grown to encompass too many specialties:
-You need to be an expert* JavaScript developer with strong understanding of computer science at the same level as say a Java engineer.
-You need to be an expert on cross browser, cross-device and cross-OS compatibility and performance of Javascript, HMTL, CSS.
-You need to be an expert in animations, transitions, SVG, canvas.
-You need to be an expert of analytics, statistics and presenting data.
-You need to be an expert of responsive design, accounting for countless myriad possible platforms, compatibilities, viewports, constantly evolving standards and best practices.
-You need to be an expert of accessibility, semantic html.
-You need to be an expert in working with various types of databases, or API and local storage, caching etc
-You need to be an expert at test automation, writing unit and integration tests with increasingly high stakes.
-You also need to spend time and have strong understanding of ancillary issues, such as package management, devops, CI etc etc
-You need to do all this and your work is pretty much almost entirely customer facing (or stakeholder). People who don't understand the constraints, or dont appreciate the difficulties of what a problem may require.
And this is without talking about things like Typescript, React (and the millions of other dependencies, libraries, hot new things) you have to deal with
Just look at the URL shared on this article and see how many subject mentioned were totally not part of web dev say just 10 years ago.
5-10 years ago my job was:
- build websites with a bit of javascript DOM, ajax, or jquery UI interaction
Now my job is:
- same as above but with the added responsive aspects
- building single page applications
- building browser extensions
- building command line tools
- building react native mobile apps
- building electron apps for desktop
- writing tests
- building tooling and managing dependencies
- building internal libraries, style guides and associated documentations
*this is the expecations, i know the reality is not really the same.