The main thing that C does is force you to use "pointers".
And "pointers" force you to learn "indirection".
And, "indirection" is like "recursion" in being one of the absolute core concepts you MUST learn in order to program well.
Rust is actually somewhat obscuring "indirection" a bit because instead of a single thing to keep track of you now have two things--(base, index)--which you can think of as a single unit but newbies are going to get confused. Because of the immutability, people are throwing around data structures of indices like in very old FORTRAN code common-block programming.
And "pointers" force you to learn "indirection".
And, "indirection" is like "recursion" in being one of the absolute core concepts you MUST learn in order to program well.
Rust is actually somewhat obscuring "indirection" a bit because instead of a single thing to keep track of you now have two things--(base, index)--which you can think of as a single unit but newbies are going to get confused. Because of the immutability, people are throwing around data structures of indices like in very old FORTRAN code common-block programming.