If you’re like me, you’ve probably heard of the importance of getting started with open source contributions. The communication skills, collaborative aspect, and opportunity to make a name for yourself are all very appealing. So you go to your favorite repo on github, and you’re ready to make your name known in the community…now what?? How do I get started? This post is here to answer that.
First off, if you’re a bootcamp graduate like myself (Telegraph Academy in the house!), Automattic CEO Matt Mullenweg explains that open source contributions are a great way to distinguish yourself. He explains that the personal and group projects you build as a student are a first step. You can give your resume more weight by contributing to an open source project because that work can easily be verified.
What skills do I need?
How is important is communication? Do I need to be fully versed in the project I’m working on? What if I don’t like working with others? (this is a bad sign). Major open source enthusiast Andy Lester gives a list of the essential skills to become an open source contributor. Skill up!
How do I start?
What are the ways in which open source contribution can take place? If I’m intimidated by submitting code, can I still be part of an open source project? (yes you can!). Let’s hear once more from awesome open source soldier Andy Lester about The Beginners Guide to Open Source Contribution.
Which project should I contribute to?
So now that I’m equipped with an idea of how to start contributing, but what project should I target? Should I go for something popular? Something that I enjoy? My STRONG recommendation is to target a project that you use, or a project that you’re truly interested in. Check out the github pages for angular.js, React, or Ember.js to get a sense of all that is involved in a large scale open source project. If you’d like to browse repos by theme, Github Showcases is a great place to start. Trending Repos are a good way to get a sense of what is most popular and you can filter them by day, month, or week. Consider Trending Developers to see the hottest repos on the block. Take a look at the issues tab and sort by the labels that interest you.
I’m feeling intimidated. How do I find an issue that is on my level?
Don’t worry, there are specific resources geared toward this! Up-for-grabs.net is a curated list of repos with “up-for-grabs”, “newbie”, “first-contribution”, and other labels intended to help beginners identify tasks that might not be as difficult. React has a “good first bugs” tag contains bugs which are relatively easy to fix. You also don’t have create code to contribute. Look for labels like “documentation” where you can write instructions detailing how to use a feature that you’re very familiar with. Using github’s advanced search, you can even search for custom labels that are “easy” or “beginner” in the language of your choice and the time period you choose!
How do I make a contribution?
So now I’ve picked out my repo, and there are 1500 files in a variety of directories. Where do I start? A great way to begin is to check out the CONTRIBUTING.md file. This is a file established the repo owner to give guidelines about what the necessary procedures are, i.e. running all tests, documentation to update, comments to make in a pull request, etc. Kent Dodds has created an awesome FREE webcast series on egghead.io that shows you the steps including all git commands and github procedures to make that first commit. Follow it and get started!
Open source software is exciting and very empowering. It can allow you to come into contact with product level code without being part of a company, and can sharpen your skills in many ways. Taking part in an open source project is a great way to make contacts, sharpen your skills, and continue growing as a software engineer. So go forth and get involved!