I absolutely disagree with this, from my own work experience. Plenty of programmers who have no love for CS can write solid code that solves an important problem. In fact, a diligent worker who just does his job properly is substantially more productive than the obsessive code lover who spends long hours to enthusiastically solve the wrong problem.
Most software work is not that difficult and requires a few tricks of the trades more so than any real depth of knowledge. And it certainly doesn’t require any particular love for coding - you don’t need to enjoy the code any more than you need to enjoy checking emails or filling out Excel spreadsheets. It’s just something you do to get the job done.
The CS theory classes are challenging, but they are just tacked on at the end, and hardly used by anyone who doesn’t go on to pursue education further than a BS. CS undergrads are no more equipped to apply the theory than chemistry majors are to apply quantum mechanics upon finishing their BS degree. This is not to discount the fact that it takes a substantial effort to finish the major (because any good CS program will have plenty of solid, involved projects to finish), but anyone who is diligent can finish the degree and land a solid job.
Finally, terrible working conditions will kill any “passion” you have for a job very quickly, no matter the subject matter. Do what you don’t hate are capable of doing, which pays a stable salary.