DEV Community

Cover image for Why High School is the Perfect Time to Start Contributing to Open Source
Giovanni Zanotti
Giovanni Zanotti

Posted on Originally published at Medium

Why High School is the Perfect Time to Start Contributing to Open Source

I. The Myth: I’m not ready…

SymPy CLI Execution

My biggest fear before starting was the lack of experience. I used to think you had to be a senior software developer to even touch an Open Source project, let alone become part of its community. I won’t lie, the first moments are the hardest. Opening a repository and seeing hundreds of thousands of lines of code is intimidating, and the urge to quit immediately is strong. I was convinced it would take me months to make my first contribution. But then, I explored the project’s issues and stumbled upon the “beginner-friendly” labels. Seeing those was the spark that changed my mindset: Wait, I can actually do this too.

II. Choose the Project: why I chose SymPy

Math symbols on blackboard

However, before making a contribution, you face the hardest decision: ‘Which project should I join?’. The answer is entirely up to you and what you love doing. Over the past few years, I’ve been diving deep into Python, and I have a genuine passion for mathematics. I really wanted to contribute under the Python Software Foundation umbrella, so I started exploring their projects. That’s when I stumbled upon SymPy, a Python library for symbolic math. Since I’ve always loved math at school, finding a project that perfectly merged my two biggest interests was an absolute goldmine.

III. The contribution reality (Not only code!)

GitHub Codespace Window

The reality of contributing is that you don’t need to sit down and read a massive codebase for hours before writing a single line. You just need to find a task within your reach! While browsing the open issues, I found one about adding type hints, and I knew that was my starting point. I focused on a few specific files, particularly in the solvers module, that clearly needed some work. The best part? I didn't even have to download the entire library locally. I simply spun up a GitHub-hosted environment to edit and run the code directly from my browser. I analyzed the functions' inputs and outputs to accurately define their parameters and return types. Sure, I ran into some conflicts, but dealing with them gets surprisingly easy once you learn how to read MyPy error logs. It might look intimidating from the outside, but in every big project, there is a perfect mix of simple and complex tasks just waiting to be tackled.

IV. Where everything starts: the first Pull Request (PR)

My First Accepted PR

As I mentioned earlier, the fear of not being experienced enough is real, and right after writing your first lines of code, that imposter syndrome might come rushing back. In open source, you can’t just push your code directly into the main project; it has to pass numerous automated tests and a code review. Mentors and reviewers can sometimes feel like unreachable giants, sitting there with a red marker ready to judge your work. But the reality is completely different: they are just developers like us who once started from scratch too. Most of the time, they are there to guide you and point out what needs improvement. Getting corrections doesn’t mean you aren’t welcome! It just means you need to iterate and adjust your work until it’s ready for a “Merge” — the moment your code officially joins the project. After some back-and-forth, fixing things, and learning a ton from my mentor’s feedback, my code was finally approved. And that is when the ultimate satisfaction hits: seeing that beautiful purple [MERGED] badge appear on your Pull Request. You can finally take a deep breath and say, 'I did it!'. Sure, a single PR might not change the world, but knowing your code is now part of something much bigger is an incredible feeling.

V. Open Source: everybody’s duty

Obtainable Skills

It might seem like the Open Source world is completely out of reach for high schoolers, but the reality is the exact opposite! Contributing to an Open Source project teaches you crucial skills that you simply won’t learn in a traditional classroom:

  • Navigating Git on massive, real-world projects
  • Practicing technical English by communicating with international mentors and peers
  • Working with GitHub Actions (CI/CD) and strictly following formatting standards

But beyond the technical skills, contributing to Open Source feels like a moral duty. It’s our way of giving something back to the giant sea of free libraries and tools that we rely on every single day to build our own projects!

VI. Conclusion

GSoC Logo

Whether you are a high school student or anyone else looking to learn — you don’t need a fancy title to start contributing. Now is the perfect time! Hop on GitHub, do a quick search, and look for repositories with ‘good first issue’ or ‘beginner-friendly’ tags. The fix might seem small, but landing that first PR will give you the momentum you need to eventually tackle much bigger challenges. For me, this was just the first step on an exciting new path: I have officially submitted my proposal for the Google Summer of Code 2026! I’m hoping to spend my summer diving even deeper into SymPy. Fingers crossed!

VII. About the Author

Hi, I’m GiZano! I am a BSc in CS at University of Pisa, deeply passionate about IoT, local AI, and sustainable technology. As an active Open Source contributor, my goal is to dive deeper into the FOSS (Free and Open-Source Software) world and help make tech accessible to anyone.

Let's connect!
Linkedin
GitHub
Personal website

This article was originally published on my Medium blog.

Top comments (0)