""If you actually want a STEM job, be an engineer: science graduates are mostly under-employed..."
A classic explanation of the difference between scientists and engineers says, "Scientists make it known, engineers make it useful."
Most employers want to make money via things that are useful.
Most software development is for useful business applications with practical heuristics or operational scripts. They mostly exploit, but do not develop office suites and graphics package, compilers, interpreters, other end user generic applications, and infrastructure middleware (server daemons of all kinds). Fewer still do computer science, generating academic proofs of theorems of orthonormality, completeness or complexity. I was successful in the industry for over three decades before needing to learn and use "regular expressions," regarding which the Computer Science Graduate Record Exam devoted several questions.
For my undergraduate education, I chose a university where I could switch from Physics to Engineering without a problem. I didn't wait until my sophomore year. Programming was something I did as needed for a business, charitable, or personal purpose.
Don't major in Computer Science, unless you want to be an academic. Major in a domain that is interesting to you, that you will consider fun and fulfilling to work in, and will pay the bills. Learn enough math, propositional logic, queuing and graph theory, and lastly programming, to further your real interest.