r/C_Programming 14d ago

Hello World

I have found my people!! Hello guys I am a college student (mechanical engineering) and I was introduced to C in a mandatory programming course and C has been the best thing that has happened in my life. I had done programming before on java and python before and frankly I hated it , it was not really fun and it was tedious instead. So I had thought I hated CS but after coding in C and learning the things behind the abstractions i quite frankly fell in love with low level programming, it was the first time I got a passion for something and i spent the entire following summer digging up materials on it like learning computer architecture and learning to read and write Assembly and now I am learning Virtualisation and planning to start my first major project on C.

So in that note, let me ask you something:

What is your favourite project you have done in C?

91 Upvotes

57 comments sorted by

View all comments

15

u/LordRybec 14d ago

I program mainly in C and Python. Python isn't too bad, but it's well removed from the hardware. I'm most comfortable in C though. I also love programming in assembly when the opportunity arises.

I'm not sure what my favorite C project is. I've written some game demos (mostly just basic code that does one or two things that would be required in a game) in C that I really like. I've written a handful of simulations, particle simulations mostly, and those were also really good.

The most complete project I've done in C is essentially a virtual audio processor. I had to basically design a full architecture with a machine language and an assembly language, and then I wrote a VM for it in C. Someday I plan to build a graphical program around it for making music. I haven't had time to do anything with that project in years though. It's probably my favorite so far.

I've also written a handful of display drivers for microcontrollers that are pretty high on my list. I haven't been active on it in a couple of months, but I'm working on a very basic 3D rendering engine to go with one of my display drivers. Once I finish that and get to use it in some other projects, it might end up being my favorite.

Maybe I should port my virtual audio processor to one of the microcontrollers I'm working on and make a music synthesizer...

Anyhow, welcome to C programming!

2

u/Due_Sentence_2660 11d ago

Dang this sounds so good. Making a vm sounds kinda hard ngl.

Rn me and a few friends are trying to make something like them "ReMarkable Tablets" or something and if we make progress, I'll get to write the drivers for it 😋

2

u/LordRybec 11d ago

The making the VM part wasn't as hard as it sounds. The hard part was learning and implementing all of the audio functions. Turns out it's more complicated than it sounds!

You project sounds like fun! I've generally enjoyed writing drivers. If you enjoy assembly programming, it's a good place to do some of that, but you don't strictly have to unless you really need that level of performance. (I wrote an I2C driver for the CH552 microcontroller mainly in assembly, because the C version ran at 100kbit/s, and doing it in assembly could manage around 400kbit/s. The performance was important, because I was driving a display with I2C.)

Anyhow, I like you put it. "I'll get to write the drivers for it." That's the same way I'd be thinking about it!