Luis Costa

Collaborating in open source and rediscovering GitHub

One of the things I always wanted to do was to collaborate in open source and help other people with their projects. For a long time I thought I didn’t have much value to give in the open source world. This has haunted me for a long time ever since I started taking programming a little bit more seriously.

Recently, a new thread opened in /r/webdev and in it, some guys discussed the possibility of creating a community to help beginners find resources about web development easily. I was so damn curious and I wanted so much to help out that I decided to jump in.

I created for the first time my own Slack account (yes, I only now discovered Slack, don’t judge me!) and hoped in the slack channel. In the beginning, people were just talking about their interests in web development, asking general questions and generally helping each other out. I thought that maybe this community was just about a chat group where people would ask questions and then I started losing interest, because what I really wanted, was to code something and to contribute.

Fast forward an hour later and more talking, someone opened a new channel named #website_project and I was added to that channel. My interest immediately spiked. We started brainstorming ideas for a website where a person interested in web dev could easily find resources to study and learn. I loved this feeling because now I was involved in a project where I could actually help. After one more hour in the channel, I felt like I was talking with friends of a long time.

After 2h of talking and coming up with ideas, a organization was created in GitHub and after that, a new repository inside that organization that would be the main website of the project. At this point, I’m really excited. Some people came out with simple sketches of the website, we discussed diagrams of user interaction and later, I opened a Pull Request, my first ever on GitHub, to that repository.

For the first time, I felt what it is like to work on open source. It’s an amazing feeling to be able to help other people and to work together towards a common goal. And it doesn’t end here.

Because I never contributed to open source, all I ever knew about GitHub was how to create a new repository, how to clone the repository to my machine, make changes, add those changes, commit and push them. Repeat. I never really knew what the commands git pull and git fetch, git remote add upstream, etc did. Needless to say, I learned A LOT. I learned what’s the typical workflow when you want to open a new PR in a GitHub repository, how you should always create a new branch for your new feature, make your changes, then checkout to the branch you want to merge into, see if there are any changes, merge your changes into that branch, commit it to your local fork, going to GitHub, comparing branches, opening and commenting a new PR.

I was absolutely amazed about the real power of GitHub which had been hidden to me for almost 2 years. Not only that, I soon found myself HELPING OTHER PEOPLE COLLABORATING and explaining to them how to contribute with their own pull requests. I did not, at all, imagine this would be possible.

If I had let my fear of not knowing whether or not my skills and knowledge would be enough to help other people in the open source world, today I would still not know how to properly use GitHub. I also soon found out that most people in that community knew as much as I do. They are just humans. They struggle as I do. As you do. Often, I would talk about something that they never heard of, and I would get completely caught by surprise because in my head, everyone was so much better than me in the field and they knew about all the things.

So, in short, the message for you is: don’t be afraid to put yourself out there. Other people are just like you: they struggle, they google, A LOT, they know things that maybe you don’t know, but you also know things that other people don’t know. Don’t be afraid to ask questions, don’t be afraid to say “Oh I don’t know what X is or how does it work, can you explain me?”, because most people in the web development community (which, by the way, is an awesome community) will help you. Like 99% of the times, people will help you. You can contribute. You have value, everyone has. Open source can be a chaotic place sometimes, but it’s a place where you can meet really nice people, even if it is just online.