Keep in mind that human beings are pretty good at creating a shared mental context of their conversation
You also assume a certain amount standard knowledge and understanding among the peers in order to have a "shared mental context". Depending with whom I am talking, I may need to dumb down my vocabulary or complexity of ideas. If I toss out the phrase "scalable lockless eventually-consistent datastructure", it is going to WHOOSH over 99% of the people I talk to. Now I need to spend several days trying to get someone up to speed with the concept, but they probably won't fully understand a lot of what I'm talking about for months or ever. They're not less smart than me, they just don't have the obsession required to maintain the attention to detail required to understand some advanced topics.
I know 1, maybe 2, people at work I can talk with at full capacity, and we can tear through ideas quickly. We don't "brogram", but we do go to each other with a well thought out issues and present pros, cons, and random thoughts. I work with many bright programmers who do a great job, but most of them are "normal" intelligent people. Not nearly as obsessed as a small handful of us. There is a huge gap between an intelligent person who can program and a probably equally intelligent person who has been programming since a young child and can tell you almost exactly what is going on under the hood networks, CPUs, thread schedulers, memory allocators, garbage collectors.
I've done my fair share of nonintuitive optimizations that result in slower micro-benchmarks, but faster macro-benchmarks. Maybe using a struct instead of an object shows as being slower in a micro-benchmark because you're copying around more data, but the macro-benchmark shows up faster because the random memory access caused by objects is thrashing the cache and the struct has better locality with fewer evictions.
Maybe your simple lock looks to be faster, but has horrible scaling under high contention.
Maybe allocating objects looks plenty fast, but putting pressure on the garbage collector is invoking many stop worlds which is hampering your thread scaling
Maybe your SQL query optimizer is showing you that a column is causing a scan, so you want to index it, but if you rearranged your query, you could do without the index all together.
Of course most of their programs work just fine and don't need these levels of understanding, but there is a reason why my programs seem to just work so well. They're quite thought out, from top to bottom.
Also, even with DNS it would be a PITA to change all the records to point to new IPs.
Mine just works. Out of the box, Stock PFSense picks up the machines name and adds it to the DNS records. My 5 year old wireless $40 printer even works with DNS and no configuration at all on my part.
DHCPv6 provides more control to the administrator in assigning addresses. If you really want that sort of control over your IPv6 addresses, you don't understand IPv6 yet.
You're doing it wrong!
Therefore, it is a cultural thing and I doubt that it will improve any time soon.
We already have a flood of bad programmers, why do we want more? Your "facts" only show that there is more demand or more monetary desire for women in STEM in those other countries. More modern research is showing that the percentage of women who actually WANT to do STEM is actually very close to what the USA has for current percentages. It's also a note of interest that the percentage of women who want to do STEM is identical in all countries and cultures.
The initial research was done by a collaboration of some very prestigious universities, but they did say that while they feel confident in their findings, more research from different angles must be done on the subject.
We don't need more STEM, we need more good STEM. Don't push women into the fields, just don't hold them back. While we at it, lets get rid of this surplus of idiots.
Anyone can make an omelet with eggs. The trick is to make one with none.