Learning C is about learning how the OS works. The C syntax is quite simple. Complexities come when dealing with the OS through system calls. Threads, sockets, memory, etc. Most other languages are about learning the language features. The languages you have mentioned and C++ are like this. People tend to get bogged down in trying to get the language feature to work for their problem. I have avoided this as much as p…
> Learning C is about learning how the OS works. If I just want to write a C program I don’t understand how this is true, can you elaborate?
I will say that a huge subset of C programs involve low level interactions. I know some talented developers that feel disagree, but I wouldn't use C otherwise (though there are probably other use cases). ie. basically never
In which case you are somewhat of a hardware / kernal / OS programmer. The lower layers will matter. In the PC world this might be abstracted away. I haven't heard of many developers diving into eg. a modern Intel x86, at a hardware level (but perhaps write some ASM).
C also works well for embedded systems. In which case you likely have a compiler and have to interact with low level hardware and peripherals.
So I will say in the long run you will need to learn these things. My education in C involved writing code for linux system; that's how it's taught to CS/SWE people.
On the computer / electric front, you would work with an embedded platform. In either case you'll learn useful things and will be able to jump back and forth... but there will be some substantial differences in your specialized knowledge.