Great insight! C basics in HS wouldn't be a bad idea... After all, we teach algebra in HS, and C wouldn't be any more difficult to understand than that...
After having learned C and x86 (make no mistake, I'm continuing to learn every day, I'm no expert), I sincerely feel that this whole fear of the low-level stuff is actually quite scary. It's almost like big industry is fostering it to hide something and/or dumb down their competition. This is obvious because they push their own higher level languages like C# and Java (nothing wrong with that) but if you look at their hiring trends themselves, they're often looking for C and C++ devs... Why is this????
When I started to run hex dumps and disassemblers on my programs (mainly native; VM is obv a whole other animal lol), I started to realize that looking at numbers and working with direct CPU commands isn't all that difficult, and it's still very effective. Plus, doing so can only help you. In other words, I've never heard anyone say "Man, I learned C and assembly, what a waste of time! I've never even used that knowledge for my Java program!" Instead, it's usually "Knowing C has helped me understanding memory and bitwise so much more than my colleagues" or "I love my abstractions, C is old." This tells us that people don't want to learn C because they were discouraged from doing so by some professor or co-worker, or they have a faulty opinion of the language. Assembly and C (to a lesser extent) cannot be "too old" because they are low-level languages... To be new is not to be high level... This argument is literally like saying that a building foundation is old technology. That may be, but it still will always be relevant and required. As noted in the main article, I don't feel like forcing C is the answer, but if we can at least talk positively about it and spark curiosity, so that when a developer has free time to learn it, they do, then that's the best we can do IMO!
Good example: I wrote an image processing algorithm once in C++ and then completely by hand in assembly, and guess what? The assembly version was avg. 15% faster, even after compiler optimizations! Also - before people say assembly and C is outdated - they should get Radare2 and grab your favorite native binary and open that up in there, run a disassembly. :)