> C.. C++ ... That taught me a lot about how computers work and how the programs are supposed to run, once in memory.
Both langs are terrible ways to learn about how computers works. Only help how computers, that sadly have OS made with C/c++, need to so you interface with it.
I"m unsure if actually exist a lang that ACTUALLY teach how computers works.
I don't remember that a language have explicit ways to code with the CPU cache, or the CPU registers, and the context switches, and the traps, etc. C is not a model of how computers works. Is yet another abstraction, and not a good one.
I prefer much more pascal because is more sane, and Rust today. But not even Rust teach you much about computers.
Instead, you NEED to learn how computers works THEN map that to how Rust/c is and PROBABLY it will work well (In Rust, I have a word: Async. Nope, that is not how computers work!).
For example:
a //if String, heap, if i64 stack
Different if:
Stack<a>
Heap<a>
This is more on line with the idea.