Skip to content

Open Source: Diving In

Even the greatest was once a beginner. Don’t be afraid to take that first step.

Muhammad Ali

This guide is for anyone who felt inspired by my previous post and is ready to move from curiosity to contribution. Getting started with open source can feel intimidating, but it doesn’t have to be. In this post, 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 can't live without. 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. Fixing 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 researching.

Don’t Be Intimidated 😰

Open source can feel overwhelming at first. Some repositories have hundreds of pull requests, thousands of issues, and codebases with over a million lines. 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 a typo in the documentation
  • Improving an unclear error message
  • Opening an issue with well written and reproducible examples
  • Cleaning up small pieces of code or refactoring

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 build momentum.

These contributions might seem minor, but they go a long way. They improve the project, support the maintainers, and show that you're engaged and thoughtful. No one expects you to come in and rewrite the core module on day #1.

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 repo and outline exactly how to contribute. A well written contributing guide will give step by step instructions detailing how to fork the repo, commit changes, run tests, lint/format code, and open a pull request.

Good contributing docs are a sign of a healthy project. If a repo 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. Many maintainers will happily help you get started if you show that you're genuinely interested and willing to learn.

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 that first step.

Happy Coding!

Published under the MIT License.