Because it’s functional and the syntax is relatively easy to grasp and it’s easier to write simple algorithms with it without having to worry about OOP concepts, visibility and other stuff.
It also enforces typing and a decent level of resource management which I believe is a good thing to always have in mind when it comes to optimizing memory and even execution.
This also can make learning new languages easier, and you now have some base knowledge to move on to fancier things like OOP and Templates.
It’s probably not as easy as other languages which come with tons of primitives that already do a lot of work for you, but going through these little things yourself teaches you that nothing happening under the hood is magical and that everything works in a certain way for a reason.
Also, OP specifically said he wants to learn C, and I can’t see how suggesting an alternative would sound supportive or constructive. Having started with C myself, I can’t even disagree with that.
Because it’s functional and the syntax is relatively easy to grasp and it’s easier to write simple algorithms with it without having to worry about OOP concepts, visibility and other stuff.
It also enforces typing and a decent level of resource management which I believe is a good thing to always have in mind when it comes to optimizing memory and even execution.
This also can make learning new languages easier, and you now have some base knowledge to move on to fancier things like OOP and Templates.
It’s probably not as easy as other languages which come with tons of primitives that already do a lot of work for you, but going through these little things yourself teaches you that nothing happening under the hood is magical and that everything works in a certain way for a reason.
Also, having started with C myself, I honestly can’t manage to be too objective about it. I loved every minute of it…except not knowing how to use the debugger early on. That can save you a lot of headaches.