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.
My personal dilemma with Hacktoberfest
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. ðĪŊ
Creative Ways to Contribute
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!
Documentation & Knowledge Base
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!
READ, READ, then READ MORE!
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.
README.md
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?
Graphic Design
Every awesome OpenSource project needs graphics to use in their:
- Documentation pages
- README files
- Websites
- T-shirts
- Stickers
- 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 ð).
Translate
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!
Educate
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
[![K8s Autoscaling](/media/K8s_Autoscaling.gif)](https://raw.githubusercontent.com/mcastellin/udacity-operationalize-microservice/master/media/K8s_Autoscaling.mp4)
Some projects have example 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 ð )
Organize Notes
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!
Test & Bug Report
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? ð
In conclusion...
...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!
Best of luck Developers!
Thanks for reading! And don't forget to follow me if you want to see more content like this!
Top comments (20)
Hey everyone! Lisa here, and I'm a product designer here at Forem. If you're working on projects off of our forem/forem repo, we wrote up some front-end resources for you as you navigate our design system: resources doc for front-end dev
Happy hacking! ð
Hi Lisa, thanks for your inputs in the discussion!
1. finding a project that picks your interest
This is the hardest part for me. I've been a developer for more years than I care to remember, but really struggle to find a project I am actually passionate about (except GitLab, but for obvious reasons it's not on GitHub, and therefore not part of Hacktober).
I think part of that comes from not using enough applications. Or the ones I do are in languages I've never worked with at any depth. Yes it's a great way to get introduced to new ways of working, but it always feels intimidating.
I hear that, Gary! It's been the same for me, but don't give up if you find an interesting project keep working the repo on every angle!
I think that it's better to be collecting meeting notes for a project you love rather than doing easy coding on a random project just for the sake of contributing!
My biggest issues is that I can (and do) use GitLab for everything that I would otherwise have separate systems for. It kinda limits my exposure to other systems somewhat.
Maybe it's not for this thread, but what is the biggest advantage of using GitLab over GitHub in your opinion? I always wanted to see if it's worth the hype they've built around it
tl;dr
The vast amount of features, all in one place. You don't need separate tools all over the place.
The (shortened) long answer
I've written a full blog post, the full long answer, about why I use GitLab. It essentially comes down to the fact that you get so many features for little or no cost. GitHub is becoming increasingly more competitive, but I made the move back when you couldn't have free private repositories and $7 a month only got you 4 private repositories.
But having somewhere that has:
Oh, and you can host it yourself for no extra cost.
It's a very interesting perspective! Nice article by the way, very detailed oriented with the feature comparison!
To be honest, I tried GitLab with just one private repo for fun, but when you put it in the perspective of using it for teams I can see the value of having the whole package in one place. It's a pain using Github for code, then Jenkins, then Jira, then move to the AWS console, and so on..
Thanks a lot for sharing the article!
Thanks. I need to look at Github again to compare GitLab CI and Github actions
These are great ideas! You could also learn Go. It's pretty fun!
@perpetual_education I canât argue with that logic ð
Thanks for the ideas! This is my first time participating in Hacktoberfest and really needed some help with ways to contribute. This article made my day :D
Same here Brayden!
Iâm glad it helped! Best of luck with your contributions ðĪ
Completed the Hacktober fest I and I fell it's a great initiative
Cool! Great work Rohit! I'm on my 3rd PR today looking forward to completing the challenge!
What swag are you going to choose? T ð or tree? ðē
T ð
As a beginner, I guess it will boost me up
How was your first day into Hacktoberfest? You can share your experience here in the comments!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.