I can code, but I never found my way into any project. It’s hard to explain, but I’m sort of a dysfunctional human being.
I always loved open source, and back then, I wanted to be an open source developer. I tried some things here and there, but they only became abandoned personal messed up projects or archived github repos.
I believe I could be a competent contributor to some project if I had some guidance, so I thought about asking for help.
- Find a project that you like that has something that you want to improve
- Take a look at the repo, see how many people are contributing, who contributes the most, is there a roadmap and changelog and read it, are there release numbers or not, is there a guide for contributing, has someone already attempted to solve your issue?
- Ask devs if it is a good first issue and guidance. File an issue if it is not already there, discuse it. If they use another plataform to discuse new features, ue that.
- Clone the repo, compile the code before doing anything, and try to implement the feature / fix the bug
- Look at the commit format of previous commits and use it. Group related changes to the same commit. Write informative commit messages. Make a pull request with all the necessary information about it.
Use common sense, don’t be afraid of asking, don’t be a dick.
Maybe the project you would like to contribute does not want help. Don’t take it personally, either fork it and do your thing or search another project.
Don’t forget that you can also contribute documentation or data in some projects (for instance OpenStreetMap)
Thank you for your comment. What a coincidence that you mentioned openstreetmap, because adding data became like a hobby to me. While it’s some form of contribution, I wanted to go deeper into some project, be a developer.
It’s hard to explain, but it’s mostly the social aspect of it that I struggle with.
Does any software you use regularly have bugs that need fixing? Bugfixes are a great way to get started. See if the project you want to work on has a bugtracker, pick one and try to fix it. Depending on what you’re working on, it can take time to set up a development environment in order to do the work the first time, but after that it gets easier.
Most software I use feel too big for a starting point. I tried solving bugs for a smaller project, but my pr took literally 4 years to be approved. In others, I tried to look into some issue, but they were fixed before I finished my attempt.
It all turned into some sort of barrier to get started.
I’m the developer of NeuroAnalyzer.jl - it’s a toolbox written in Julia for analyzing neurophysiological data (EEG/NIRS/MEG, etc.) for researchers in psychiatry/neurology/neuroscience. If you would like to join an open-source project - your help is welcome and will be appreciated - look for bugs, expand documentation, unit tests, help with tutorials.
ATB,
EB