stosb

wearer of programming socks

  • she/her

mid 20s | bisexual | programmer | european


profile pic: a picrew by Shirazu Yomi
picrew.me/en/image_maker/207297
i use arch btw
xenia the linux fox -> 🦊🏳️‍⚧️
the moon
🌙

Osmose
@Osmose

Look, it's difficult to get into open source. It always has been, but it appears to have gotten harder over time as good first bugs become less and less common. You might look at a project like Django and be unable to find anything suitable for a programmer at your level.

But real life isn't an RPG and you don't only become stronger when you level up—any experience gained can be helpful. If you're struggling with or intimidated by the idea of getting into open source, start by just getting projects to build at all.

Here's a fun exercise: Go download the curl source code. Read GIT-INFO.md and try to get it to build. If you're not familiar with the tools it mentions, look them up. Figure out what they do. Then install em and try again until you get curl working.

Once you've got curl working, try to figure out how to add a new flag --eggbug that prints out "EGGBUG" at the top of the output. You'll probably have to do some text searching for an existing flag like --help and then trace through the code to see where it gets pulled in. You might get stuck—that's okay. Ask someone for help!

So many people think the first step of open source is finding the exact right library with the exact right bug and claiming it so no one else is working on it too. That's backwards—first you need to prove to yourself that you can actually make any change to the project, and the process of doing so itself will teach you a ton.



You must log in to comment.

in reply to @Osmose's post:

I don't know much about reverse engineering, sorry. I have built an SNES emulator but it depends on what you mean by "emulator dev".

Like you said, if you just want to get into modern day emulator dev, your best bet is to find a project like Dolphin and get it building, and then start exploring around docs and the codebase.

An alternative route would be to actually start by making games for a platform you're interested in emulating. Most consoles past the SNES are probably best approached this way as you'll need to have a good fundamental understanding of how the hardware is used by the software running on it before you start implementing the hardware behavior yourself.

If you just wanna make, like, your own Gameboy emulator from scratch, that's a great classic project and one that's actually pretty approachable if you have general programming experience. For Gameboy in particular a great jumping off point is https://gbdev.io/

I've found that this works fairly well for "first week on the job and nobody seems to want to teach me how the system works" situations, too. On desktop programs, my go-to project was to find an important button and have it skitter away from an approaching mouse pointer...