> If you want to make the tools and libraries that the lower-level people use, you do need that degree.
No, you need to somehow invest more time to build more features than another sucker out there. That's almost entirely it. Period. Shit is just fast enough these days, and if your industry cares about performance, well then maybe understanding something about caching that can be learned in less than a day from a blog article will help you with 80% of your problems.
There's plenty of work out there that craves better solutions, and a degree is absolutely not even a nice to have at this point. Let me repeat: there are fundamentally basic applications and software solutions that various industries are dying to have exist, millions of dollars on the line if you know what industries in question, that simply just take a damn long time to implement but every individual piece is so far removed from so much as a basic comp sci 101 algo class, that you're literally just talking about business logic at that point.
That’s all true. The flip side is that there’s also problems that do actually require specialized training. An example that comes to mind for me from a few years ago involved real-time simulation of a constellation of satellites. The accuracy was on the order of meters. I ended up implementing RK4 as a solver, and had to use pretty complex differential equations (2nd order effects matter at that resolution).
The project also involved real-time bitstream generation and modulation at 10MS/s. That was a mixture of understanding DSP and some clever hacks to get the performance we needed on the hardware we had. Oh, and concurrency without race conditions, because we needed to use every core we had to make it all work.
Yes, there’s lots of business problems that can be solved by programming without much computer science. But there’s also a huge pile of problems where it’s not even clear that it’s possible to solve using current tech. I, personally, much prefer the latter, but to each his or her own.
This is completely untrue. I have in the past and continue to create web components that "hard CS" folks would scoff at and also quietly use in their own projects if my work weren't owned by my employers.
I've built chunking hi-def megapixel web camera services a decade ago when browsers were limited to 20mb uploads. I've suggested building simple structured data protocols based on xml for a high-rate foreign exchange brokerage client-server architectures. We wanted to secure traffic between the client and server so I suggested self-signed certificates.
I'm not stupid but I'm not a "10x developer" either. I work as a software developer because it's the most lucrative, accessible and interesting opportunity for a non-credentialed individual like myself. I've met folks with Masters in CS that unfortunately didn't merit a basic certificate in the same.
No, you need to somehow invest more time to build more features than another sucker out there. That's almost entirely it. Period. Shit is just fast enough these days, and if your industry cares about performance, well then maybe understanding something about caching that can be learned in less than a day from a blog article will help you with 80% of your problems.
There's plenty of work out there that craves better solutions, and a degree is absolutely not even a nice to have at this point. Let me repeat: there are fundamentally basic applications and software solutions that various industries are dying to have exist, millions of dollars on the line if you know what industries in question, that simply just take a damn long time to implement but every individual piece is so far removed from so much as a basic comp sci 101 algo class, that you're literally just talking about business logic at that point.