Business need both types in this world. No shame in that, but don't lie to yourself into thinking that you can do _both_ with no CS degree. You can't.
Business need both types in this world. No shame in that, but don't lie to yourself into thinking that you can do _both_ with no CS degree. You can't.
The difficult part for you will be obtaining an interview. Because all of the other candidates will have CS degrees, and increasing numbers of them will have graduate degrees. You are at a disadvantage.
In this sense, UBI is a godsend. But of course, we assume all actors are rational and self-disciplined.
To some extent open-source has removed the cost for reinventing libraries, reverse engineering and there is little need to study specific elements in a subject to solve such a problem when you can grab lib_whatever or a free compiler for a language.
You are right that in interviews at famous companies (FAANG, asset management companies, aerospace / embedded systems companies) being self-taught here isn't enough. Instead, they require specific certifications and they look for the graduate with a strong engineering degree rather than someone who is self-taught.*
Right now in 2019, I would do both.
*Having a serious open-source project or significant contributions is actually a huge advantage over recent graduates.
Some PhDs and math students yes (at least, with regards to the algorithmic portions), but otherwise you have to learn the low-level esoteric stuff on your own, or be lucky enough to have a specialized optional course at your university.
And the cutting-edge will rarely be available to undergraduates anyway. All my CS graduate colleagues learned about codecs was how to compute a DCT by hand - they certainly didn't learn the modern 4x4 and 8x8 spatial block transform approximations as used in h264, or any motion vector calculation algorithms, or the x86_64 SIMD intrinsics, or any of the modern entropy coding methods.