Open source is a key that can unlock many doors: tremendous learning, compelling career benefits, and industry-wide impact.
Every software engineer inevitably consumes open-source software, but they rarely contribute back. **Let's change that**! The transition from open source *consumer* to *contributor* might feel daunting, but the rewards are enormous.
This course covers everything you need to contribute meaningfully to existing open-source software projects. What you'll learn by the end:
- 🚀 Understand the benefits of contributing to open-source
- 🤯 Set up the right mindset for working in open source
- 💨 Learn how to demystify a new codebase
- 👩🏽💻 Master the code and submit changes to it
You'll learn directly from the former Head of Open Source at Meta. James also runs his own sizeable [open-source project](https://github.com/tinyplex/tinybase). What's included:
### Open Source Terminology
Let's remove any confusion about the terms you've likely heard thrown around: projects, repos, issues, and pull requests. We'll talk about what exactly open source is and why it has so many benefits for the industry and for you.
### Discover How To Contribute To Open Source
With so many organizations and individuals involved in open source, it can be daunting to decide where to contribute. A few critical ideas are covered here:
- Finding something you use (which you may not even realize is open-source)
- Finding companies active in open source development
- Evaluating a project's health so you don't waste your time
### Learning The Codebase
We'll cover tips and tricks to make sense of a large project: how do you understand the basics, the most important modules, and learn the social aspect of open-source contributions?
We'll also cover the recommended steps when making commits and landing changes. Ideally, your contributions get reviewed quickly while building trust with the project authors.
Overview
Syllabus
- Introduction
- Course + James Intro
- How This Course Works
- A Quick Intro To Open Source
- What Is Open Source?
- Projects, Repos, Issues, Pull Requests
- Why Work On Open Source?
- The Benefits Of Open Source
- The Right Reason To Do Open Source
- Finding A Repository
- Improve Something You Use
- Find Companies Active In Open Source
- Solve A Need
- How To Evaluate A Project’s Health
- Deciding How To Participate
- Go With The Flow
- Identify A First Task
- Dipping Your Toes Into A Project
- Case Study: ReactJS Open Source Repo
- Find The Project Community
- Learning The Codebase
- Understand The Basics
- How Is The Project Laid Out?
- What Are the Most Important Modules?
- What Opinions Do The Authors Have?
- Share What You Learn
- Making Contributions
- Start With Something Small
- Good Practices When Making Commits
- Be Like Water
- Anticipate Common Pushback
- Conclusion
- Taking The Next Step In Open Source
Taught by
James Pearce