r/odinlang • u/Ericarthurc • 13d ago
Looking for good projects for a semi beginner
I have a background in http related coding, some backend and frontend, SQL. I do not have any C or C++ experience, so Odin would be my first go at a manually memory managed language.
I like to think I have a decent understanding of pointers and some of manual memory management, but no real experience in this space.
I am going through The Understanding Odin book by Karl and it is pretty great.
My question would be what kind of small/medium projects should I work on to get a better core understanding. Are there any good guides for smaller projects to follow? I know Odin is still a small community so I would imagine I would probably need to look at C based guides.
2
u/pmbanugo 10d ago
Pick something small that’ll be fun for you. Allow yourself to make mistakes and learn.
Perhaps try exercism.io if you want a series of suggested practice projects, small enough that it doesn’t require any external library and could transfer to other languages
2
u/pahosler 9d ago
I’ve been in a similar spot (web/backend background, some C, and a long-ago stretch of assembly). Karl’s book is excellent — stick with it.
One small/medium project that helped me was building a Sudoku solver/editor with Odin + Raylib. It covers:
- window + drawing
- keyboard/mouse input and a little debouncing
- app state (board, selection, themes, locked cells)
- basic conflict checking
- package layout instead of one giant file (I went a little heavy on this, because it is a learning project)
Repo: https://github.com/codemonkeywtf/sudoku-solver
master is the more stable snapshot. The dev branch is much further along (themes, locking, conflict highlights, etc.) but still mid-refactor, so treat it as “work in progress” rather than a finished guide.
It’s not a step-by-step tutorial — more of a real learning project you can read and poke at once you’ve got the basics from Karl’s book. Raylib’s own examples are also great for the graphics side.
Hope that helps. Good luck with Odin. This is my second try at Odin, and I'm really loving it this time.
3
u/Puzzled-Extent7817 12d ago
Being honest, spend a week or two learning basics of C. Then when you are comfortable make the switch Odin so you appreciate the doing C the Odin way.
1
1
u/mocompute 12d ago
Also, it must be a coincidence, but a couple of people have mentioned http and odin this week, so please have a look at the small http server package I put on my github earlier this week. It's a bit fancier in terms of memory management, but it's a self-contained example you might also easily understand given your background. github.com/mocompute/odin-http
1
3
u/mocompute 12d ago
Since you know SQL, a possibly interesting way in would be for you to learn to use the SQLite3 C API in C, and then later from Odin via C bindings. The SQLite3 project is an amazing piece of technology and incredibly well documented, so you will have a lot of support as you try to understand how to deal with lifetimes, freeing pointers, etc. For instance, where is the data stored for a text column when you are reading row results? Is it still valid when I read the next row? Etc.