We ❤️ Open Source
A community education resource
Getting started with open source: Lessons from my OpenSSL journey
Why your first open source contribution doesn't have to be perfect.
Back in October we held the inagural OpenSSL Conference in Prague. During my keynote talk I shared the story of my beginnings with OpenSSL. This was a story of small steps. OpenSSL is large and complicated and can be quite overwhelming for the newcomer wanting to make their first contribution. Where do you even start?
Joining the community: The essential first step
When I first started my involvement with OpenSSL one of the first things I did was join the mailing list which, back then, was where most of the project communication was taking place. These days most discussions happen in GitHub or on our OpenSSL community forums. By taking this step I was joining the OpenSSL Community. I started to learn how the project operated; who the most active people were; and how contributions and bug reports were handled. OpenSSL has been a community project since its launch back in 1998. Formed by the community, and built by the community. Community is still at the heart of everything that we do.
My first interactions with OpenSSL were inspired by a personal project where I needed to use some elliptic curve crypto. At the time I knew nothing about the topic. I had a lot to learn. I downloaded OpenSSL and started playing around with it. It is a complex piece of software, but I zoned in on the one piece which was of most interest to me (the elliptic curve code) and began to learn how it worked. Of course all during this time I was still on the mailing lists, and picking up all sorts of valuable information from there.
I still remember the time where I saw a question pop up on the mailing list and, for the first time, I felt myself capable of actually speaking up and answering that question. I knew the answer and I could help someone else in the community! This gave me a buzz, and helped someone else. In my opinion, it is these kind of interactions that are the basis of any healthy open source community. By working together on a common goal we can achieve so much.
Read more: Building a sustainable pipeline of open source contributors
Making your first contribution and learning from rejection
Over time I wanted to be more active. I remember making my first ever patch submission. Back then we had to email our changes in as patch files. These days of course we have pull requests via GitHub. My submission was about as small as you can get. I had stumbled across a minor bug in the documentation build system. I carefully crafted my solution to the problem and sent it in. It was a one line change that added 9 characters!
Unfortunately my change was not accepted! But this was OK. It is a fact that not every patch sent to an open source project will be accepted. But hopefully you will learn from the experience. I know I certainly did. For me this was a journey. Over time I started to make more contributions. I remember that thrill of the first time I had a contribution actually accepted!
Eventually of course I went all out with my OpenSSL journery and ended up working full time on the project (this was not on my career plan!!). Everyone’s journey with open source will be different. Every open source project is different. There are different sizes, complexity, approaches, styles, and cultures. But community is a common theme. A collection of diverse people from many different backgrounds and experiences collaborating together to produce something amazing.
Start small: Why your first patch doesn’t have to be perfect
So, to the answer the question of where do you start, my recommendation is to start small. Joining the community is the very first essential step. After that find the next small step (e.g. dowload the source code; read the manual; play with the demos). Keep finding the next small step. Eventually you will find that you have built your knowledge to be able to make bigger contributions. By joining and engaging with the community you will be able to maximise those contributions and make them effective. You will learn the culture and values of the project, as well as what is considered important and what is not.
For more information on how to get involved with OpenSSL check out our Get Involved Page and then you can watch my talk from the OpenSSL Conference.
More from We Love Open Source
- Using metrics to improve open source communities
- Building a sustainable pipeline of open source contributors
- Get started in open source with the CHAOSS Education Project
- Measuring open source community health with Savannah
This article is adapted from “Getting Started With Open Source” by Matt Caswell and is republished with permission from the author.
The opinions expressed on this website are those of each author, not of the author's employer or All Things Open/We Love Open Source.