# Rust Contributor Program
Doc Jones
---
# Rustc Reading Club
TL;DR: Phase I Retrospective
* Need dedicated tracks
* Indefinite commitment considered harmful
* Learn tooling for contributor aspirants
---
## How we got here
* May 18, 2021
* The writing club
* Chaos at the first session
* Phase I Retrospective
---
## The future we want
----
![Gonzo](https://i.imgur.com/rfR2L7k.png)
<!-- ![Alf](https://i.imgur.com/IdCM1kG.png) -->
"I want to learn to code in rustc"
----
<img src="https://i.imgflip.com/6cki4d.jpg" alt="I want you to contribute to Rust" height="400"/>
"Apply now!"
Join the spring cohort of `RustContributor::new`
----
## RustContributor::new
* 🐛 Get assigned a bug of your very own!
* 💬 Dedicated stream for you and your cohort!
* ✋ Office hours where you can get answers!
* 💰 Fix a bug or your money back!
----
![Gonzo's cohort](https://i.imgur.com/GQyIE93.jpg)
<!-- ![Alf and friends](https://i.imgur.com/qB6oc60.png) -->
Gonzo meets others in the cohort and they get to work.
----
![Muppets -- er, Rust team members](https://i.imgur.com/0LHwk8W.jpg)
Team members hold regular
office hours to answer questions.
----
<img alt="Gonzo graduates" src="https://i.imgur.com/KDQPIrp.jpg" width="70%"/>
<!-- ![Alf graduates](https://i.imgur.com/icuPJPB.png) -->
Finally, the big day! Their PRs are merged.
*[Pomp and Circumstance](https://www.youtube.com/watch?v=Kw-_Ew5bVxs) plays.*
<small>I know it's grover, not gonzo, sue me.</small>
----
## But Gonzo wants MORE
![Gonzo's cohort](https://i.imgur.com/GQyIE93.jpg)
Cohort is fixing smaller bugs but they want MORE.
----
## `RustContributor::grow`
<img alt="RustContributor::grow -- learn all the things" src="https://i.imgflip.com/6cltsl.jpg" width="65%"/>
Gonzo joins `RustContributor::grow`, in which team members explain parts of the code.
This month is @BigFish explaining the trait system.
----
<img alt="Gonzo and @BigFish" src="https://i.imgur.com/7SzhoT7.png" width="50%"/>
Once a week for the next 8 weeks, Gonza joins @BigFish and learns how a simple program is checked.
----
![Gonzo becomes a team member](https://i.imgur.com/GVCwtLO.jpg)
After a while, Gonzo has learned enough to become a full team member
---
### What did we just see?
Proposed program with two tracks:
* `RustContributor::new` -- twice per year
* `RustContributor::grow` -- every 8 weeks
----
### `RustContributor::new`
* Three team members commit for two months
* First month:
* find bugs that would be suitable and "hold" them, take applications
* Second month:
* create dedicated Zulip stream for cohort
* mentors available at a fixed time window
----
### `RustContributor::grow`
* One expert commits for 8 sessions or so
* pick some input programs and a part of the compiler
* advertise expected background knowledge and skill level
* walk through the example using pernosco
* or walk through the code
---
### What does it take to do this?
* **One** program manager/organizer to recruit people
* Twice a year:
* **Three** mentors to collect bugs, hold office hours
* Every 8 weeks:
* **One** mentor to pick some examples and walk through code
* Instructors leading RustContributor::grow
* **Badges** - Certified Rust Instructor
---
### Takeaways
* Let's design an *active education program*
* Target *new contributors* with twice yearly *cohorts*
* Target *all contributors* with regular walkthroughs
* Commit as a team to bringing new people in
----
![Closing image](https://i.imgur.com/LUNayGT.jpg)
{"metaMigratedAt":"2023-06-16T23:11:21.871Z","metaMigratedFrom":"YAML","title":"Rust Contributor Program","breaks":true,"contributors":"[{\"id\":\"27d8f2ac-a5dc-4ebe-8c31-cc45bcd8447e\",\"add\":4671,\"del\":1355},{\"id\":\"a796be9e-9a1d-425f-812f-58de05e425f9\",\"add\":337,\"del\":54}]"}