Roadmap
This is a roadmap for how to get into open source. It is not a linear path, and you can jump in at any point. The most important thing is to get started, and to keep going.
The chart is written as a Mermaid diagram. You can make changes by editing the code in: guides/roadmap.mmd
%%{ init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#d494ff', 'primaryTextColor': '#161618', 'primaryBorderColor': '#161618', 'lineColor': '#6befe0', 'secondaryColor': '#5F54D5', 'tertiaryColor': '#fff' } } }%% graph LR style A fill:#759ad5; style B fill:#9c86ee; style C fill:#9c86ee; style D fill:#9c86ee; style E fill:#9c86ee; style F fill:#9c86ee; style G fill:#9c86ee; style H fill:#9c86ee; A(fa:fa-code-branch Open Source Developer Roadmap) %% Stage 1 A ==> B(fa:fa-play Stage 1: Introduction) B ==> B1(What is Open Source?) B1 --> B1a(Philosophy & Principles) B1 --> B1b(Benefits - Collaboration, Transparency, Community) B1 --> B1c(Challenges - Licensing, Governance, Sustainability) %% Stage 2 A ==> C(fa:fa-wrench Stage 2: Fundamental Tools) C ==> C1(Version Control with Git) C1 --> C1a(Basics - Init, Add, Commit, Push, Pull) C1 --> C1b(Branching & Merging) C1 --> C1c(Handling Conflicts) C1 --> C1d(Best Practices) C ==> C2(Using GitHub/GitLab/Bitbucket) C2 --> C2a(Repositories, Issues & PRs) C2 --> C2b(Forking vs Cloning) C2 --> C2c(GitHub Actions - CI/CD Basics) %% Stage 3 A ==> D(fa:fa-code Stage 3: Dive into Coding) D --> D1(Pick a Language) D1 --> D1a(Basics & Advanced Topics) D1 --> D1b(Libraries & Frameworks) D1 --> D1c(Community & Support) D ==> D2(Project Structure & Design Patterns) D2 --> D2a(Understanding Open Source Codebase) D2 --> D2b(Common Architectural Patterns) D2 --> D2c(Code Quality & Standards) %% Stage 4 A ==> E(fa:fa-people-line Stage 4: Engaging with the Community) E ==> E1(Finding the Right Project) E1 --> E1a(Good First Issue & Beginner Friendly) E1 --> E1b(Project's Vision, Goals, and Roadmap) E ==> E2(Communication Skills) E2 --> E2a(Engaging in Discussions) E2 --> E2b(Reporting Bugs & Enhancements) E2 --> E2c(Code Review Ethics & Best Practices) %% Stage 5 A ==> F(fa:fa-hands-holding-child Stage 5: Make Contributions) F ==> F1(Documentation & Testing) F1 --> F1a(Writing Clear Documentation) F1 --> F1b(Unit Testing & Test-Driven Development) F ==> F2(Bug Fixes & Feature Enhancements) F2 --> F2a(Debugging Strategies) F2 --> F2b(Collaborating with Project Maintainers) F ==> F3(Project Governance & Management) F3 --> F3a(Understanding Project's Governance Model) F3 --> F3b(Role of Maintainers, Contributors, and Users) %% Stage 6 A ==> G(fa:fa-brain Stage 6: Advanced Topics) G ==> G1(Open Source Licensing) G1 --> G1a(Common Licenses - MIT, GPL, Apache) G1 --> G1b(Choosing a License for Your Project) G ==> G2(Sustainability & Monetization) G2 --> G2a(Donations, Crowdfunding, Grants) G2 --> G2b(Open Core, Dual Licensing, Paid Support Models) %% Stage 7 A ==> H(fa:fa-rocket Stage 7: Your Own Project) H ==> H1(Starting a New Project) H1 --> H1a(Defining Vision & Scope) H1 --> H1b(Community Building & Management) H ==> H2(Continuous Integration & Deployment) H2 --> H2a(CI/CD Pipelines for Open Source) H2 --> H2b(Tools - Travis CI, CircleCI, GitHub Actions) H ==> H3(Project Leadership & Mentoring) H3 --> H3a(Nurturing New Contributors) H3 --> H3b(Setting & Managing Expectations)
Resources
Simple Introduction to Git
Open Source Guides from GitHub
Good First Issue - Find beginner-friendly tickets
First Contributions - Find projects to contribute to
Code Triage - Find Projects to Contribute to
Outreachy - Paid Open Source Internships for Beginners
Learn Git - Comprehensive yet simple guide from BitBucket
Git Immersion - Quick walk through of Git
Git Tips & Tricks
GitHub Cheatsheet and Hidden Features
Git GUIs for Windows, Mac and Linux
All about Git Hooks
Effective branching patterns of larger teams
Choose an open source license
Git Command Explorer