Largely the job market for ‘coders’ appeared with the web, and the move back towards client/server, if initially the clients are just richer web clients, is tending to make it go away again.
Many of the new, ‘popular’ technologies have been attempts to utilize the skills people do have, by not requiring a developer to maintain state, write a decent event model, etc.. However, an application is not a web site, it’s by definition a state-machine, and oversimplifications in one tier inevitably add to the complexity of the others.
I did my university time in the late ‘80’s. At that time, with no web, no HTML, etc., you wrote applications or, if you weren’t a software engineer, you could maybe write batch scripts in REXX.
From the other side, as a software engineer not a coder, I have to deal with the frustration of being interviewed by people whose questions make no sense, because in the most literal way, they don’t know what they’re doing. By ‘don’t know what they’re doing’ I mean that they don’t understand what happens to the JS they write when it’s interpreted by an engine written in C to assembler and is actually running, or how that differs when it’s pre-compiled to JVM byte code to run in Nashorn .
They know how to write code to ‘sorta kinda’ do what’s required, and in being relatively good at making simple things work, they’ve been promoted to their level of incompetence.