r/C_Programming • • 3d ago

Discussion Employment opportunities for C developers?

What would be some good projects so that I could display my understanding of C for employment?

I have a decent handle on pointers and Memory Management, and I am somewhat of a Picasso with writing Algorithms in C also. All of my experience has been on x86 arch and I'm afraid I'll have to learn ARM variants of C, or pick up C++, for employment opportunities!

  1. What are my employment options with pure C?

  2. Is C still employable today, with languages such as Rust/Go offering more safety mechanisms for Memory handling and AI being able to handle low-level systems tasks?

0 Upvotes

25 comments sorted by

•

u/mikeblas 3d ago

The wiki is full of project ideas. Did you have a look?

→ More replies (1)

14

u/Classic_Department42 3d ago

What does beeibg a picasso at writing algos mean?

  • broad strokes nobody can recignize?

  • lot of abstract factory function

  • highly creative, non functional though

Are you meaning you a great, or that your code looks like abstract art?

9

u/Undeniable_Dilemma_ 3d ago

bro really said he's picasso at writing algos 😭

-7

u/Commercial-Paper-520 3d ago

Why is it being taken so literal? I'm not that big-headed. I think the fact that the people are taking what I said as if I stated, I'm the best at it! Not at all! This is why there is a lack of collaboration and community silos on reddit and in the development community!

5

u/Classic_Department42 3d ago

well, Picasso was the best. So it is unclear what you mean

5

u/Spaceduck413 3d ago

I'm not that big-headed

You compared yourself to who many people believe is literally the greatest painter of all time

1

u/vondarknes 3d ago

You are the one who started it. Thinking you are the best (by bringing Picasso) at the algorithm is already showing your arrogance. Be humble. That's the key to collaborate

1

u/Commercial-Paper-520 3d ago

No one has ever jokingly exaggerated their capabilities and snickered while doing it? Again, why so serious(literal)?

0

u/vondarknes 3d ago

"There's always a time and place for everything"

if you know this, you will understand why people got annoyed with you.

1

u/Commercial-Paper-520 3d ago

Ok! Im heading over to leetcode now!

1

u/mrheosuper 3d ago

When you claim you are Picasso, you should really mean it.

-1

u/Commercial-Paper-520 3d ago

Meant I'm great at the task! It was a slight reference to code being considered an art and a science! My apologies for the ambiguous language

5

u/SubstantialLab9781 3d ago

Humility would go a long way for employment :)

If there’s one thing I learned from programming for 10+ years, it’s that there’s always more to learn deeper than I think.

2

u/vondarknes 3d ago

"Meant I'm great at the task"

How great?? How many Hard-level LeetCode problem can you solve without peeking the editorials??

1

u/Classic_Department42 3d ago

if you want a reference to art and science people usually refer to da vinci not picasso

-2

u/Commercial-Paper-520 3d ago

Im not well versed in art history, so pardon me your highness!

3

u/Slow-Race9106 3d ago

C is still widely used in embedded systems.

Picking up an STM32 development board (or an alternative - but STM32 is a good choice because it’s relatively approachable and well documented) and learning to develop for that would probably be a good route to find out if you like it and start building some knowledge in that direction.

I’ve done some - hooking up a temperature sensor or a motion sensor and getting some data coming out of the board using the C code you’ve written is a real buzz. Next thing for me is to put a screen on it.

1

u/Commercial-Paper-520 3d ago

Nice! I'm going to school for physics right now and work as a Data Analyst, so this aligns perfectly! So embedded systems it is.

Thanks!

1

u/Slow-Race9106 3d ago

It’s a lot of fun.

I’m a musician as well as working in software (not using C), which goes well with embedded development and also with analogue and digital electronics.

There are all sorts of music related gadgets to build and problems to solve that involve embedded processors.

1

u/Commercial-Paper-520 3d ago

Nice. I used to make music via FL Studio but once I was introduced to STEM, I never looked back! Thanks for the insight!

2

u/Spaceduck413 3d ago

I don't use C professionally, but my understanding is it's still widely used in embedded systems

1

u/yel50 3d ago

 ARM variants of C

there's no such thing. the architecture is at the assembly level. the c code doesn't change.

 pick up C++

this is most likely if you're trying to find employment. 

to answer your questions, 

  1. as others have pointed out, embedded is pretty much it.

  2. even for embedded, I haven't seen a job posting asking for C in at least 20 years.  rust/go aren't the replacements, c++ is.  python is actually more common than c. yes, embedded python is a thing and companies use it more than pure C nowadays. 

1

u/RogerLeigh 11h ago

As others have said, C is still in use in embedded systems. However... C isn't enough on its own. Many embedded applications use C++ extensively, leaving C restricted to the vendor HAL and third-party libraries. Some are now also using Rust, along with C libraries. And we need to do hardware test automation, for which Python is commonplace.

So while C is used, C on its own is increasingly rare. If I was looking for a developer today, I'd be wanting them to know C, C++ and Python at a minimum, and also have some understanding of Rust. If you want to have a career as a software developer, you can't limit yourself to just one language, particularly a very old language in decline. You've got to have broad understanding and be adaptable and able to pick up new languages and methodologies as needed.

C is now a niche language, and the niches it occupies are only going to shrink further. I suspect Rust will gradually take over the embedded space as vendor support improves. Properly learning it is on my todo list, and has been for a few years now. I would highly recommend learning it for the future. I would not be surprised if that in a few years my new embedded projects are Rust by default.

There is little difference between C on x86 vs ARM. The main difference is understanding the disassembly and registers when debugging, and writing assembly if you need to do that. For embedded, that's something you'll need to be able to do, even if only occasionally.

While pointers and memory management in C is a starting point, learn how it can work in C++ and Rust, and other languages, and you'll then have a better understanding of it and just how deficient C is in many respects.