I have learned python and SQL and want to start with open source contributions, is the knowledge of python enough (along with git) to contribute or is there something else as well that I need to learn? Where can I find projects as a beginner to kick start my open source journey?
The is no general recipt, every project is different:
Choose a project you like, choose a project you have some knowledge about the techniques and languages used, choose a project you find useful or joyful yourself.
Look at how things work in that community. Look at the issue list and start with submitting fixes for simple problems, often marked as 'beginner', 'good first issue' or similar. Ask, and submit your fix for review in the preferred way in that community. Respond to feedback and implement suggested changes. Rinse and repeat. Always mind: no-one owes you anything, also not when you submit patches or do other stuff. Be kind
Every project is different. So before you can contribute to a project you need to find out a couple things:
- What open source license do they use? Do you understand what it does and does not allow people to do with your code and are you OK with that?
- Do they even accept outside contributions? There are lots of projects maintained by companies which are published under open source licenses, but the company does all the development by themselves and does not bother with external contributors.
- If they accept outside contributions, do they require you to fill out and sign a contributor license agreement which clarifies the copyright and liability questions of your contributions? Where and how do you need to send it?
- What is the process for getting your change into their project? Some projects just accept pull requests from random strangers on GitHub, but others might want you to contact them first on a mailing list, Discord, Slack, IRC channel, forum, weekly Zoom conference or whatever other communication medium they prefer where they want to speak with you about your contribution first.
- What are their code conventions and style guidelines? Projects with lots of contributors can often get messy. One countermeasure for that is to have some guidelines how code should look and expect all pull requests to adhere to them. When you didn't read them, then your code will probably not measure up to their standards and will likely get rejected.
You might now wonder where you can find all that information. Many projects contain a file named
CONTRIBUTING which explains all that. And when you are lucky, it might not be totally outdated. Others might have a section about this topic on their website. But again, every project is different.