Sure, yeah, you could take a few weekend courses and bang out some stuff and possibly even find a job paying decent money. But if you want to move up in the world you need to turn your hack and slash techniques into a refined art. The kind of crap commodity programmers write is the stuff that skilled developers get paid a lot of money cleaning up or just re-implementing. (...) If you want to work in the big leagues on important things, you need to be open to learning some things and respect the craft.
With all possible respect to all the CS experts of the world, that's not what they teach. Finding a good organization of your application that makes structures easy to break down, processes easy to follow and changes easy to implement doesn't involve deep, abstract mathematical formulations with optimal answers. It's about creating functional units (objects, layers, modules, services) with clear responsibilities that abstract away internal details, create well defined and narrow interactions, break up and explain complex logic, that everything behaves like and contains what you'd expect from common language definitions and naming conventions and with sufficient high level documentation that anyone of moderate intelligence can understand what bits need to go where.
Or to put it another way, if you sent the source code through an obfuscator the CS experts would probably be just as happy with the output as the input, after all the algorithms and functionality are all unchanged. It would make it an incomprehensible mess of spaghetti code and "there be dragons" that nobody understand how or why works, but those are practical concerns. The same is error and exception handling, CS is all about correct algorithms that never get called with invalid input or run into any of those practical problems that cause poorly written software to crash, often without leaving behind any useful reason why and if there's any possibility to just fail this and move on.
I think you're onto something about the craft and the art. If you want to make swords for an army it's a craft, if you're making a nobleman's fine blade it's an art. Most of the time what we want is robust craftsmanship, process as many passable swords as possible and discard any failures. Not very glamorous and not very artistic, we're not awarding points for style or elegance but whether the code you've built is a reliable work horse that gets the job done. Or maybe the difference between an institutional chef and a fine dining chef. One is serving a hundred people a good meal, the other can spend forever making a plate of fine art. Both are very different from being a poor chef, but being good at one doesn't really make you good at the other. And CS is the Michelin guide department.