Note: This article was initially published on my Medium account. Follow me @aarohmankad to be the first the read my posts, and feel free to read some of my other articles!
I was recently invited to speak at Github Field Day LA on a topic of my choice. As Github was the main sponsor of the event, I thought I would give a talk on my experience in the overarching Open Source Community, and how/why to get started with making contributions to Open Source projects.
For a video of the talk with slides, scroll to the bottom!
Some (optional) background: Github Field Day is a regional unconference for leaders of technical student communities. Github Field Day LA had student leaders from UCLA, USC, Caltech, UCR, Cal Poly Pomona, and many other campuses in the Southern California region.
The goal of my talk was to convince these leaders to adopt the mindset of contributing to Open Source and then teaching the students at their schools how to do the same.
So you’ve heard of Open Source projects, but always thought they weren’t approachable. Or maybe you thought that it wouldn’t be beneficial to you at your skill level. However, Open Source can help you advance yourself technically and professionally. Here are some of the main ways that contributing to Open Source can help you develop yourself:
Whether you’re learning a new technology or you’ve been using it for ages, there are Open Source projects looking for someone of your skill level!
By contributing to an Open Source project, you are learning how a technology is used in industry. You also get the valuable side effect of getting acclimated to large, robust codebases!
You may wonder: why would contributing to an Open Source project count as work experience? You’re not employed by the company hosting the project, and you’re not getting paid for it.
However, by contributing to a companies open source project, you are required to perform at the bar that the company holds its employees against. This means that there is very little separating you from the engineers that are employed and getting paid for their contributions! This transitions very effectively into the next point.
As I explained earlier, contributing to an Open Source project can count as valuable work experience. As you contribute more and become a prolific member of the open source community, you will start to meet new people online!
Now when you meet potential connections at a meetup/conference/company, you can anchor your experience to a project that they have used or worked on. Contributing to Open Source can also help you in your job search! If you’ve already contributed to an Open Source project in a certain company, you immediately become a very competitive candidate. (Again, there is now very little separating you from the engineers already working at that company!)
Lastly, your motivation for contributing to an Open Source project may be because you want to make your job easier. If you are using a certain library or framework and notice a bug or need a new feature, take a little time to file an issue and/or work on it!
If the new feature is implemented or the bug is fixed, congratulations! You’ve just made your job easier. Now the logic for your use case is handled by a library that doesn’t rely completely on your future contributions. (As other contributors can continue your work.) In addition, you may have improved the experience for other users of the library or framework!
Hopefully, I’ve convinced you to look into contributing to an Open Source project. But how do you find something to work on?
This is usually how I find projects to contribute to. If you’re using a library or framework in your code and notice something wrong with it or want to build on top of it, check out the Github repo!
Github is not just a place to store your version-controlled code. It is also a powerful search tool to find Open Source projects you’d like to contribute to. I recommend using the
good-first-issue tags! (Assuming that corresponds to your skill level.)
If you’re learning a new technology, what better way to immerse yourself than by checking out some of the projects using it on Github? I particularly love looking at the tooling surrounding a project, such as
create-react-app for React.
Contributing to Open Source doesn’t always mean working on existing projects. You can also publish your own project on to Github! This can help you understand how Open Source works better than just contributing, even if it’s a small project. I published a very simple GraphQL/Node boilerplate called the Artemis Server and learned a lot in the process, though I’m sure that can be its own blog post.
Interested in learning more about the Open Source community? Here are some awesome
- opensource.guide: Ten free, in-depth guides ranging from “How to Contribute to Open Source”, “Building Welcoming Communities”, to “The Legal Side of Open Source”. All made by Github and friends!
- opensourcefriday.com: Take some time away from work and give back to the Open Source Community every Friday!
- opensourcesurvey.com/2017: Get a feel for the landscape of Open Source
- slides.aaroh.codes: The slides from my talk, if you want to give a similar talk to mine. I’m always happy to help you tweak your talk and tailor it to your audience and your experiences! (Just ping me on Facebook.)
Last but not least, here’s a recording of my talk on Youtube! Yes I know it’s portrait, I wasn’t the one filming…