First day into Hacktoberfest! Yay! And I'm already freaking out about it! 🤪
It was fun publicly committing to make four OpenSource contributions in the next month, but then reality kicked in.
For beginners, it's really hard to find issues they can work on. Especially if it's their first time trying to get into OpenSource. Thirty days is not a long time for
- finding a project that picks your interest
- learning the codebase
- make contributions
- have them approved.
As someone that never made significant contributions before, I feel I have to think outside the box if I want this to be a good experience and become part of my life as a programmer even after the event.
As a Software Engineer, I want to learn as much as I can about Containers and DevOps, so the ideal project for me would be something related to Docker or Kubernetes or any other related software like Prometheus or Helm.
Problem is, I am not a Go developer, and the entire ecosystem is written in Go! So even though I'm a hardcore user of these tools, I cannot possibly think that I'll be able to make four significant code contributions in one month. 🤯
Of course, the logical way is contributing to code, although it's not easy to start with. It takes skills that cannot be acquired in a few days, and you don't want to be spamming maintainers with Pull Requests that are half baked (always respect other people's time, that's my motto!). So I can think of these additional ways beginners (like myself) can contribute successfully. Let's dive in!
There's always a need for documentation. If you like writing and you're detailed oriented, this will be a great way for you to contribute.
When you search for issues try to click the filter option and search for labels that contain the word documentation or docs and see if there's anything urgent that needs attention. Maintainers will welcome a good piece of documentation any day!
Have documentation for breakfast, lunch and dinner. Pick a topic you know very well, and go through the documentation pages for that topic. I can guarantee you'll find something you can improve using the knowledge you acquired with years of hard work.
How was your experience when starting out with the project? Did you find everything you needed in the
README.md file or you had to figure things out by yourself?
If the latter is true, can you improve the README file for other aspiring contributors?
Every awesome OpenSource project needs graphics to use in their:
- Documentation pages
- README files
- the list goes on...
If your passion is creating graphic elements, reach out to the project maintainers and ask them if they need new icons or maybe design a funny 404 or 500 page (it is always nice to laugh with Internal Server Error pages like the one above 😛).
Everyone is special, yes, you too! Just because you're alive you must be fluent in at least one language. Use your gift! Search for translation issues, create content in your mother tongue to help the project expand its reach and get even more people interested in the mission!
Who doesn't love a good tutorial? Do you love teaching others how to do things? This can be the value you bring to the project.
Record a video to show how you installed the software in a particular operating system or showcase one of the hottest features to encourage people to "star" ⭐️ the project. These videos can then be embedded in the
README.md with Markdown as I did in one of my repositories
You might find that the project you're interested in has a separate repo on GitHub to store configuration examples or templates to help people get started. See for example Helm Charts or AWS CloudFormation Templates!
Do you have work experience with the technology? Look back at your past projects, see if there's anything reusable you can share with the world! (It's a good idea to first check with your employer if you're allowed to do so 😅)
Interest Groups are most likely organising weekly meetings to discuss new bugs, collect ideas, plan future meetings and so on.
You can actively participate in those meetings and offer your services to summarise the points discussed and distribute meeting's minutes via email, IM or even include them in the repo's Wiki pages!
Developers can't test features with every existing operating system or mobile phone. Keep a close watch on new feature releases or bug fixes and be eager to test them yourself. Then reach out to developers and provide your feedback, if something is not working as planned you can raise new issues.
If you have to create a new issue, go the extra mile and include plenty of information to reproduce the bug, be proactive and genuinely helpful! Help assess other people's tickets, maybe no development is needed and they are just looking for a helping hand.
Who knows, maybe with a bit of time, you'll be in charge of triaging and be the one deciding what are the priorities for the project, isn't that awesome? 😎
...if you are feeling stuck in your OpenSource journey, I hope this article has thrown some fuel to the fire 🔥 I know it worked for me while I was thinking about it and I'm going to start tomorrow with a different approach and even more excited than today!