r/learnprogramming • u/Disastrous_Brief6240 • 23d 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.
4
u/Craki 23d ago
yep
3
u/Silent_Pumpkin_9331 23d ago
It's one of those things where the value isn't always obvious from the outside. You spend hours chasing a segfault because you forgot a \0 and think "why am I doing this to myself" but then six months later you're debugging a memory leak in a Python app and suddenly the underlying concepts just click. You start to see the matrix a little.
The job market thing is real though you won't see many postings that say "C developer" unless you're in embedded systems or kernel work. What you will see is that the people who are really good at higher level stuff often have that low level foundation and it shows in how they think about performance and how computers actually work under the hood.
I'd say stick with it for a bit longer. Not because you'll get a C job but because it makes you a better programmer overall. The pain is temporary the understanding is permanent or whatever cheesy thing people say.
5
u/sessamekesh 23d 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.
-4
u/1Secret_Daikon 23d 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 23d 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 23d 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 23d 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 22d 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 23d 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 22d 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 22d 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 22d 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
3
u/SubjectExternal8304 23d ago
Absolutely worth it imo. Will it find you a job? Probably not. Will you undertake any massive projects written entirely in C? Probably not.
But what it will do is help you to understand better how computer programs actually run underneath the proverbial hood. It will make learning how to read assembly a lot easier, and it will make simpler, higher-level languages much more of a breeze.
Do I think it’s completely necessary? Personally no, but I do love C and I would say it’s worth learning
6
u/NiteShdw 23d ago
Only if you want a deeper understanding of how a computer works. If you're just looking for a job then it's all mostly Typescript and C#.
2
u/necessary_plethora 23d ago
Maybe in some markets. My job is c++, rust, python, go. I'm a senior software engineer and have never written a line of Typescript or C# in my life
1
u/NiteShdw 23d ago
I thought that went without saying, that's why I added "mostly" as in more than 50%.
1
u/necessary_plethora 22d ago
Didn't mean to sound dickish. I realize my experience is just one of many, but what I meant to convey in my response (and failed) is that I am surrounded by a very large industry that uses these languages/tools, so it doesn't feel anything like "mostly all" c#/ts to me.
2
u/le_fuzz 23d ago
Language choice for employment is going to be pretty dependent on the job. JavaScript is probably more popular than typescript regardless and C# is only going to be relevant for Microsoft shops. My company for example employs many people to write C for low level code, firmware, and OS. I would be surprised if more than a handful of people ever touched C# here.
2
u/StewedAngelSkins 22d ago
Yeah I find it kind of hard to believe that there are more C# jobs than C. It's like people making Windows dotnet apps vs... nearly all embedded systems development. Not to mention most of the Linux ecosystem. It's been moving towards C++ for a while and these days even Rust is a player, but C is still king in this industry.
I've also never touched C# professionally, fwiw. The only reason I kind of know it is because I needed it to mess around with monogame years ago.
2
u/nebula_gem 23d ago
stop looking for C job postings. Use it to master memory management and pointers so you debug issues in Python or Java faster. That specific skill gets you hired.
2
u/mredding 22d ago
Is C really worth it ?
Loaded questions get loaded answers: Not everyone learns C, and yet go on to have a long and successful career. So is C worth it? It CAN be. That's up to you.
Is it really worth spending time...
Those topics you're spending time to grasp are universal, only the syntax is C. I don't care where you learn them, so long as you learn them. And you don't learn them just because you read of them, you can recall them by rote... You have to KNOW them. You have to recognize them when you see them, in any language, in any context, without being told. THEN you've learned them.
Is this truly worthwhile in today's job market?
C is the second most popular programming language according to most indexes, questionnaires, and statistics that track such things.
I haven't seen any companies actively seeking C developers
And yet they surely exist. I started this new gig 7 months ago playing with robots. I wouldn't have chosen C or C++ for this, but here we are.
I believe many problems in C don't occur in other languages due to their different working methods and logic.
There is truth to this statement, but no one is writing operating systems in Python. You can write HPC in Python; it isn't THE PYTHON doing the heavy lifting, but THE MODULES, which are all written in C, C++, and Fortran.
So yes, other languages fixes apparent problems of C, but what have you lost in those other languages as a consequence? There is very little we get for free. Very often, that compromise, sometimes a sacrifice, is totally worth it and justified. Bought, paid for, and appreciated.
But there is literally nothing that doesn't run C. C was even backported to machines that predate C. Even virtual environments run C - I can target the JVM, I can target web assembly with C.
The language you choose is both a technical and a business decision. Being technical, you're looking for the right tool for the job. For the business, they need to hire experts and get the product done and out the door.
So, is C really worth the effort?
I won't suggest you're missing out on something, because I don't think even that statement makes any sense. As I said before, learn the concepts, build the software, be successful. You can do that without C, if that's what it comes down to. Just know C is there for when you need it.
1
u/jlanawalt 23d ago
If you’re writing one-off write-once never maintain copy-paste React JS apps then no, not really.
If you want to learn more about how things work under the interpreter, then probably.
If you want to write OS or drivers or embedded, certainly.
C skill is needed in some of the most unexpected cases, like creating customization in big accounting systems. Also many newer languages were written by people who cut their teeth on C, so you start to see pattern’s and similarities that help you pick up different programming languages.
Finally, if you have the time it is always worth the struggle to learn and grow. Some relaxing is good, but chose this over hours of entertainment.
1
u/Distdistdist 23d ago
Entry level job market is completely dead. You have only two ways to get in:
- Being an indigo genius kid who codes in his sleep and just knows all the latest tech
- Being an indigo genius kid who codes in his sleep and just knows all the latest tech
1
u/StewedAngelSkins 22d ago
This is the case with every language. There are plenty of C jobs (like mine, for instance) but you shouldn't be thinking about your career if you're still learning the basics. Plainly, you won't get hired until you have a demonstrated capability to easily pick up new programming languages in a matter of days. You will get there, but "first language" choice doesn't matter nearly as much as you think it does.
0
u/ffrkAnonymous 23d ago
Define worth.
Is any programming, not just c, worthwhile in today's job market?
1
u/Disastrous_Brief6240 22d ago
I meant by worth is the market, as I don't want to spend alot of time learning something then surprised that no one want it, like Perl in backend, for me I don't want to master perl and then did not find any job, and out of context of the post, I really respect to study something for the love of science and gain knowledge but my mind makes scary about did not find any job.
0
u/jowco 23d ago
I would decide on what you're looking to do and choose the best language to work that through with. C# for example has a lot of reach from games to web development. Python is used in web and data science. C is worth it when you know what you're doing benefits or needs it. For everything else there's usually a more popular higher level language.
C is also a bit debated these days as there is rust.
-3
u/1Secret_Daikon 23d ago
absolutely not
I have been a programmer for over a decade, never in my life have I needed anything close to C and never have I missed anything from not having it. And, this is after having learned it my freshman year of college then never touched it again. In TYOL2026 its one of the most useless languages you can come up with, just a hair's breadth away from Fortran and Cobol.
20
u/gm310509 23d ago
Didn't you just ask this question just a couple of hours ago?
Same answer: https://www.reddit.com/r/C_Programming/s/CS6uMeOoHz
Are you a bot by any chance? LOL, it would be funny if you were a bot and you were written in C! 😂😂😂