Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
Most likely, you stumbled upon this while searching fanatically through Reddit threads, Quora answers and other blog posts detailingââââHow to get started with contributing to Open Sourceâ. Well, this post is no different from them.
No wait, come back! Itâs not a copy. Itâs just that you might still be feeling bewildered about contributing, even after reading those blogs. This post gives you helpful (presumably đ) insights on my journey of getting started with contributing to OSS.
Most likely, you would be feeling that you are not fit to do this. Itâs fineâââReally. I was in the same position some weeks ago and felt exactly same.
Iâd been trying to contribute to open source for around a year (ever since the notification of GSoCâ17 came out!).
And one thing I can surely tell you irrespective of your background or experience so far isâââItâs tough to get started.
You have to first break through that âimpostorâs syndromeâ. If you are unclear of what it may mean, Google it! thatâs the first and most important advice you need before getting started.
Then, you have to find a project you want to work withâââWhich is as intimidating as it can get. The tried and tested way of doing so isâââFind what you are interested in. It can be a language, a software/tool you use everyday or an organization you always wanted to be a part of.
At the end of the day, itâs up to you if you quit or not. And believe me, you are less likely to do so if itâs something you always wanted to work with. In my case, it was Python which kept pulling me back to contributing to OSS.
Isnât it awesome when an organization like SendGrid tweets to you!
At the start, nothing would make sense. You wouldnât be familiar with the organizationsâ commit guidelines, work-flow, coding guidelines and what not.
On top of all that, you would be witnessing around thousand of lines of code lying there like a maze. You wouldnât be knowing your way out through that.
I hope that whatever I have told you until now, you would be in same (or perhaps better) condition right now.
But as it turns out, the developers/maintainers of the project know these problems as well as yourself. They know all of what I have told you above. You want to know how?âŠâŠ.. Well, they started as beginners as well đ.
So, feel free to ping them on the channel if you need any help in getting started. Just remember, you should always mention what effort you have made prior to asking that questionâââHave you gone through the relevant docs? Did you go through contribution guidelines for the project? What errors are you facing?
Let me tell you, even after being around the code-base for weeks, I still face problems in understanding parts of the code and have to consult maintainers or other developers regularly. After all, I am still an amateur fish in this sea of code.
An attempt was made!
For full one year, I was looking through past GSoC and GCI orgs (Usually, orgs which are pretty welcoming to newcomers are selected in theseâââsomething which I wished from my first org).
I would select some of them, go through their Bug tracker/Issues listed at their GitHub repo and see some ânewcomerâ/âbeginnerâ/âup for grabsâ/âfirst issueâ labelled issues.
Mostly, they were trivial changes like spelling corrections in docs, updating docstrings. But still, remember âimpostorâs syndromeâ (I told you to Google itâââThis is the next thing to remember, donât proceed further until you are clear about things discussed before)âââI never actually contributed.
Around after 3 months or so of this wandering, finally I selected âcoalaâ (Well, I had found some blogs which mentioned it to be quite newcomer-friendly) to be my first org.
But little did I know, there are hurdles even before getting into contributing to projects. Yeah! Setting up your development environment. I tried to install using the instructions availableâââBut couldnât. I raised the bug in the channel giving out as many details as I canâââthat includes solutions I have tried out, StackOverflow answers I consulted, error logs and messages. One of the maintainers of the project John (@jayvdb) raised the issue in the repo.
I waited for around 2 days for the issue to get resolved. And after 2 days, seeing no progress on the issue, I just left the channel and thought of never coming back to OSS.
The effort it took to cross that measly task on top đ
And what a mistake that was!âââThis leads me to my next tip, you need to be patient in getting answers. Those people out there are volunteering to contribute to the project, taking out time from their daily routine. They are human just like you with actual personal livesâââRespect that.Around this time, I thought that maybe I wasnât good enough for this open-source thing.
Another thing that worked against me was not seeking immediate guidanceâââI did knew some seniors and batch-mates of mine who had or were working on getting into GSoC. But I was too afraid to ask for their adviceâââMostly because I thought that it would mean risking being looked like a stupid. This calls for my next advice, Ask!. Yes, nobody would be branding you an idiot if you are asking well-researched questions.
Meanwhile, the thought of even entering open-source just vanished somewhere between academics and selfâââprojects.
The Homecoming!
In summer, while working on my internship projectâââI came across this thought of contributing to Open Source yet again through one of my friend whose mentor was a developer at coala and a GSoCer.
This time though, I decided to move forward a step into open-source. I tried again, this time, fortunately, I was able to set up coala on my machine. But again being quite busy in the internship, I had to leave it yet again.
I finished my internship, came back to college. Still, I had this âStart contributing to Open Sourceâ on top of my to-do list. Then after, I got busy with the ongoing internship season.
After having my plans for summer set-up now with an internship, I decided to start contributing to coala again. I went through the installation guide, docs, git basics, commit guidelines, reviewing guide and general git workflow again.
For the next few days, I was looking through more issues, making new issues, helping other newcomers in onboarding, reviewing other Pull Requests. In a week or so, I finished the developer process in coala and got promoted to a developer at coala.
And a bot carried out my coronation! đ
I was so engrossed into this reviewing stuff now that I continued to do so even during my exams (Yeah, even self-control was getting tough). Though my grades took a hit that semester, but I was happy. For the first time, I was feeling useful đ.
All in all, Iâve learnt so many things, large as well as minute details, that no academic course can ever teach me.
Also, as later I came to knowâââThere are some initiatives like Hacktoberfest, Mozilla Winter of Security etc. aside from the popular ones like GSoC, GCI which promote contributing to OpenSource. See if such incentives can serve you as an encouragement. I was fortunate to stumble across Hacktoberfest as well.
Courtesyâââhttps://hacktoberfestchecker.herokuapp.com/
Final Words
Many of you might be thinking along the linesââââBut I donât know anything at allââŠ. Wrong!. Even basic knowledge of any language is enough to get started with contributing to some project. The main point isâââJust start somewhere.
Special thanks to Mischa, Lasse, John and Mixih for helping me out when needed. More so for not giving out the solutions to me, but encouraging to solve them myself.
By the way, I got a chance to mentor some newcomerâââintermediate level difficulty level tasks in Google Code Inâ17 as well. I actually understood quite some things in a clearer way while mentoring others. Thus my last advice, help othersâââthat aids you in understanding things in a better way.
Takeaways
- Itâs okay to be afraid of getting started, itâs actually tough. Anyway, you neednât read full code-base to get started. Just start somewhere. Ask questionsâââNobody would be judging you for that.
There might be holes in your understanding of some topicâââBut nobody was born genius, everyone understood things while asking questions.
âDoubts are good. Confusion is excellent. Questions are awesome.All these are attempts to expand the wisdom of mind.â
- Do prior research before asking questions. Nobody would be doing that for you. Also, do understand that it is for your own good. Search through docs, guides/instructions, README or just Google it.
- Be sure that you have understood things in the conversation so far, donât leave any trace of doubts. Things really get more confusing and difficult to explain when the basic things were understood incorrectly.
- Have patience. Sometimes, reviewing can take more than even a week. One thing you can do in these cases is to start reviewing stuff yourselves. This would cut short the reviewing queue and would help you in getting quick reviews.
- Help others on the journey. That also implies that you can contact me if you need any help đ
Yet another journey of contributing to Open Source was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.