My first (real) open source experience

Contributing to open source projects is essential to becoming a well-rounded software developer no matter what discipline or direction you’re going into. Simply googling “open source” will return a wealth of projects just waiting for new developers to sink their teeth into. So when it came time for my eager self to catch the open source wave, the reality hit me like a baseball to the face. Sure there’s literally a ton of projects to work on, however, finding one that I felt confident in contributing to was (and still is) an intimidating experience. Why you may ask? Mainly because whenever I’d look at a project that was looking for open source contributors and checking out their issue page would often result in a laundry list of issues that I felt no where ready to tackle.

Uh…WHAT???!!!???

Now imagine seeing issue pages like these no matter what project you’re looking into. It almost completely turned me off to the open source experience as I felt I’d never be able to confidently contribute. That’s when I realized it started happening again; that fear of failure. The same fear that almost completely turn me off from moving forward with web development as a viable career option. I figure there has to be an easier way. One Google search later, and I came to another realization; I was not alone.

Looking up “open source for beginners” returned several blog posts from aspiring developers who went through the same experience. They too struggled with contributing to open source projects especially when it came to finding the right one or one they can easily contribute to. That same search also produced several sites dedicated to first-time contributors.

First Timers Only was the key I needed to unlock my open source potential. It not only gives you leads to projects aspiring developers can get into but also relays stories of their experience. Often times it can be a rewarding experience with productive results. Sometimes it can be an off-putting experience depending on the project handler. Regardless of how it turned out it’s beneficial as it shows you’re ready and willing to contribute. Plus since you’re communicating the project through Git, you have a presence to the project even if it takes seemingly eons for your pull request to be approved.

After going through several repos trying to find the right project to get into, I stumbled upon a not-for-profit site for veterans who are learning to code. It’s mostly front-end changes on their issues page but the site uses Ruby on Rails so I knew I can contribute to it. I jumped into making an addition to their staff page. The change is minor at best but I finally felt like I was involved in something major. It also helps in not only reinforcing the process of contributing using Git (I’d only done this once during boot camp) but can also introduce you to software you may not have known existed. In this case I had to download Docker as this is the framework used to run that site.

With the changes being made I finally accomplished submitting my first real pull request last Wednesday. I felt like a superstar after the automated tests passed figuring it was only a matter of time before the PR was approved.

Then I waited….

And waited…

And waited…

A few days later the project leader got back to me noting my contribution contained duplicate entries. Turns out when editing the page I did some copy and pasting that I failed to remove before submitting the pull request. Sure everything worked fine, but I was careless when I contributed. I was so dead set on participating that I failed to actually check my own work. I swiftly made the change and re-submitted my pull request. So how has that turned out now?

Yup…there’s a meme for everything.

That’s another lesson you learn with open source. More times than not the project lead has various other projects or jobs he or she needs to tend to. It may seem like they’re ignoring you but they’re most likely busy. Be patient and use this time to find another project to get into, switch back to your own passion project, improve or learn a new programming language or framework…the possibilities are endless with software development.

Just don’t be complacent. That’s just the worst.