This week we'll be talking about something different, taking the chance that today is the first day of what for some of us is the favorite month of the year.
There are several reasons for that but for this time in particular, is Hacktoberfest. The month-long event of Open Source.
You know it's a world-wide Celebration
This is a quick review of my experience participating in said event for the last 3 years and lessons learned so far that I hope can inspire and be useful for those who might be their first year participating and don't know how to get started with it.
With that being said...
I only became aware that Hacktobefest existed around mid-2017 when I was a college student learning about backends and DB's.
I remember in that time the Open Source community looked so novel and different from what I was used to. I thought it would be cool to be like one of those professional engineers who built great things with code.
And then October rolls around, some people start talking about Hacktoberfest and how cool is to get involved. I thought it would be a good chance to see how others do things but then when I wanted to contribute to other projects... I hit major roadblocks.
I didn't know where to start, I only found these big and popular projects with thousands of commits and my internal voice was like "Ohhh do you want to contribute to those? Let's be real you can barely get graded labs done with the help of several online tutorials, you'll only be bothering others."
So the few intentions of contributing to OSS git eclipsed by not even knowing how to do a proper PR, not knowing what repo to get involved in, what issue would be good for a newbie to start, not knowing how others would respond, and dealing with my mental chatter reminding how unskilled I was.
Talk about a not so nice place to be in from the start huh? 😅
The first time I "participated" in the event was in 2017.
I write that in quotes because I didn't register for the event per se and I just made 2 PR's on the whole month with very simple things like fixing typos on a Readme and fixing a broken link hahaha.
I was kinda like Gollum, lurking from the shadows, seeing how others did things, thinking "wow these guys are really good at this stuff" and scared shitless to even comment (let alone open) an issue for not knowing if I was asking a dumb question to maybe would already be answered somewhere else already.
Thanks to seeing the replies that some repo maintainers made to other people braver than me, made me realize that I was making a huge fuss in my head and the whole thing wasn't that big and scary as I initially thought.
I also realized that I didn't have to start contributing to such big projects like React or Storybook or Mocha etc... but instead could go to projects that don't have that much traction yet but are making cool things nonetheless and help with things like fixing a typo, fixing broken links or helping to rewrite confusing parts on the docs.
This was the first year that I made enough PR's to qualify for the awesome swag (that I actually received in the first months of the following year)
Check this out!
I kinda cheated at that time because I was part of a GitHub organization along with other classmates for a final graded project on one of my last classes in college, so doing the work that I was supposed to do for approving the course got me to the finish line.
I could just have said that I did enough PR's and then go to claim the bounty but it wouldn't be well earned or even well deserved at all.
So, to make things right and have a sane consciousness I went full-on by the last weeks of the month looking far and wide for repos that would be open accepting contributions of any kind.
I found several of those I could contribute to BUT... I wasn't that experienced or knowledgeable back then so I discarded several options because of my lack of skills.
With that work done, I was able to atone my mind and sleep well at night hehe 😄
The year is now 2019 and this time with some more knowledge and experience on the event, I started early in the month and had already completed my quota of PR's by the first week.
And this is the cool swag I got in the following year...
On that year I also read several posts here in DEV and it gave me even more motivation and ideas of where to contribute to and really put my skills to good use helping to tackle some issues that weren't on the strong side of others.
By the end of the month, I had around 23-25 successfully merged PR's in different repos, ranging from the miscellaneous stuff like fixing typos or making transcripts on tech podcasts to more traditional dev work.
That was along the lines of adding documentation, helping to clarify how processes work, fixing layout bugs, improving responsiveness, adding a11y on the project's UI and stuff of that nature.
These are some of the repos I contributed to.
In doing that, I broke a Personal Record (a PR, see what I did there? 😛) in contributions and it gave me the confidence to start getting involved more in Open Source and not just dabbling around once every year for that particular month.
It also sparked the curiosity of learning different things and trying new tech so I could become more useful in future contributions and don't discard options too early because something is outside of my UI comfort zone.
That is pretty much it. A high-level overview of my journey so far, starting from the little bits, taking small steps at a time, making beginners mistakes and learning from those so I can do better the next time.
You might think that once I overcame my doubts and started to contribute more to OSS, everything was smooth sailing from that point on.
Well, you would be wrong because I did face some pitfalls and had some screwups like a time when I was all motivated and went to work on an issue that was adding a burger menu to an existing site to accommodate the header links for smaller devices.
The project was all built on Vuejs using Nuxt but I was just going to be making the burger menu without touching the JS part. how difficult could it be right?
Truth be told, up to that point I had not seen a line of code of Vuejs before and didn't even know about the whole SSR for single-page applications. Everything was so different and alien to me, I watched a couple of YouTube tutorials and still couldn't grasp how the thing worked.
Eventually, I wrote on the issue that the tech used on the project was completely out of my knowledge and I was barely even able to make the project run so I would be dropping that issue for someone else to work on.
From several of those experiences I did learnt a thing or two to improve, make better choices the next time and overall perform better.
This year I started early getting involved in OSS projects, learning a lot from real pros and doing as much as I can, pushing my comfort zone and learning new tools to be much more useful than I've been in the past years.
Not only I have identified a few repos where I can contribute to but also started getting some experience making a project where others can contribute to and together build something useful for others to use. You can find that repo here
That's it for this week, thanks for reading so far. Hope you enjoyed this "trip down memory lane" and that it gave you enough perspective so that you can go and try your hand at making meaningful PR's, help the Open Source community and know from firsthand experience how good it feels when you help out and get your work merged on a different repo.
Have an awesome start of the month and catch you next week.