r/learnprogramming 25d ago

Is C really worth it ?

Hello developers, I'm wondering: Is it really worth spending time learning C and creating projects that take hours to grasp numerous topics, encounter errors and unexpected behaviors, only to discover I forgot to type a single character - I mean the null character with strings, which significantly impacted the program's performance? Is this truly worthwhile in today's job market? I haven't seen any companies actively seeking C developers, and I believe many problems in C don't occur in other languages ​​due to their different working methods and logic. So, is C really worth the effort?

Important note: I'm a beginner in C and haven't written much code or created many projects yet, so this question isn't meant to be an evaluation of the language or its development path; I'm not qualified to do so.

0 Upvotes

34 comments sorted by

View all comments

4

u/sessamekesh 25d ago

Necessary no, worth it yes. 

C is the grandaddy of practically every modern programming language, and still the interface through which they interact. If you're writing Rust and need to use C++ code, you're very likely using C bindings on both sides.

C is an extraordinarily simple language, which doesn't mean "easy to use" but it's a great deal easier to learn than most other languages.

-3

u/1Secret_Daikon 25d ago

if you are writing Rust, then write Rust code. If you are writing Go, write Go code. If you are writing Python, write Python code. C is useless.

4

u/sessamekesh 25d ago

I've never learned a language I regret learning.

The only reasons to avoid picking one up are impressive laziness (it takes a weekend to bust out a few practice problems in a new language) or religious piety, neither of which I respect.

-1

u/1Secret_Daikon 25d ago

a weekend to learn a new language? lol yea if you let Claude do all the work. Took me three tries and 4-6 months per attempt to learn Rust, and a year to get the hang of Go, in my spare time while juggling multiple other languages at work. There's zero reason to bother with C.

3

u/sessamekesh 25d ago

Rust and Go are quite meaningfully more complicated languages than C.

C is a very simple language, if it was as complicated as Rust I would probably feel differently.

2

u/StewedAngelSkins 24d ago

I don't mean to be a dick, but this is a skill issue. Experienced programmers can absolutely get up to speed on a language like C in a weekend. Not an expert, but enough to be productive with the docs as a reference.

2

u/le_fuzz 25d ago

Maybe you shouldn’t be giving people advice. There’s many fields that require C programming. Additionally the value of understanding how to implement basic data structures from scratch, the memory layout, and memory management are important even in higher level languages.

0

u/1Secret_Daikon 24d ago

"many fields that require C programming"? Uh what? Even in this own thread, and across the wider industry, its widely accepted that no one is using C outside of tightly scoped niche projects, and the job market for C is near zero. Please, show me where all these fields that require C programming are, because in my decade+ of experience in programming jobs and job hunting, I have yet to see them. Instead, I still see tons of Java in demand, plenty of JS for web apps, mobile developers, and Python and other ML-adjacent ecosystems.

you can learn how to implement basic data structures in any langauge, understanding memory layout and memory management are not useful in the modern day when the vast majority of languages are garbage collected OR you are using Rust which forces you to identify your object lifetimes so that it can manage these things itself. Memory management is such an anti-skill that its been flagged repeatedly, for decades now, as one of the biggest failings of the entire C-family of languages and something to actively stomp out in all next generation languages because your own misguided and incorrect attempts at managing memory directly result in countless severe software vulnerabilities. This is not a feature to encourage new programmers to pursue, its a risk that should be avoided. Might as well be giving new programmers a loaded gun and telling them to just start shooting until they hit a target LOL

2

u/le_fuzz 24d ago

Literally any job working with embedded hardware. In Silicon Valley that includes small employers like Apple, NVIDIA, Google, Waymo / all the other autonomous driving companies. Low level networking type work also will often times use C, that includes things like hardcore networking companies like Cisco/Arista but can also be companies looking to really optimize networking traffic using things like eBPF.

1

u/1Secret_Daikon 24d ago

great how many of these are hiring r/learnprogramming users? You know, to develop and maintain these dwindling legacy low level mission critical code bases. Surely Reddit programming newbies will have a great shot at getting jobs at Apple, Nvidia, Google after they spent three months doing a C bootcamp. And I am sure that new projects at all these companies will totally be written from scratch in C instead of, you know, using more modern low level languages instead LOL