Skip to the content.

Week 10

Open Source 101

Go back to index

This week we’re starting with a new phase called Open Source (OS). And sure there is a lot to learn when starting in something completely new. Of course I had previously heard about OpenSource, but I had never actually took the time to learn about it. For starters there is a bunch of things that you should know before getting involved. Let’s start simple and easy:

What is an Open Source project? Is a software project that has its codebase out in the open and anyone can download the code, read it, make modifications, and if you’re dedicated enough; contribute to it. There are many great projects that are widely used that are OS like TensorFlow and Django.

Why should you contribute to Open Source? At first the idea of contributing to OS can seem crazy to some people. Because well you’re working for a project that is not paying you money. But the rewards that an OS give you are from a different kind, if you’re a junior developer like me, you gain plenty of experience. Specially working with big projects, because so far when I work in code it’s usually code I built and I’m familiar with. It represents a change of paradigm, I start with a codebase that is already built and I have to understand how it works. It’s a great exercise. Another good reason is that it actually makes you feel part of the software you’re using. You’re annoyed by some bug? Well, it’s your opportunity to fix it. You get a sense of pride and you improve somebody else’s experience. Win win scenario.

Now let’s say that you decide you want to contribute to a project.

How do I choose a project? My advice is select a project based in three things.

  1. Select a project you’re excited about.
  2. Make sure you have some expertise in the technology stack you will be working.
  3. Look for a label ‘Good First issue’, it’s a sign that the projects accepts newcomers.

You’ll have to surf trough a lot of projects to find one that suits those 3 things. Happy OS hunting.

My personal experience with OS The steps I just described you I experienced them myself this past week. Finally I found one project I will be working on. But before finding it, I worked on a exercise that consists of formulating a question of an OS project or programming language of something you would like to know, then dive in the code to get the answer. It’s was pretty challenging exercise for me, but once you get the answers you feel a Sherlock Holmes vibe. Here you can find the questions/answers for each one:

From this 3 questions I sticked with JabRef project, and I’m currently working in this issue. Basically I’m trying to fix a simple bug in the app. So far I have been getting familiar with the project and how it works. My goal for next week is to close the issue and make my first OS contribution!