You don't know what you don't know. I could hurt you in other ways you just don't know it. For example it shows when you write blogs that claim SQL joins why there are deadlocks in your web application code. You don't have to go do a 4 year college but not knowing the basics of O(n) notation, how relational databases work inside, how concurrency works, different programming paradigms, is going to hurt you.
> 2) Engineers are paid way too much
Bullshit. If you feel like you are fraud and you are paid too much, well you might just well be. Doesn't mean everyone is.
Software engineering is qualitatively different from being a waiter. The equivalent would be compare a software engineer with a robot maker that builds waiter robots.
It is not about fairness. Tell someone born in a war torn country about fairness. He'd love to swap places with any waiter in US probably.
> One of the bigger websites I worked on relied heavily on SQL joins at runtime.
Now I am laughing. That is a pretty broad assertion. It is like saying "don't use C" or only use 3 space indents. Basically ignore this and use joins, use indices, and benchmark and even better -- (gasp) hire people who have got a CS degree and know about O notation, about concurrency, relational databases.