Comment by πŸš€ stack

Re: "Suggestions for first project"

In: s/C_Programming

First and foremost, especially since you've stated you are familiar with coding in general but just don't know C, your choice of project is very individually depends on what brings you joy! C is a pragmatic language used to solve problems, for the last 50 years. It's not exceptionally pretty, ugly, or complicated.

It can be confounding, and your early experience may alter how you think about it. My first experience was with Borland C on a Compaq -- spending a day unable to compile a simple program -- because I did not have a carriage return after the final line. The error message was generic and not helpful. This was not a C problem, but a compiler bug, and compilers are incredibly good now, even providing suggestions when you mis-spell an identifier...

That experience had shaped not just a multi-decade hatred of C, but my entire career! I wound up writing many interpreters and compilers to avoid C. Pretty much all of my coding activities (some extremely satisfying, and some profitable) were done with my hand-crafted tools. But in the last few years I've learned to really appreciate and even enjoy C for what it is -- a ubiquitous, concise and proven language that does not get in your way (much) or try to save you from being an idiot.

So pick something you like -- a game, a network tool as @ingrix suggested, a graphics 'demo', or whatever you would find _fun_ working on for a few weeks, and run with it.

Finally, I would suggest not using a fancy IDE, or even mess too much with make, but keep your code in a single file. I know it's not exactly the C way, but trust me, it will save you a ton of frustration and confusion until you are comfortable with the system and have a need to compartmentalize functionality into different independently compiled units, and dealing with include files and linking.

You may never need more than a single file! I built a (what I consider a really good for my purposes) gemini server in a single file of ~500 lines. If you want to take a look, it's at:

β€” https://tildegit.org/stack/fornax

Final thought... I became a much better C coder after a few years of Common Lisp!

πŸš€ stack

2025-12-18 Β· 5 months ago

3 Later Comments ↓

πŸš€ argyle Β· Dec 18 at 22:50:

Something that solves a problem you have is always a motivation to finish.

πŸ’½ Retro Β· Dec 19 at 09:25:

It's been a long while since I've done any, but I enjoyed bare metal C on microcontrollers. You get a real feeling for C's strong points and a greater appreciation for how (simple) CPUs work.

I remember that Arduino (or really any microcontroller development board) could be programmed in C using open source toolchains. So maybe a project with one of the kits you can buy?

πŸ“» Christopher Β· Dec 19 at 18:20:

@stack makes an excellent pointβ€”do what brings you joy. I personally find joy in reimplementing existing software and possibly improving upon them. I think it's because I like to prove to myself that I can, and I also learn how stuff works by doing. (I also enjoy recreating software for other platforms, sometimes esoteric platforms, than the original was made for.) But you may not find joy in it, and that's OK.

What sort of things are you interested in? Networking? Gaming? Let your interests guide you. But whatever you do I recommend starting with a simple enough project that you can complete it in a reasonably short time, where "reasonably short time" depends on your attention span (mine can be as short as a weekend for some projects).

Original Post

πŸŒ’ s/C_Programming

β˜•οΈ dce:

Suggestions for first project β€” I have always had a great deal of respect for C, and I would like to start writing in it. However, while I am skilled in other languages, I basically don't know any C off the top of my head. I find that I learn better and faster by attempting projects, rather than working through a book ir taking a class. For example, to learn Perl, I am working on a basic disk image writer that's coming along nicely. So, what do you think might be a good idea for my first C...

πŸ’¬ 10 comments Β· 2025-12-17 Β· 5 months ago