Week 7 – Choosing an Open Source Project
Working Toward a Project Choice
This week our group discussed which open source project we want to work on. The two main options we considered were freeCodeCamp and pandas. Some of my teammates suggested pandas because they have used it before in Python data analysis. However, I personally prefer freeCodeCamp.
One reason is the technical difficulty. From what I learned while researching both projects, pandas requires a deeper understanding of topics such as vectorization, memory layout, and the internal implementation of DataFrames. It also involves NumPy builds and sometimes even C or Cython compilation. For someone like me who does not have a very strong Python background, contributing to pandas may be more challenging.
On the other hand, freeCodeCamp is mainly based on JavaScript and web technologies. Although the setup process took some time, the overall development environment feels more approachable for beginners. I spent about one hour setting up the development environment following the wiki instructions. One difficulty was that the local machine setup requires the correct versions of Node.js, pnpm, Docker, and MongoDB, so it took some time to configure everything correctly. However, once the environment was set up, it became much easier to understand how the system runs.
I also forked the repository and prepared the development environment for freeCodeCamp:
https://github.com/Vincent08199/freeCodeCamp
Challenges Within the Group
One challenge our group is currently facing is that our expectations for the project may be slightly different. Some members are more familiar with pandas and are interested in working on a data science related project, while others may prefer something more web-based like freeCodeCamp. Because of this, our group discussion is still ongoing.
Another issue is that our group might be a little ambitious. Both projects are large and complex open source projects, and we are still learning how to navigate their repositories and contribution guidelines. Different team members also have different levels of familiarity with these tools and technologies.
Moving Forward
To resolve this, I think our group needs to communicate more clearly about our strengths and learning goals. Instead of only focusing on the popularity of a project, we should also consider whether the project is realistic for us to contribute to within the course timeline.
Personally, I still lean toward freeCodeCamp because it seems easier to get started and may allow us to make meaningful contributions earlier. However, I am open to discussing with the group and finding a project that everyone feels comfortable working on.
For the next step, I plan to continue exploring the freeCodeCamp repository and look for beginner-friendly issues. At the same time, our group will keep discussing which project fits our team best.
