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