DEV Community

Cover image for Graduating in 2030: Is learning C worth it? Honestly?

Graduating in 2030: Is learning C worth it? Honestly?

EffessDev on October 02, 2026

I started my degree just 1-2 months ago, which means I will be graduating in 2030. Given how rapidly things are moving, will manual coding (or even...
Collapse
 
francistrdev profile image
FrancisTRᴅᴇᴠ •

Here is what I learn overtime. Start building.

You can learn any language you want, but at the end of the day, you are learning the structure of the hammer, not how to use it.

Build projects in various language and choose the ones you like and stick to it. If my ideal language for full stack development is Next.js, learn next.js.

Ignore the market for now since it's VERY volatile and things can change. Maybe one day Python is the most in demand then it's JavaScript the next.

Overall, specialize specialize specialize. Regardless of demand, the market always look for a person who specialize in something over the person that uses the language since it's "demanding".

Collapse
 
effessdev profile image
EffessDev •

I do not know how to tell you how useful that advice was to me.

I am the kind of person who jumps between languages, frameworks, and even entire fields of software development just because of the market. I started by making games (Unity), then desktop apps, then Android apps, then games again (Godot), then web development (Next.js), and now I am into ESP-IDF.

Just like you said. I am going to stick with this from now on. Like @unitbuilds said in this post, the market always demands a specialist, not a "jack-of-all-trades".

As a starting point, I built this after a couple of hours of writing this post: effessdev.github.io/esp-idf

I am going to document everything I learn on this website, so that I can learn and I can hopefully teach others in the future too.

Collapse
 
unitbuilds profile image
UnitBuilds •

Imo, learning C is useless. It's so well documented and because it's foundational language, AI is exceptionally good at it. So I honestly wouldnt bother. An example, my SASOS, over 500m LOC of low-level C, I didnt write any of it, because I orchestrated my AI to get it working, I just steered it. Knowing C wouldnt have made it any better, or made it happen any sooner. It's a pointless skill today. What I would rather focus on, is team management. MoA architecture is the next phase of AI development. Claude, etc. already try to do it, by having the agent spawn sub-agents with specific tasks, but when you look into their system instructions, they essentially tell them 'you are a network engineering expert' and then the task. Today, IMO the most valuable skill, is to be able to look at a codebase and figure out how many domain experts are necessary to maintain the codebase. Automation is where development is going, because a team of AI can patch in 30 min, what takes a team of humans 3 hours. It's a matter of a year, then AI will officially out-code us all and out reason us all on fixing bugs. So best skill to have, is how to appropriately use AI. It's a much smaller, easier to learn domain, but it only looks simple on the surface, it's just just prompting, or setting up skill files, it's orchestration, knowing who works first and who works together, how are conflicts handled and where to expand on the system. Those are the skills that'll survive the next 3 years, practically nothing else.

Collapse
 
effessdev profile image
EffessDev •

I know you will say exactly that 😂. But I wonder what the perspective of other people is. I am more inclined to your opinion by the way.

Collapse
 
effessdev profile image
EffessDev • • Edited

Also, have you posted anything related to what your AI workflow looks like? I really want to see how you work. I'm sure others will like it too.

Thread Thread
 
unitbuilds profile image
UnitBuilds •

I'll make 1 probably over the weekend, that way I can also teach people how to use velocity ide. I added a cool feature, it can now offload work to a headless instance (i.e. you can run the IDE on your laptop and have it use your pc/a cloud server to do the heavy lifting). Which I dont think any other agentic IDE can do currently? Though I could be wrong on that

Thread Thread
 
effessdev profile image
EffessDev •

Yes! I have an old PC sitting there doing nothing. Waiting for the tutorial!

Thread Thread
 
unitbuilds profile image
UnitBuilds •

That was the exact reasoning behind it! When I did the compiles for pgrust, my laptop struggled and ran out of ram... My PC was too full to have the space it'd need to do it via WSL (SSDs are too damn expensive)... Then I remembered, I quit my job, so I have my workstation pc (mine, not company's) sitting there fully cleaned... So I installed Ubuntu server on it and prepped it, so I can use it as a buildbox. Worked fine via SSH, then I decided why not just add it as a function to the IDE, now it can natively distribute work across 'nodes'. Next phase is to allow it to use a cloud VM (tiny 1) as the core instance, then scale out (like kubernetes), for the agent instances, the sitemap system keeps them all comprehensive, so they arent bumping heads and the instances are anyway sandboxed, so it's just a natural evolution of it. Dunno if you know Google's demo where they had like 100+ agents build an entire OS in 12 hours? That's the end-game, except it'll cost a fraction of what their demo cost and able to run either in cloud, or fully local.

Collapse
 
fm profile image
Fayaz • • Edited

Yes, absolutely! Learn a low level programming language like C deeply!

In my CS undergrad, I designed my own computer, a very basic computer, but at the hardware level. Then wrote instruction set for it, and operating system. That was the best learning experience I ever had.

I know exactly how computer works.

I treasure learning assembly language, and of course, C.

You need to learn a low level programming language like C very well for exactly 2 reasons:

  1. Most people will either not deeply learn such fundamental programming or forget by 2030. So you’ll be one of the few. Hence, you’ll stand out. That’s important.

  2. No matter how advanced AI becomes, communicating with AI in natural language will always be flawed. Natural human languages are ambiguous. A language like C is not. So for human security and 100% flawless deterministic programming needs, there will always be demand for those who know fundamental low level programming languages like C.

Don’t listen to others. Make up your own mind. However, by not learning fundamentals, you gain no advantage over others. Besides, today's AI tools and AI models will soon become obsolete. So by learning these, others will gain no advantage over you.

Your only way to stand out is to learn fundamentals deeply 🥰

Collapse
 
effessdev profile image
EffessDev •

I cannot disagree with it honestly. Maybe I should target a middle ground: Don't dismiss C & C++ outright, but learn just enough to know what is happening under the hood and review Ai-generated code. How does that sound?

Collapse
 
fm profile image
Fayaz •

That sounds alright for now, but eventually deep knowledge is necessary in at least one field. No one is going to pay you just because you somewhat know something.


You don't have to learn C, it can be Rust, but learning a low level programming language has tremendous benefits.

Of course, someone who'll just build his/her carrier around developing web apps, don't really need to learn C. However, if you have deep understanding of how computers work, how networking works, how the internet works - these will always benefit you. Keep you multiple steps ahead of others.

This is the only time you'll ever get in your life to dive deep into fundamentals. Once you enter career, your work will dictate what you'll learn to survive. Fundamentals will have to take a back seat. Growth will mostly be one dimensional.

Besides, you said you'll graduate in 2030. Who knows what any field will look like by then!

That's why, having deep understanding of the fundamentals and then being very good at something others are willing to pay for (e.g. full stack web development with React/Next) - is a much better strategy.


About reviewing

Reviewing and programming are completely two different things.

If you build a sizable software from scratch, you'll have to think about scope, architecture, software engineering, security, future development, testing, debugging techniques, maintenance etc. etc. i.e. the entire life-cycle of the software.

Merely reviewing will teach you none of that.

Also, most people don't get this, but from a purely programming point of view (other than some things I've mentioned above ... architecture et al.), actual reviewing (like really executing each line of code someone else have written, in your head and trying to understand what they intended to achieve and if they achieved that and only that without side effects) is order of magnitude more difficult than writing the code yourself.

So, what most people mean when they claim "review", is actually skim through.

If you review, I mean really really review - there's a lot that you'll learn from that process. But skimming through code generated by LLMs will get you nowhere. You can as well simply vibe code and leave the review process to another one or more LLMs.

Besides, even best models like Fable write horrible low quality code at times, you'll not learn much by reviewing those. You'll learn a lot more by trying to understand high quality open source human written software.

Collapse
 
robertpaschal profile image
Odinaka Robert Nnamani •

Learning C is less about preserving a syntax skill and more about gaining a cost model for the machine your agent is targeting. For ESP-IDF, I’d focus on memory lifetime, stack versus heap, interrupts, concurrency, and reading compiler/toolchain output; let the agent draft the boilerplate, but require it to explain the invariants and test on hardware. That combination keeps the review skill useful even as code generation improves.

Collapse
 
effessdev profile image
EffessDev • • Edited

Thanks a lot! 🙂 Can you share where you learned all of that? I once AI-generated an embedded C course on my website, aiming to learn exactly that. But it wasn't that good.

Collapse
 
build996 profile image
build996 •

The sentence in your post that answers the question is the one where you say you can't verify what the AI generates. On a microcontroller that matters more than on the web, because bad output usually compiles fine and then shows up as a watchdog reset or a panic backtrace an hour into running. Reading that backtrace and working out which buffer or task stack it points at is the part nobody can do for you without C. So I'd aim for "can debug it" rather than "can write it from scratch", which is a much smaller target than mastering the language.

Collapse
 
effessdev profile image
EffessDev • • Edited

Yes that's correct! "Can debug" is much easier than being able to write from scratch. But what I was afraid about is a situation where the AI can actually read the backtrace and work out what it points at, better than we can. If AI can do the task better than us, and in microcontrollers bad output is very bad, then there is no reason to let AI do it than we do it and introduce uncesessary problems, right? Also, what if AI can debug the code better than us? I am more afraid of a situation like that. While current models are unable to do it, they are improving really fast. While we can't predict what happens in 2030, I am really worried about it.

Collapse
 
technogamerz profile image
𝐓𝐡𝐞 𝐋𝐚𝐳𝐲 𝐆𝐢𝐫𝐥 •

Wishing you the very best of luck on your journey ahead. May it brings you immense happiness and success!

Collapse
 
effessdev profile image
EffessDev • • Edited

Thanks so much!! 🙂🙂

Collapse
 
technogamerz profile image
𝐓𝐡𝐞 𝐋𝐚𝐳𝐲 𝐆𝐢𝐫𝐥 •

Welcome! :D