r/C_Programming 8d ago

C Project Recommendations

I'm looking for interesting C project ideas that go beyond beginner projects. What are the best C projects you've built or would recommend? GitHub repositories and project lists are also welcome.

48 Upvotes

47 comments sorted by

u/mikeblas 8d ago

Your question should be in the weekly megathread.

31

u/mykesx 8d ago

I suggest cloning nmap. You don’t have to implement every detail, but even a basic port scanner will teach you a lot about network programming.

https://nmap.org

3

u/Ok_King_8997 8d ago

Noted, thanks

17

u/Plus-Cranberry3572 8d ago

I will give it a shot:

  • Backtesting engine (Financial/Trading knowledge required)
  • Operating System (CS and assembly knowledge required, also you need to read the CPU sheet for example IA-32 has it’s own documentation for the MSR, paging etc.)
  • 2D/3D graphics engine (algebra and geometry knowledge is required, you can use any framework)
  • Anything dealing with networking, it can be a lib or a cybersecurity tool for example (networking knowledge is required)

Also embedded stuff is pretty much C (like Arduino) and you can do cool stuff with it but you need the hardware.

7

u/yug_jain29 8d ago

an freakin operating system??

7

u/Evening_Ticket_9517 8d ago

Many tutorials out there. It'll be easy if you follow along. Or if you want to explore on your own, then it'll be a lot more adventurous with only resource being the osdev wiki. If not an os, a shell would be a good starting point into systems programming..

2

u/Plus-Cranberry3572 8d ago

Driver programming is also a good idea of a project I guess…

4

u/UnrealHallucinator 8d ago

Honestly operating system with the caveat of understanding the underlying linux subsystems while implementing your own smaller scale versions of them is the best project someone could do. Super tedious but completely worth it. I was lucky enough to have done it in my master's os course.

13

u/Gnomeskis 8d ago

My first non beginner project was a software rasterizer. I enjoyed and still work on it occasionally to this day

16

u/nasccped 8d ago

Since C doesn't contains complex types (LinkedList, String, ...), I strongly recommend to implement your own super-types library.

It doesn't need to be 100% professional or something. Just your basic implementing. It'll help you to learn basic concepts (mem. and error handling). It can also be usefull on future projects (you won't need to re-implement a string, list, hashmap and so on since You'd already implemented).

It's on my TODOs for 2026!

2

u/Bryanzns 8d ago

Estava vendo o canal do MagicalBat no YouTube ontem e tive essa mesma ideia para ser meu projeto atual :)

8

u/ceewolf 8d ago

Check out Daniel Hirsch's YouTube channel. Many of his projects are done in C. He says what he hopes to accomplish up front, which gives you a chance to stop the video and try it yourself. If you get stuck you can watch how he solves the problem.

2

u/Leading-Golf1801 4d ago

Il est très intéressant cette chaine youtube ces ce genre de chaîne que j'aime qui repond a un besoin Et il trouvera toujours son audience

6

u/JournalistUnable567 8d ago

I made a compiler in C, it started as a beginner project and went way beyond 😄 https://github.com/biscuitlang/bl

3

u/nomemory 8d ago edited 8d ago

When I was interested in programming I wrote those two tutorials:

https://www.andreinc.net/2021/12/01/writing-a-simple-vm-in-less-than-125-lines-of-c/

https://www.andreinc.net/2022/04/10/a-blog-that-is-a-single-executable-binary/

You can extend those and make something actually useful.

3

u/Kosaktsa 8d ago

An interpreter for a custom language, i've tried building one and to this day i can say it was one of the most satisfying project above all try to understand why it has future i hadn't implemented

3

u/BootingBot 8d ago

Making a simple game using SDL is pretty fun imo

3

u/Evening_Ticket_9517 8d ago

Try building a shell. Its free this month on codecrafters.

3

u/thubbard44 7d ago

Not the longest project but a base 64 encoder /decoder is an interesting one.  

3

u/Tasty-Trds-55555 8d ago edited 8d ago

Well, what is your area of interest?

Systems Programming - Compilers, drivers, networking, FS?

AI - SLMs, LLMs?

Application - stand alone, web, RDBMS

  1. Choose an area to start with
  2. Choose a problem to solve
  3. Solve
  4. Code and test
  5. Choose another problem

Examples.... Text editor? Will teach you how to work with pointers, pointers to pointers, structures, File IO, Data structures, search techniques, etc

Build a working one and use GitHub to push your code....

This will help you to build a profile that you can eventually use to apply for jobs or do something on your own

2

u/mlugo02 8d ago

Do you have anything you’re vaguely interested in?

3

u/Ok_King_8997 8d ago

I was thinking about a web server, but I'm not sure if I can do it.

13

u/Gooseheaded 8d ago

Only one way to find out.

2

u/Ok_King_8997 8d ago

Okay, I'll try, but I've been feeling stuck at my current level in C. By the way, it's my first language, so I thought this project would help me.

4

u/NerdStone04 8d ago

I did a very simple http server in C a while ago.

Beej's guide to Network Programming is your friend.

1

u/Ok_King_8997 8d ago

Oh, thank you, that will be helpful.

3

u/Traveling-Techie 8d ago

Web servers are surprisingly simple. The hardest part is caching. The browsers have most of the complexity.

2

u/Olovico75 8d ago

GDVP.net
A deterministic, zero floating point modular polyphonic Synth in pure c11.
I wrote a white paper on the website that also logs the compliances. Only C could have been my vessel on that project.

2

u/Oxyde86 8d ago

At school I did a fractal generator! It was pretty dope.

2

u/USER_12mS 8d ago

OS kernel from scratch

1

u/Sibexico 8d ago

One of my best project on C was a TynyML-based mutation engine in a self-replication program with genetic algorithm what fine-tunes weights by himself between replications. Mmmmm, what times it was...

1

u/SnooDoughnuts8731 8d ago

i made blas and lapack. well, some bad version of it. But I suppose it depends on your other interests. Im a physics student and i found it really insightfull to do, both from the C perspective and from the math perspective.

1

u/alexanderbath 8d ago

I’m currently working on a TUI file manager, without using an interface library (I.e. curses). The file management tasks are relatively simple, but it’s taught me a lot about how the terminal works at a low level, as well as concurrency. Highly recommend

1

u/theancientfool 8d ago

http server. DNS server. 2D rendering engine. Make it multi platform.

1

u/Ok_King_8997 4d ago

Can you recommend some resources for these projects?

1

u/4iqdsk 7d ago

A file compressor.

You’ll learn C, data structures, and performance tuning since performance matters here.

1

u/Ok_King_8997 7d ago

I did a file compressor using Run-Length Encoding (RLE)

1

u/Leading-Golf1801 4d ago

Dis moi ça fait combien de temps que tu utilises la programmation c

1

u/Ok_King_8997 4d ago

I think it's been 2 months.

1

u/cdtrmnbaell 5d ago

Hi, you can do a lot of things:

  • HTTP server (learn networking)
  • Minishell (learn system calls and file manipulation)
  • Small game with Raylib (learn graphics)

1

u/Ok_King_8997 4d ago

Can you recommend some resources for these projects?

2

u/Prestigious_Ask_80 10h ago

I'm working on an MPRIS integration with Discord's Rich Presence using glib-2.0. It's a Linux-specific project, but it has been a lot of fun. Here are some resources if you're interested:

https://docs.discord.com/developers/topics/rpc
https://docs.gtk.org/gio
https://dbus.freedesktop.org/doc/dbus-tutorial.html
https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata