Vaibhav Khulbe
12 May 2020
β’
4 min read
So you've decided you're gonna dive into the world of Open Source as described previously and you hear terms like "PR", "repo", "commits" etc. You also get to hear about "issues", "merging" or "branching". Well, other terms can wait but in this article, I'll tell you all about what an issue is and how you can take advantage of this nifty feature of the open-source environment to start learning a new programming language! Who's excited?
Whenever you visit a project on an open-source platform like GitHub, you are presented with it's 'homepage' called the repository or simply a repo. Next to that, you can see a few other tabs, the first one being labelled as "Issues". You see a list of different issues that exist in the project currently.
Issues are one of the best ways to pitch your idea to start an open-source contribution to a project.
It can be anything from a feature request, giving your idea, adding a bug report or advising an enhancement to the repo owner. As you can see, issues can have several aspects to them. One may be of really low importance, the other a 'critical' one which should be fixed ASAP. Therefore, they're marked with 'labels' so that other people contributing can know the importance of each issue.
Issues can simply be used to kick off a conversation or discussion. Did you get an idea? Unable to understand how a specific module works? Open an issue and talk about it. This is one of the great ways to take your idea and making it a 'move' towards a contribution.
Having an issue tracker in an open-source project helps a lot. Its main aim is to manage and maintain lists of issues. Let's see how much value they provide with their important features:
As you may see, it's an issue tracking system built within the WorksHub platform. Let's open an issue and see what we get.
We have the following important things to look in this issue:
And most importantly, you can see the programming language required to work on this. WorksHub is built upon the listed language i.e. Clojure so it's obvious that this issue is also available on GitHub.
To start working on an issue, you must know what's required and what the issue is about. We know two things are required here, first the Clojure programming language and second, the issue is about the image upload failure.
If you don't know these, you can not solve this issue. Let's imagine you're new to Clojure, you've never worked on it before. Here are some steps you can take to learn it and then implement in an open-source issue:
Step 1: (Always) start with the official documentation. Head over to the Clojure documentation website and get to know about the language, how it works, how to install on your platform. Once you're familiar with the language, learn its syntax, practice on repl.it or on your local system. Search for some online resources making small programs at first. The aim is to familiarize yourself with a language you just got to know about.
Step 2: Visit some online/offline resources and make projects. Refer to some video tutorials, articles or read some books based on the Clojure programming language. These resources will help you to make a few projects by yourself and you will feel more confident working on a new project.
Step 3: (Optional but highly recommended) Work on some open-source projects. This one isn't required to learn a programming language but it will be very useful to solve some issues like above. Search for those repos which are built primarily on the Clojure language. If there are some issues need to be fixed, read them thoroughly, make note of the important terms as listed above of that issue and start working on it. Not only you will implement on your learning but you'll also get a great exposure working in an open-source environment.
Step 4: Deep dive in other features of the language. You can always go through Clojure's APIs, releases, tools and frameworks when you feel confident. This is so that you're able to work on a large-scale project which may use these features in their repo.
Further reading:
Vaibhav Khulbe
Web developer/designer | I write stories on @thepracticaldev
See other articles by Vaibhav
Ground Floor, Verse Building, 18 Brunswick Place, London, N1 6DZ
108 E 16th Street, New York, NY 10003
Join over 111,000 others and get access to exclusive content, job opportunities and more!