Hey everyone, I'm currently programming mainly in C++ and Java, but I've been hearing that picking up C could really help me understand how computers work on a fundamental level. I've watched some videos that suggest C is a great way to get back to basics because C++ abstracts a lot of low-level details. Do you think learning C is worth my time for this purpose? Any suggestions or thoughts on this would be appreciated!
4 Answers
If you really want to understand how computers operate, consider diving into assembly language too. C is great as it’s foundational for many systems, but assembly gives you that low-level view. Both languages complement each other well in that regard.
I think giving C a shot is a good idea! It forces you to understand the underlying workings. Plus, many systems are built in C, which makes it relevant today. Just keep in mind that most programming nowadays doesn't require low-level understanding, so gauge your interest accordingly.
Yeah, I’ve been told that understanding C is helpful, especially if I want to get into systems programming or OS development.
C and C++ are pretty different despite their history. You can’t really swap idioms from one to the other without potential headaches. Learning both will give you a broader perspective on programming, but treat them as separate languages.
Good point! I guess I need to approach them differently and not just think of C as an older version of C++. Thanks for the heads-up!
If you’re already familiar with C++, you’ll find that much of C is included in C++. It's mostly a subset, but diving into C can help you grasp some core concepts that might get abstracted away in modern C++. C really makes you handle things yourself; want a hash table? You’ll code that yourself. This hands-on approach might deepen your understanding of memory management and data structures!
That sounds interesting! I’ve been thinking about how C doesn’t have all those fancy features and makes you do more work manually, which could really teach me a lot.
Absolutely! I think going through the basics in C will definitely fill in some gaps in knowledge that modern C++ might miss.

That sounds like a tough but rewarding challenge! Do you think starting with C before diving into assembly makes sense?