Add Spaced Repetition System to Wikis
Throwing this out there for discussion and feedback.
Problem to solve
Contributing to and learning a new-to-you, large repo is often intimidating. "What language does this use? What are this library's/project's main components? How does everything fit together?"
Sample applications can help new developers learn simple use cases, but they frequently fail to offer much depth.
This proposal aims to add that depth. Or at least, the ability to add that depth.
Intended users
Developers. Developer advocates. Teachers. DevOps.
Anyone being onboarded to a new company.
Further details
Further details, presented from a first-person perspective.
Now:
GitLab is a really cool project. I want to contribute, but that 277mb repo looks intimidating.
And it's written in Ruby? I avoided Ruby because it never seemed useful to me. Ugh.
I want to contribute, but do I really want to learn Ruby for this one project? With everything else I have going on?
What steps would be involved if I did? I'd have to first learn Ruby, then generate a TAGS file, step through the code, learn a few new packages.
Not now, I guess. Maybe after my current project's done.
Then:
GitLab is a really cool project. I want to contribute, but that 277mb repo looks intimidating.
And it's written in Ruby? I avoided Ruby because it never seemed useful to me. Ugh.
The README includes a "Learn this codebase" link. That's interesting. Let me click it.
Wow. These wiki quizzes will help me know if I understand the codebase well enough to contribute.
Learn Ruby in Y minutes? Check. Learn Git in Y minutes? Check.
Quiz myself on GitLab objects? Massive fail, but the well-written error messages did help me understand the code structure.
With a little less work than anticipated, I could add the feature myself and submit a PR.
All thanks to these wonderful quizzes. :)
Proposal
See above.
Permissions and Security
Anyone who can edit the Wiki can add to the quiz.
Documentation
The implementation could use inline code-style notation with a quiz block header:
```quiz
How much wood would a woodchuck chuck if a woodchuck could chuck wood?
A woodchuck would chuck as much would as a woodchuck could chuck if a woodchuck could chuck wood. 
```