Just to add some thoughts on the STEM degrees:
Although I got off to a rocky start in college, I ended up finishing my degree in anthropology because it was so fascinating to me. I think this is the only reason I made it through college. But it wasn't a rigorous program by any means, and I've always wondered what I could have done if I had pushed myself harder. Strangely enough, I ended up in software development.
I'm not sure what causes the STEM bias. I think its association with engineering and, by extension, higher salaries, has given it the aura of leading to a solid middle class life, just the way earning a bachelor's degree was also once given this aura before so many people had one and it become worth much less commercially. On the other hand, I also feel like it's a national security strategy, since more people studying STEM in theory leads to more efficient bombs, or better industry, and I think most countries now understand that a good economy is some of the best national security you can have. I've always thought it was awful that countries try to compare how well their students are doing with those in other countries. When that happens, it's really not about the individual, it's about that country hoping to look better than the others. But I'm generalizing and being a bit cynical, too.
I've never known somebody with a biology degree who ended up working directly in the sciences, and I've had friends who earned engineering degrees from top schools who were still searching for a job long after they graduated. Friends in computer science who had to earn a minor in mathematics all testify to not needing that math in their jobs. This isn't to knock stem, though, it's just to say the emphasis, I think, is misplaced. Granted, I do wish I had pushed myself a little harder in the math direction, as it actually has some valuable applications in the social sciences and might have served double duty for helping me learn low-level programming (which I technically don't use on the job, but it is interesting)