Now how the fuck do you complain about something if you’ve never even heard of and “don’t know exists”. No one who’s never heard of algorithmic complexity or invariants aren’t going to complain about them because, perhaps to your amazement, they simply have no idea these things exist. But maybe that concept is a bit too complex for you.
Stack Exchange, Quora, Reddit are all full of pages like https://softwareengineering.stackexchange.com/questions/2083... (sometimes with a mocking tone).
The initial assertion was:
> A self taught person doesn't even know that these things exist
Not “a self taught person doesn’t understand these things”, not “a self taught person doesn’t appreciate the usefulness or application of these things”, or whatever else you’re trying to argue.
The reality is that these are arcane topics for 99% of the programmers out there and even more of the self taught ones.
> did you learn what you know about JITs by taking formal classes?
No, but JITs or emulators are not fundamental topics.
One example I can give is this: solid knowledge of data structures, together with some theoretical 20-years-old knowledge of query plans and normalization, meant I could understand a database's EXPLAIN output and quickly learn materialized subqueries and denormalization the first time I needed them. Even obsolete knowledge has a core that is still valid, and experience is also about being able to recall it and apply it. If you have done some CS at school, you will be faster at this because you have more dormant concepts that you can recall.