This is a submission for the 2024 Hacktoberfest Writing challenge: Contributor Experience
Introduction
Contributing to Hacktoberfest 2024 led me to delve deeper into.NET 8 and C# 12. I had an amazing experience solving problems, developing my skill set, and feeling the fulfillment of contributing code to open-source projects thanks to the projects I worked on. It was a fantastic opportunity to improve my NUnit testing abilities and deepen my understanding of algorithms. Take a look back at my four PRs and the lessons I took away from them!
The Projects I Contributed To
For this yearโs Hacktoberfest, I completed all four PRs, each one exploring a unique algorithm:
1. Geofencing Implementation with Unit Test
Objective: This project involved checking if a userโs location is within a specified geofence boundary.
Learning: I discovered how critical it is to use edge cases in testing, like points precisely on the boundary, and how important geolocation accuracy is. Using NUnit, I tested various latitudes and longitudes, which made me realize how subtle changes can affect results in geospatial calculations.
2. Triangulation Algorithm
Objective: Implementing a triangulation algorithm to calculate a userโs position based on three base stations' distances.
Learning: This was my first in-depth study of C# triangulation. Managing accuracy when working with large datasets was an interesting but difficult process. Through NUnit tests, I found that small changes in distance values could yield different results. Working with this algorithm improved my problem-solving and math skills, especially around geometric computations.
3. Geohashing Feature
Objective: I worked on encoding geographic coordinates into Geohash strings using an Encode method and verified the accuracy with NUnit.
Learning: Geohashing was unfamiliar to me, and understanding the algorithm's balance of precision and simplicity opened my eyes to its practical applications in location-based services. I tested random locations across Vietnam to validate its reliability, and this broadened my perspective on regional data.
4. Recommender Systems by User-Based Collaborative Filtering
Objective: This was an exciting venture into User-based Collaborative Filtering, a key algorithm in recommender systems.
Learning: Implementing the Pearson correlation to calculate similarity and using weighted sums for rating predictions was a satisfying experience. Seeing the algorithm successfully recommend items based on user preferences emphasized how useful collaborative filtering is in real-world applications like streaming and e-commerce.
Reflections on the Hacktoberfest Experience
Hacktoberfest 2024 wasnโt just about getting PRs accepted. It was an immersive experience that offered opportunities to:
- Collaborate with maintainers who provided useful feedback.
- Use NUnit to improve code quality by rigorously testing and covering all edge cases.
- Learn new algorithms that I had not previously worked with in depth, such as triangulation and collaborative filtering.
- Give back to the community by participating in projects that may benefit developers worldwide.
I joined Hacktoberfest because I wanted to learn, contribute, and be part of a global movement that supports open source. Hacktoberfest has a way of inspiring commitment and creativity, and Iโm already looking forward to next year!
Thank you, Hacktoberfest team, for organizing this amazing event. To fellow contributors, keep pushing boundaries and happy coding! ๐งโ๐ปโจ
Top comments (5)
Geofencing Implementation with Unit Test: here
Recommender Systems by User-based Collaborative Filtering: here
Triangulation algorithms to find your location: here
Geohashing Feature with Unit Tests: here
Letโs me know one you have any ideal or questions