Hi! My name is Nitish, currently working as a contributor in Kubernetes(K8s) and a couple of more Open Source Projects. I believe I'll be a community member of Kubernetes soon, Fingers crossed. So, by the means of this blog, I'll be sharing my exact story from thinking 'How to do it?' to 'actually doing it'.
Fast forward to today(11/06/2022), a couple of PRs have been merged while some are waiting to be merged.
So, let's start.
The first time I came to know about Open Source and especially K8s, Kubecon, and remote jobs, it made me so excited that there are a whole bunch of things that are yet to be explored in the tech field other than doing DSA, problem-solving, only. This was the month of February 2022 and I was learning Java, C, Git-Github, and C++ (Now, I know learning multiple things is not so beneficial in long run, but I was exploring since it was my first year of college).
I joined the K8s community for the first time in April 2022 and couldn't understand where to actually begin. There were a lot of channels like sig-docs and many more which I was unaware of their roles. There were meetings happening and a whole bunch of other things.
So, I asked the community members 'How to actually contribute to Kubernetes' and sent it to almost every group I had there. Sorry for this, Kubernetes team. Finally, I received some links to contributing guide along with a lesson to not spam the same question on every channel since every channel has some different role.
Even after reading some documentation, I didn't understand completely what the project is actually doing, and how to start contributing, and thus I stopped becoming active in the community and thought of skipping contributing to K8s with an 'excuse' that I'll contribute to it when I'll learn about K8s completely.
Please don't wait for the perfect time. You can start contributing to any project via non-code contributions.
Now, this was the time around May 2022 when I started learning about DevOps. While I was going through the course, I used to get this thought of trying to contribute to Kubernetes every single time.
So, along with learning DevOps now, I again shifted back my focus to K8s and tried to see if I can contribute in any minor way even. That's when I engaged with one of the K8s community members named dims.
The Turning Point: I interacted with dims and started sharing the challenges I faced, which restricted me from contributing and understanding a project. And here's when I received one of the most important lessons from dims.
1. Do your homework first:
As a complete newbie to the community, I'd ask simple doubts to the community members whose answers were actually lying in front of me. Dims introduced me to a better way of understanding a project which I believe most of the contributors around the world follow.
- Don't start coding on the very first day.
- Read the basics of the documentation. Finding important information at right time is a skill.
- For 7-10 days, Observe how the PRs are being raised, and issues are being resolved, go through the code changes, and find out whether the community is active or not.
- Learn while contributing to the Project.
Do your homework first means to actually try out the things yourself before asking. I still remember dims sharing one of the tools with me which helped to know the exact file location of the word it's present in. After trying it, I'd ask him if this tool works for knowing the exact file location of the code sample. The answer was 'Try it'.
2. Learn how information is structured:
It's a very important step to gather the correct information at right time in order to understand a Project. That's why it is referred to as a 'Skill' even. Most Open Source Projects will have large documentation, explaining the Project (which is a good sign), but gathering the required information at right time is important else you'll get confused.
3. Teach and Learn:
And this is the last step, Learn while contributing and teaching to Folks. Similarly, Learn from them, Teach to Folks and let these steps be continued.
Fast forward, I applied the lessons I received from dims and start looking at Open issues, started attending meetings(which tbh I didn't understand anything when I joined for the first time), and finally fell down, understanding Git-Github again and again, I raised PR which eventually got merged after applying some changes requested.
Please remember to have a good understanding of Git-Github before contributing. My initial PRs which were being closed were due to a lack of knowledge in using Git-Github. Also, Start contributing to Projects and follow the lessons which have been shared above, and finally Learn while Contributing.
I hope you enjoyed reading this blog up to here. If yes, I'd love to connect with you guys on Twitter❤️