A couple of things:
* Employers do not heavily invest in training. They over invest in hiring/firing. If you want to shine at candidate selection time you need to look like that perfect guy who they can fire with minimal risk and replace you with a 22 year old.
* Employees that over prioritize in retaining their current employment, such becoming that irreplaceable center of attention that keeps all the lights on, are high risk. Nobody likes high risk.
* Software developers tend to prioritize all the wrong things. They tend to prioritize things that make their own lives easier at cost of everything else. You can label that immaturity, autism, sociopathic, or whatever. The result is the same. Employers have real product decisions to make and if you aren't on that same line they will consider you as a potential redundancy for elimination, because you consume more resources as an employee than you deliver as a developer.
Personally I'm not even sure if training works from the employers perspective. There are people who are willing to go the extra mile for whatever reason, and there are who are content just getting by, with some people not even that.
Not to complain, its just an observation. There are people you can point at a problem, and they come back with a great solution a couple days later. I've had a story of a coworker who during her internship was mistaken for someone else working on a totally different speciality and they tasked her with doing something, and after the initial bafflement and fuming, she did it and it was so well done, that the boss came to congratulate her, but was puzzled about why she was on the different side of the org chart.