"Of course, there are a few very good software engineers in Japan but they are ... self taught ..."
Unlike other places in the world, where, if you want to hire a decent software engineer, you'd look for someone who knows only what they've seen in college.
Of course when you hire someone, you want someone who can learn by himself and learns new stuff outside of college... But from my experience, someone who has gone to a good university where they teach the equivalent of mit's sicp, combinatory logic, algorithms, compilation, os and so on (so not a java school that only just teach java or whatever flavor of the year) and is self taught tends to be better than the guy who is self-taught from high school. A lot (not all) of software engineers who are self taught without university education lack basic concepts of computer science and only taught themselves languages without really digging deeper in the concept.
That's why to have a lot of good programmers a country need good universities.
Unlike other places in the world, where, if you want to hire a decent software engineer, you'd look for someone who knows only what they've seen in college.