Many of us aspire to contribute to open source projects, but only a few are able to actually do it. We're all perennially short of time, and we're always prioritizing. But how do the people who actually contribute to projects find time? What is it that they know and others don't?
We can learn a great deal from those who contribute to open source projects on a regular basis—especially as we come to understand their thought processes and time management skills. In this interview, I talk to Trishna Guha, a undergraduate student studying computer science in West Bengal, India. Trishna is an alumna of DGPLUG (Durgapur Linux Users Group) summer program, and she has contributed to projects like Fedora, Docker, and the Python Software Foundation.
Started by Kushal Das in 2004, DGPLUG has been hosting a summer program aimed at helping students and other enthusiasts get started becoming upstream contributors (we've written about the group before). You can register for this year's summer program right now.
How did you get to know about DGPLUG?
I was in my fourth semester of studying computer science and engineering when I first heard about DGPLUG. My brother Suman Guha has told me about DGPLUG and their amazing motto: "work and contribution."
What was your motivation to join the summer course? What were the topics covered in the summer course?
I have always been an open source enthusiast. And when I heard about the awesome community from my brother I just couldn't wait to join in. He has always motivated me to do great things. I'm always enthusiastic to learn new things. Contributing to open source organizations, meeting amazing people and communities, and, of course, a deep interest of writing code have motivated me to join the summer training. I believe that I am able to achieve all these things after I joined the summer training and the great community DGPLUG.
Here are just a few of the topics we covered:
- How to communicate and the culture of open source
- Introduction to shell
- Buffer editors (Vim)
- Free software project guidelines
- Documentation (with Sphinx documentation)
- Source code management system (Git and Mercurial)
- Python (including object-oriented approach)
We also used to have guest sessions (previous speakers include Abhilash Raj and Shakthi Kannan).
How was the journey once the summer course was over? When did you make your first open source contribution?
My life has changed after the DGPLUG summer course was over. I started blogging. I began writing more code and became an open source contributor. I found some amazing mentors and friends from DGPLUG, who keep me motivated all the time. DGPLUG is a family to me.
I made my first successful contribution to Fedora as soon as the training ended. I made my first open source contribution on September 23, 2015.
I also didn't forget to blog about my experience in "My First Contribution to Fedora." I also recently contributed to Docker.
You have also contributed to The Python Software Foundation and served as the mentor for Google Summer of Code. These are big names in the open source software development landscape. How did you get involved in these projects? What was the first step?
I will be helping out The Python Software Foundation admins as a backup mentor in the 2016 Google Summer of Code. I have been successfully contributing to Fedora for more than six months. DGPLUG is the reason I became involved in these projects. My first step was attending DGPLUG summer training, being attentive, and then daring to pick up a beginner level bug and trying to fix it at any cost. It was all about getting started. For the rest, I went with the flow.
As a student, how easy or difficult it is to manage studies while contributing to FOSS projects?
I didn't find it difficult to manage studies while contributing to FOSS projects. Rather, I started learning the implementation of what I study when I started contributing to FOSS projects. I also learned time management, which is one of the most important aspects of our lives.
What were the issues you faced while contributing to FOSS projects. Any suggestions on how these projects can facilitate more contributions?
I hardly faced any issues while contributing to FOSS projects. But there are a few projects where new contributors are stuck while setting up their development environments on their local machines. They face trouble running local instances of the project. It would be nice if the procedure of setting up development environments became easier for new contributors, so they don't feel embarrassed at the first step.
What was the toughest aspect of contributing to FOSS projects? Culture, technical, openness, motivation, or something else?
The hardest part is finding a project you want to contribute to. But that became easier for me because of DGPLUG. The challenging aspect of contributing to FOSS projects for me was sticking to a bug that I had chosen to fix and working hard enough to fix it, even if I failed after several attempts. I learned what patience and hard work actually are.