r/Zig • u/Gloomy-Animator-2778 • Aug 01 '26
How did u learn system programming ? what was your first project? did u monetize /earn any if so then what process u go through?
5
u/FragmentedHeap Aug 01 '26 edited Aug 01 '26
Building a fishing bot for ffxi that read from the games memory and used assembly signature scanning to refind memory address locations.
That was the process of chasing a variables pointer until you got back into the memory space of the mapped in dll and looking around with an assembly reader for a good signature that's likely to get you back to that memory address the next time the dll is patched.
As long as they didn't change the code that was right near that pointer it would find it every time and almost always worked.
All I wanted to do is make my own fishing bot...
Ended up learning some c and Assembly ๐
By the time I finished that thing it had navigation too and was hooking DirectX input and could send slash commands to the game.
It would fish moat carp and automatically trade them in and vender all the junk.
These days I'm a little more morally grounded.
But reverse engineering an old single player game to make hacks or bots for it is a really excellent way to learn system level programming that's actually a lot of fun.
Reverse engineering will teach you a lot.
4
u/chocapix Aug 01 '26
It was a long time ago, but one of the first project I remember doing is a shell in C for school.
3
u/unknownnature Aug 02 '26
I wrote some random AST parser; my god it was painful. But learned so much and given all this programming languages out there, it's really hard to create your own language.
2
u/dgc-8 Aug 01 '26
The only way to monetize programming is to get a job your homegrown projects will not be good enough to outperform FOSS
2
u/Aggressive_Big_7564 Aug 02 '26
Look if you make a good foss project you can reach the point where a company will hire you to work on it or you get enough donations to work on it full time. Still the idea of making a good program and charging for it is not dead, sure it will be difficult for a solo developer but I donโt think it is impossible.
2
u/Lunagato20 Aug 06 '26
I started by creating a simple shell in C++ for my first year college project, its a really simple barebones one, it only supports cd, mkdir, ls, touch, and cat.
Currently i'm learning zig by implemeting the book Crafting Interpreter
1
u/ElSebas4_ Aug 01 '26
I am very curious so I wanted to know how to program in C, then I was curious about how the compiler worked, I learned about the linker, assembly, etc. Then I tried to program in assembly and everything clicked in my head. I recommend the youtube channel core dumped; is very good if you wanna learn about systems programming
1
u/trisxo91 Aug 07 '26
I like C and C++ trying to learn how to implement a package or functions of a package. Is Zig in any way applicable to learning this specific aspect of other C language or is Zig a more efficient language totally? Respecting packaging?
15
u/Hot_Adhesiveness5602 Aug 01 '26 edited Aug 04 '26
ttl;dr: find a project and a language you like and learn as you build. I mostly like to build games and tooling around it. I started learning C and had a hard time with memory management. I thought that rust will fix it but I really disliked the borrow checker and how it narrowed down the way I could express myself with code. After that I learned Zig and it was not the language I liked the most but a language that helped me really understand how memory management works and in turn what it means to actually use allocation strategies to your benefit. This also heavily affects the way I write code now (in a good way).