Week 1 - Jumping Into Open Source

Prior to this class, I had heard the term “open source” used to describe some software projects and meddled in some projects myself. But if I’m being honest, I didn’t know all the ins and outs. I’ve since learned that open source has some very clear principles - it should be available for anyone to access, read, modify, and distribute. The openness allows for collaborations between developers tackling common problems. Pretty amazing!

As I’ve been learning more about open source, I’ve started to see more advantages. Firstly, there is code transparency as we can see what’s happening behind the scenes. Since anyone can contribute, high quality software can be produced as numerous different minds are working on it, leading to faster innovation. On the other hand, closed source does allow companies to keep proprietary information confidential and make profit from their products. Hence, there are pros and cons to both approaches.

That said, open source is not without some challenges. Not all projects have good support teams and active contributers. Without monetary incentives, vital tasks that might be boring might be incomplete. And without multiple eyes looking at the project, there also might be security issues.

I’m intrigued to discover how many integral tools in my programming toolkit originate from open source communities. Git and JupyterLab are indispensable in my software development journey - yet it hadn’t previously dawned on me that these were open source! Some other open source projects I’ve been consistently using are Python libraries such as Matplotlib and Pandas. After directly relying on Matplotlib’s plotting capabilities, I was curious to peek behind the scenes and contribute code fixes. Not only did this improve skills like version control using Git, but working within a public codebase also connected me to the power of open source collaboration.

I opted to take this open source software development course to continue to challenge myself to collaborate with different people and a variety of coding styles. Having utilized numerous open source software and tools in my work, I am compelled to actively contribute to these communities that have provided me with invaluable programming building blocks.

Written before or on January 25, 2024