Why is learning C so much more generally useful than learning React? What I mean by the last point is that learning C tends to develop skills that are useful in a lot of other parts of software and tech work: if you know how to write decent C, you’ll have a much easier time of understanding PostgreSQL internals, for example, while if you’ve learned React, it’s anyone’s guess as to whether or not that’ll actually improve your HTML skills, for example.
With the language I use I could benefit (interop) though I like the abstraction because I’m doing everything on my own (programming/gamedev, 3D art, sounds, workflow, ideas) and don’t practice those enough as-is! At this point I just need to do anything.
Stalled motivation because I can’t even share my last project (that I actually finished!) due to system issues I also have to fix/sidestep (would be a bit easier with a different GPU, no guarantee I’ll get one for a price I find fair).
Aside from getting things in order, I might look at a blue programming (assuming it is C) book with a cool cover I remember my dad having (if he ever finds it). Fuzzy memory means I can’t find it online, so no idea if it even holds up.
if you know how to write decent C, you’ll have a much easier time of understanding PostgreSQL internals, for example, while if you’ve learned React, it’s anyone’s guess as to whether or not that’ll actually improve your HTML skills, for example.
I mean, there’s also a much more mundane reason why C comes up more often: It doesn’t use a runtime environment, so a library written in C can be called from virtually any programming language.
For the longest time, if you wanted to write a cross-language library, C and C++ were pretty much your only choices.
Rust is now entering that circle and I do think, it will start showing up in lots of places, too.But perhaps another reason why mastering C is more educational than mastering other languages, including Rust: C hardly abstracts from how the hardware works, so you’re not just mastering C, you’re also mastering hardware.
Other programming languages ultimately get executed on that same hardware as well, even if lots of abstraction layers are in between, so that knowledge still keeps being relevant every so often.
Great article. I’ve always been of the opinion that C should be one of, if not the, first things taught to programmers. You can explain Python in terms of C, but you can’t explain C in terms of Python.
I was taught by my teachers years ago that it was great that I wouldn’t have to pick up C thanks to higher level languages and I trusted them, and I regret it deeply. It took me years of curiosity and reading unrelated stuff to parse some stuff that would have probably taken so little time if I had simply started with C.
What would you think about learning Pascal, or Ada instead of C? They are also low enough to be useful to explain everything, but have more guard rails. (and without being the latest fad that Rust is)
From the perspective of this thread they’re probably similarly good and “deep”. My instinct would be to err away from anything object oriented for beginners since OOP has always felt a little cultish to me and I think it’s maybe something “shallow” (at least shallower than plain C) that has a habit of masquerading as the one true “deep” way to do programming.
C also has the practical advantage of being fucking everywhere.
Rust
I like Rust, but beyond the subset that is “ugly C” – using
unsafeeverywhere and eschewing like 90% ofstd– it’s definitely shallow.Pascal was the language for teaching when I learned to code. Then Assembly X86, C, and Java. Pascal is solid.
Types… Database columns have types. C has types. JavaScript allows you to work without types. Write react in typescript instead.





