Contributing To Your First Open Source Project as a New Developer
And why you shouldn’t let fear stand in your way
Doing new things is scary, especially when you, as a new developer, are jumping into someone else’s work and…changing it! Ah! As an engineer fresh out of a bootcamp, I was intimidated by just the thought of doing this. What if I messed up? What if I ruined someone's project? What if my solution was so rudimentary and dumb that I made a fool of myself. All of these fears are valid, but they were also just great excuses for holding myself back.
How do you get past that fear? Forgive me for the cliché response: just do it. Trust me, it isn’t your inability to contribute meaningful code to a project that’s keeping you from doing it, it’s something else. Maybe it’s the fear of doing something wrong or maybe it’s not knowing where to begin. Could it be that you don’t feel confident in your work and you feel like everyone else is leagues above you in skill? Trust me, I understand how that feels. Just the thought of opening up someone else’s codebase on my computer made my stomach turn. How do you figure it all out? How do you know what needs to be done? I don’t even think they talked about open source projects in the bootcamp I went to, so I didn’t realize until I graduated that I could actually contribute to these various projects that just lived out there on the internet.
Who would want me to contribute to their project, anyway? Well, as it turns out, people love when you want to work on the things they’re working on/have created! Expressing your interest in someone’s work is flattering, and it shows that you care enough to want to improve the project. Do you have a new idea that you think would improve the look/feel/efficiency of the code? Awesome! Throw it out there. Maybe the original author hadn’t thought about it yet or just doesn't have the time to actually work on it. It is intimidating, but just remember, others want your help and want to include you, especially if it makes their job easier.
Some things to consider before you start:
- Programming language — you probably want a project that’s in a language you know
- Type of project/issue — something that interests you is best
- Project volume — picking a smaller codebase will be easier to start with
Here’s how I successfully contributed to my first open-source project:
- Interest: I chose something I was interested in. I found a project in an engineering-focused Slack group that I am a part of and messaged the organizer. He was thrilled that I wanted to help and set me up right away by adding me to their Slack channel and inviting me to collaborate on the GitHub repositories.
- Get Familiar: I read through the README files and looked at the issue board. I chose an issue that I understood and felt semi-comfortable tackling. Did completely know what I was doing? Of course not! Comfortable does not mean you know exactly what you’re going to do, it just means that you are interested enough to learn.
- Create a Separate Branch: Get to know the command “git checkout -b <branch name>” — this is how you make sure you don’t accidentally mess up someone’s project. Write code on your separate branch, that way, you can test, edit, do whatever you need to do without affecting any other part of the project.
- Google: yes, it’s true, engineers love Google! Did I know what I was doing the first time I contributed to something? Nope! Did that stop me? Also, no! I had to partially learn a new front-end framework to contribute to my first project. It was a great opportunity for me to learn something I probably wouldn’t have looked into otherwise. I watched some tutorials and was able to get the hang of it in under an hour.
- Ask Questions: Have a question Google can’t answer for you? Ping the project organizer. I like to try to exhaust all my other options before doing this and make certain I can’t solve it myself. Asking questions does not make you a bad developer — it makes you a real person who…has questions and it’s nothing to be ashamed of. *Some open-source projects are huge and don’t have one organizer. In that case, do your best, ask a friend or another contributor to the project.
- Submit a Pull/Merge Request: Is your contribution ready to go? Did you test it out and make sure it works in a variety of scenarios? Did you address all parts of the issue you picked? In my project, I had to move around a logo and make it more responsive. I changed the orientation of the logo and I thought my small changes made it look a whole lot better! The project organizer walked me through the PR and just like that, my name and contributions were in the production code!
When all was said and done, it felt pretty cool to write code that was actually going to be used for something other than a portfolio-project that would be seen by seven of my friends (and hopefully some prospective employers). Even though the change I made was small, I felt that my contribution was meaningful and improved the look and feel of the finished product. I was able to learn something new and got to collaborate and work on a team. It was a great experience.
I think the biggest thing contributing to open-source did for me was improve my confidence. I was able to see that I could come up with meaningful solutions, just like any other engineer.
If you’re a new developer, I highly encourage you to find a project you’re interested in contributing to. Now, I don’t think you should contribute to open-source just to say you’ve done it. Other people’s work should not just be a box you’re checking off some Dev Checklist. Choose a project relating to a topic that means something to you or something that will help you gain that new skill you’ve been meaning to learn. Don’t let fear hold you back or tell you that you aren’t a good enough developer yet; you are, you just need to prove it to yourself.