It seems you're guilty of the same cognitive biases. "Screw those finance guys! Rosencrantz and Guildenstern over Oskar Morgenstern!"
Edit: On my first job interview out of college I was turned down by the head of engineering because I didn't have enough experience in C++. "Silly college kid can't do shit." I was called back and offered a job because another manager was impressed by my work at the speech recognition lab at my school. Three months into my employment they filed a patent on an algorithm I devised to build databases that were searchable through speech interfaces. The engineering head ate crow.
Hiring developers is a crap shoot, but it's hard nowadays to hire a truly incompetent developer. I've really only encountered one in my lifetime who was incapable of basic development tasks.
In the 15 years I've been a working engineer (and 25 in general programming), I've noticed the level of knowledge and skill required to build usable products has been greatly reduced. Why? Because there's been 15 years of advancement by seasoned engineers, prompted by business people, to build tools and frameworks that fit large swaths of business needs.
That cycle is ever present in tech. The obscure things become clearer and more accessible to laymen through the efforts of the experts. And you can bet those experts have deeply studied CS topics, whether at a college or on their own.
A professor in college told us that we'd likely never use 90% of what we learned in our curriculum. He said engineering is largely an exercise in vocabulary: the core structures in CS are like "function" words (articles, prepositions, pronouns) in human language; they tie the other "meaty" words (nouns, adjectives) together. The nouns and adjectives are the specific technologies you use.
A CS degree teaches you the function words. A bootcamp teaches you a small set of meaty words with a sprinkling of function words. However, the meaty words are the most useful day-to-day. But you have to be able to discern and use new meaty words all the time, or you'll "sound" dated eventually. "Radical, dude! I'm stoked about these parachute pants!"
I've met many CS-degree-holding engineers who don't understand this vocabulary exercise. They choose a particular programming language they're most familiar with and proceed to reinvent the meaty words. They're doing it wrong, and will almost always be less productive and useful. Bogus!
If I'm going to build a machine learning system, I'm not going to open my editor and start writing parsing libraries and convex optimization algos in my favorite language. I'll find a well-supported framework and learn how to use it. If I need to learn the framework's language better, then I will.
Go for the meat first, and you'll be a great engineer.