Open Source
Even the greatest was once a beginner. Don’t be afraid to take that first step.
— Muhammad Ali

This guide is for anyone who is ready to move from curiosity to contribution. Getting started with open source can feel intimidating, but it doesn’t have to be. I’ll walk through how to pick your first project, what to expect, and how to make meaningful contributions.
Getting Started 🎢
There are millions of open source projects out there, so it can be hard to figure out where to get started. Here's some practical advice.
Start with What You Know
The most practical place to start is with a tool or library you already use. Maybe it’s a framework you work with daily, a CLI tool you rely on, or a Python package that you really like. Familiarity gives you a huge advantage. You already understand how it works, where it excels, where it is lacking, and what features or bugs need attention.
Even better, you might already have ideas for improvement. Maybe you’ve noticed a small bug, or maybe there’s a feature you’ve always wished existed. Working on something you know a lot about is a great place to start.
Follow Your Interests
Alternately, if you don’t have a specific tool in mind, start with a topic you’re passionate about. Into LLMs? Look at projects like LangChain, LlamaIndex, or Hugging Face. Into machine learning? Check out Scikit-learn, PyTorch, or XGBoost. Love programming languages? Take a look at CPython or Rust.
The important part is not to obsess over finding the “perfect” first project. Just pick something you like and go for it. You’ll learn far more by doing than by looking around.
Don’t Be Intimidated 😰
Open source projects can feel overwhelming at first. Some repositories have hundreds of pull requests, thousands of issues, and enormous codebases. That’s okay, you’re not expected to understand the entire codebase from day one.
It helps to start small. Focus on tasks that are limited in scope, like:
- Fixing or improving documentation
- Opening an issue with well written and reproducible examples
- Cleaning up small pieces of code
Many projects tag beginner friendly issues with labels like good first issue. These are intentionally scoped to be approachable and are a great way to start building comfort with the forking and pull request workflow.
These contributions might seem minor, but they go a long way. No one expects you to come in and rewrite everything on your first day.
Always Read the Instructions 📚
Before you write a single line of code, please take the time to read the project's CONTRIBUTING.md and CODE_OF_CONDUCT.md files. These documents usually live in the root of the repository and outline exactly how to contribute. A well written contributing guide will give step by step instructions detailing how to fork the repository, commit changes, run tests, lint/format code, and open a pull request.
Good contributing docs are a sign of a healthy project. If a repository doesn’t take the time to explain how to contribute, it may not be welcoming to newcomers. Communication matters, and a good guide often reflects thoughtful maintainers who respect your time and effort.
Likewise, the code of conduct is there for a reason. It tells you how the community treats people. If the tone suggests arrogance or gatekeeping, it’s okay to walk away and find a healthier group of developers to work with.
Engage with the Community 👥
Open source isn’t just about code, it’s about people. If the project has a Discord, Slack, or GitHub Discussions page, hop in. Introduce yourself. Ask questions. See what people are working on.
Be Open to Feedback 🔁
No one writes perfect code, especially not on the first try. You’ll almost always get feedback on your PRs, and that’s a good thing. Don’t take it personally. Reviewers are trying to help you write better, cleaner, more maintainable code. Ask questions, iterate, and treat it like a learning opportunity. Always be respectful and professional.
Final Thoughts 💭
Contributing to open source can be one of the most rewarding experiences. You’ll build high impact software, work with people from around the world, and pick up skills that go far beyond what you’d learn in a classroom or at work.
It’s okay to feel overwhelmed at first, but the best way to get better is to just start. Pick something you care about, read the docs, ask questions, and take your first step.