Introduction

For over two years now, I have devoted most of my time to either building open source software or alerting developers of issues with “their” software. I use their in quotes because open source software really is community software and most developers have the community’s needs first.

During this time, I have grown a lot as a developer and believe that most of this growth has come from my involvement with developer communities be it over at StackOverflow or GitHub. For this reason, I thought it would be wise to share my views on student involvement in open source software. I summarize these under five points below.

Why encourage students to contribute to open source software?

Sense of belonging and involvement

The developer world is now making a lot of effort to promote inclusiveness. I think one way to achieve this is to encourage students to contribute to open source software that they love or use daily.

One way to promote this could be to remind students that contributions need not be limited to code contributions. It could be that students could contribute through grammar improvements or public engagement via social media for instance. While to seasoned developers these contributions might seem trivial, I think students will generally have their enthusiasm for contributions enhanced once they realize that their favorite software includes contributions they made. Nothing beats a sense of involvement. Even when their contributions were rejected or improvements suggested, experience with this process makes them feel involved in the software they use.

Appreciation of the software development process

Related to the above, and especially relevant for non computer science students, involvement in the software development process lets students view their software from a different perspective. From understanding that seemingly obvious bugs may go undetected if not reported to appreciating just how much (free) time, developers devote to such software, students with an understanding of the development process will likely be more patient with and appreciative of the software they use.

Personal Development

It has been stated that the best way to learn any programming language is to build tools with it. Back when I first started answering questions on StackOverflow for instance, I was not nearly as proficient in say R as I am today. Merely knowing the problems that exist in the open source world extends one’s thought process to think of a language in a much more advanced way.

By contributing either to their own projects or established and popular open source projects, students are more likely to improve as individuals. While this requires a lot of persistence and time, I have found(as a student) that with every new topic I learned came new enthusiasm. Even for students very passionate about software development, seeing how much they have progressed by looking back at their previous and current contributions would most likely motivate them to pursue further personal growth.

Life outside the classroom

For some students, it could well be that the only time they ever use software will be in the classroom for class related work. While it is important to have a structured syllabus to follow, I think student contribution to open source software exposes them to a different world. While a simple calculator project could have been done so many times, thinking of ways to improve an existing calculator project could improve a student’s creativity. By contributing to software written by someone else, students not only learn about reviewing code but also the importance of documentation while meeting new people. The latter might lead to lifelong relationships and/or industry/academic collaborations, which is often a win-win.

Gaining Experience

Finally, I think one underrated value of open source contributions is the chance to gain experience. Granted this may not be as prestigious as say a summer internship at the big software companies but what one can learn from such an experience is often not emphasized enough. In my opinion, open source contributions provide an avenue, especially in areas with little to no opportunities for students to showcase their skills and learn from others.

Conclusion

I have kept this post to only five points as I like to keep things as brief as possible. However, the benefits of student open source contributions likely go beyond these five points. While this post may feel directed to students interested in developing as opposed to using software, I believe that encouraging open source contributions will lead to more students going from the former to latter group, a shift that will likely benefit the developer community.

Thank you very much for reading. As always, do contact me if you have any feedback and/or criticism.

Keep Building!