| It's also become much less accessible to your average every-day person. I remember in 2001 my brother's community college in rural America taught HTML and Flash development. Not only could you learn to make websites quickly, but you were learning technology that was exactly what you would be using when working at a company. You could argue the technology is better these days, but it's certainly not more clear to newcomers. I recently described to my younger sister that she should learn React through FreeCodeCamp in order to make websites - but suddenly you are dropped into a world talking about declarative programming paradigms, unidirectional data flows, and lots of other foreign concepts described as magic (the virtual DOM, Babel, etc.) If my experience had been this growing up I would have never gained interest in learning the specifics / details of what was going on when writing HTML/CSS/JS code. I would've chalked it up to "there are layers upon layers of magical things I don't understand, I guess I only need to interact with them and slap them together." I also think the incentives have changed - it's less about making something cool and sharing it with your internet friends these days because there is money to be made - it's about buffing your GitHub profile to get a job, creating a startup that extracts $$$ from people, etc. I feel it is very similar to early days YouTube vs. YouTube these days, and that saddens me. |
That's fine though.
If someone learns C++ today without knowing any ASM very few people would tell them they're "doing it wrong". If someone learns Unreal Blueprints without learning C++ senior game developers still see them as productive game developers. If someone writes a great GLSL shader on shadertoy without knowing how to use WebGL that's OK too. You don't have to understand all the layers in order to use them and make good stuff.
The web is no different. I see no reason why people can't just concentrate on learning the top level abstraction to make things until they encounter a problem that they need to know more about the lower levels to solve. They might never have that problem.
All of this "You have to learn the underlying tech in order to use the framework on top of it" just sounds like gatekeeping to me.