Week 1

Why Open Source?

When I hear the term open source, I think of projects like Linux, Python, and React.js—large-scale open-source software that has fundamentally shaped modern computing. These projects are built and maintained by communities: people report issues, submit pull requests, review code, and collectively improve the software over time.

Anyone can contribute to open-source projects, regardless of experience level. Contributions are not limited to writing code; they can also include fixing typos, improving documentation, providing translations, or reporting bugs. Open source also serves as a valuable learning resource. By reading real-world codebases, contributors can understand how software is structured and how specific features are implemented in practice.

At the same time, open-source projects come with challenges. Because contributors have different backgrounds and coding styles, the codebase may not always be perfectly consistent, well-maintained, or thoroughly documented. Security can also be a concern if configurations or dependencies are not carefully managed.

I registered for this class because I want to move from being a user of open-source software to an active contributor. Recently, I encountered a bug while using iNaturalist, and instead of simply working around it, I became interested in locating the source of the problem and attempting to fix it myself.

Four Projects That Influenced Me

1. iNaturalist

As an avid birder, I use iNaturalist almost daily to explore observation records, plan birding routes, and identify species. I also contribute to the platform by uploading my own observations. I strongly appreciate the idea behind the software: it connects the public with scientists through citizen science. The large-scale data contributed by users not only supports ecological research but also benefits enthusiasts and researchers like me.

2. Java (OpenJDK)

Java has been one of the primary programming languages I have used in coursework and personal projects to learn core computer science concepts. Beyond using the language itself, I have read parts of Java’s source code—such as the implementations of ArrayList and HashMap—to better understand design decisions and underlying principles in data structure implementation.

3. PyTorch

As a computer science and data science student, I frequently use PyTorch in machine learning–related courses and personal projects.

4. Wikipedia

I use Wikipedia to gain a basic understanding of things. I appreciate its collaborative nature and people’s efforts in maintaining such a huge shared knowledge base.

Written before or on January 25, 2026