As a newbie open source contributor, I often felt lost and dejected. I couldn’t figure out how different modules fit. I couldn’t find my way around huge codebases.
A lot of us are in this same boat. And it’s okay to be there.
I stuck with it. Eventually, things started to make sense. Project maintainers started accepting my pull requests. And my confidence rebounded.
I wrote about my experience hoping to encourage other newbie open source contributors. And was blown away by the attention and positive responses my article received.
So many people reached out to me saying my post encouraged them to start (or resume) contributing to open source. A few maintainers also went back and reviewed some pull requests I’d previously submitted. I couldn’t have asked for a better response.
After some thought, I’ve concluded that the main reason my article triggered such a big response was because the dialogue around contributing to open source has been one-sided for a long time.
Maintainers often write posts about how new contributors can get involved in their projects. They share all their efforts to make their project beginner-friendly. They also write tons of guides on how to start contributing, and answer questions on Quora and other platforms.
But there aren’t as many posts by newcomers on how things pan out once they start contributing. I’ve gone through many of those guides myself, but they aren’t as helpful as a fellow newbie contributor’s firsthand experience.
It’s difficult to strike a balance when only one party is communicating. I’d like to hear more about which projects newbies contribute to, the path they follow, what they expected VS what came out of it.
Thus, I want to encourage all new contributors to document their experience. Help us establish this balance. I assure you it’s worth your time and patience.
This will help you in a number of ways. When you’re writing, you can’t brush details under the carpet. Writing forces you to perceive things as they are, and not how you think they are. Writing also puts things into perspective. It helps you remember where you started, and how far you’ve come.
You may worry that you don’t know enough to write about a particular topic. I’m here to tell you that you don’t have to be an expert on a topic to write about it. Write what you know.
The worst thing that can happen is that you get something wrong. And if you do, someone will probably point it out to you. And this will help you fill in the gaps in your knowledge. It’s a win-win situation.
Finding Inspiration in Other Developers’ Blogs
I have a few drafts that I’m waiting to publish, because they aren’t good enough just yet. They can be more polished, more technical.
When I feel this way about a draft, I surf the internet for inspiration. One day when I was doing this, I stumbled across Write An Excellent Programming Blog by A. Jesse Jiryu Davis. I keep going back to it and re-reading it when I feel like I don’t have a topic to write about, or I don’t feel qualified to write about what I know.
Once you start looking around for inspiration, you’ll find lots of it. Developers publish thoughtful articles on various topics every day.
How to Find Topics to Write About
It’s OK if you don’t yet feel confident enough to start writing on technical topics. You’ll get there eventually. Start by just documenting your journey:
- How you got involved with the organization you’re contributing to
- What kind of community they have and how welcoming they have been to new contributors
- The project you chose to work on, and what went into making that decision
- How difficult it was to set up your local development environment and clone their repo, where you got stuck, and how you cleared that hurdle
- How you found your first issue to work on
- If you had a mentor assigned, how your experience was working with them, and the kind of help you received
- What you expected open source to be like, versus how it actually turned out
- Any advice you’d give fellow newbie contributors once you’ve gotten your feet sufficiently wet
- How to behave, and what kinds of questions to ask in a organization’s IRC channel or Gitter room
These are just some topics I can think of off the top of my head. There are undoubtedly many more aspects of contributing to open source that you can come up with and write about.
You don’t have to write daily or weekly, or follow any strict time-bound schedule at all. Write when you feel like you have something worth telling others — be it a small victory or a large contribution.
As you gain more experience, you can begin to write on more technical topics. These can be something you’ve worked on for a long time. They can also just be your journey to acquire knowledge of a new language/framework/library.
At this point, you might wonder whether too much has been written about a particular topic already. You might ask what more you could possibly add to it that hasn’t already been said?
Well, it doesn’t matter how much has been written or by whom. That’s never stopped any determined writer from writing yet another article from their own viewpoint, based on their own understanding.
Everything you write offers your own perspective, which may greatly differ from another person’s. It’s all in the details: how you break a topic down, how you approach it. So don’t let the fact that there’s already been a lot written about a particular topic deter you from writing about it yourself.
Your mission, if you choose to accept it: document your experience as you contribute to open source. Write about concepts as you learn them. As a result, you’ll learn faster and become a better developer.
You’ll also help other lost, intimidated newbie contributors find their way through the vast world of open source software.
Believe me, nothing feels better than knowing that something you wrote helped a person who is struggling.
If you have any additional ideas for what newbie open source contributors can write about, or have a favorite programming blog you visit often for inspiration, please let me know in the comments. :)
If you found it useful, please tap or click “︎❤” to help to promote this piece to others.