Software is a career requiring a much higher level of personal commitment than many other careers, while often not necessarily being better compensated.
Isn't the level of personal commitment subjective though? What would your solution be?
I think it's hard for programming because there's such a diverse array of programmers (university educated based on data structures / algorithms vs self-taught that might not know those things). My recent interviews with Amazon tested my core CS knowledge but nothing like frameworks or anything. I suspect those things would matter more at startups / web shops (where I used to work).
Except it really doesn't. Most of us chose to put in the personal commitment because we love it and then convince ourselves it's because we have to.
I know several people who code 9-5 Monday to Friday on whatever their boss tells them to code on and that is it. Sure non of them will ever be offered a top job at Google, Facebook or awesome SV startup of the week, and sure most of what they do sounds frightfully dull, but they still have a successful if unassuming career in software.