Have you ever felt like you take more than you give?

I’ve been using free information and resources forever. My journey with computers started with Linux. Most software I’ve used (roughly 99%) has been open source. I’ve read documentation, downloaded free books, learned to code with free resources—everything free. When something wasn’t free, I used torrents or LibGen (I hope this admission doesn’t incriminate me). I built my knowledge from freely available resources.

Well, in order for things to be out there, someone publishes them. Someone is spending time and effort writing documentation, developing, testing, fixing, and publishing code and tools we all use. Most of these people do so unpaid, outside of work, in their free time. Time they could spend consuming instead. They contribute. They contribute to all of us.

My interest in open source has two motivations. I’ve felt guilty taking without giving. On the other hand, I know there’s merit in being an open source contributor. People take pride. They’re respected and gain reputation within software engineering communities.

I wanted to be part of that community without really understanding what it meant. Now I see that contributors are skilled enough to navigate a system managed by people they don’t know, who just follow project conventions and principles. Being a contributor means you can adapt to a new system. It also means you’re comfortable and confident you can improve a project with changes that will be high quality, follow best standards, and be used by people who, like me, will be thankful someone put their time and effort into something.

Getting started

It can be daunting, especially your first contribution. Look at big projects on GitHub and you’ll find highly complex source code, extensive documentation with guidelines, thousands of issues with many comments. If you investigate commenters and maintainers, you’ll sometimes spot people from big tech companies, principal engineers, community giants. In short, it’s intimidating.

Don’t be frightened. For your first step—let’s call it step zero—there’s a single repository called First Contributions that simplifies navigating code.