As mentioned in my previous post, I am an Astrophysics PhD student who is trying to break into Software Engineering. I have experience with programming, but in a much different context and without much of a sense of true collaboration. Up until this October, I never participated actively in the Open Source community nor had I participated in any hackathons.
I was on a Web Dev Discord server and someone linked to the Hacktoberfest website, and at first I had no idea what it was or if I could even contribute anything worthwhile. Life is short though, and I was looking for a way to dive into development, so I signed up.
After I began, I had absolutely no idea where to begin. A lot of the problems listed on the suggested repos on the main Hacktoberfest page was a bit over my head at the time, so I had to do a bit of digging.
I quickly learned that GitHub was awash in easy beginner repositories, and I made a few PRs to a couple of them. I admit, they were low-effort, and I didn't know what I was doing at the time. These were later deemed ineligible, which I can understand why. Even if I was proud that I was able to write depth-first-search from memory in Python and JavaScript, it wasn't really contributing.
I wish I could give some good tips for beginners about where to find good problems, but really how I ended up finding a niche this Hacktoberfest was by becoming curious about the repos that were popping up in my suggestions. It was perhaps a bit inefficient, but it worked, and it allowed me to get a small sample of what is in the vast GitHub ocean.
Finally, I stumbled upon a repository for an Eslinter plugin. I had absolutely no experience with dealing with making my own linter, and it all seemed initially rather complicated.
I was just about to click away from it when I noticed an Issue that seemed just downright bizarre. I wanted to know more. I wanted to know what was going on and solve it.
Coders are ultimately problem solvers. Find the problems that you find so intriguing that you can't stop thinking about them. Let that obsession drive you.
I went to work, made a fork and started to use the tried-and-true method of solving weird bugs: liberal use of console.log().
After a couple of days, I found the issue, made the changes needed, and proudly put in a pull request. All tests passed. I had contributed!
A few days go passed, my pull request got approved, and a new version of the plugin was pushed out...but unfortunately, the change I made was incomplete. Forgetting to check one small condition resulted in the plugin throwing an error for some users. Issues were coming in and people were quite unhappy. Needless to say, my feeling of achievement quickly changed to a feeling of failure.
The maintainers were very kind and did not fault me at all. They instead encouraged me, and I decided to not only find the problem, but make sure it didn't happen again.
The bug amounted to the linter no longer being capable of handling the evaluation of higher-order functions. I fixed the bug that I induced and made a test specifically for higher-order functions. I put in another pull request and I got a lot of good feedback from the maintainers and the users. I learned from my mistake and I feel like a better programmer because of it.
It is important to remember that we all make mistakes. What is important that we are humble and we learn from them.
Since then, I've been volunteering to handle tickets and make enhancements to that repository, and have now been made a member of the development team.
My initial feeling of uncertainty being capable of contributing to Open Source was severely misguided. Just today I put in my order for my Hacktoberfest t-shirt, and have now a total of 10 PRs for October. I'm more than happy to accept free merch, and will be wearing that t-shirt proudly, but honestly I would happily do this again without any of that. It has been a blast contributing to Open Source and I absolutely will be continuing to do so into the foreseeable future.
I want to close this out by not talking about myself (as I feel like much of this post has been about me), but to address all those who are either too afraid or too uncertain in themselves to dip their toe into contributing.
Stop being hesitant and jump. Follow where your curiosity takes you. You never know where you may end up. If you make a mistake, accept it and learn from it. I can assure you that most people will be understanding. It's okay to be a rookie. Everyone was new at one time, and chances are, you are probably a lot more capable than you think you are. Every journey starts with allowing yourself to take those first few steps.
Top comments (0)