Pajamas Migration Contributor Course Ideas

This issue is space to discuss an educational program focused on helping community contributors get invovled with the Pajamas Miration Projection.

Everything here is a draft and can certainly be changed.

Idea for a GitLab Achievement and a Course to Support it.

GitLab launches an achievement called  ”UI Component Library Migration”.
The purpose of this achievement is to invite contributors to help GitLab to complete our Pajamas Migration Project which will ensure that we are making use of Pajamas Compliant Components throughout GitLab.com

To obtain the achievement, you will be required to complete 10 issues that have the label of Pajamas Migration and at least 3 of the issues must have an issue weighting of at least 3.

To celebrate the launch of this achievement, GitLab is offering a 10 week course designed to help people who have little to no experience in contributing to a professional code base. The course is without cost and will help participants gain the real world skills that you need to obtain the ”UI Component Library Migration” achievement.

The course structure will be as follows:

  • Duration: 6 weeks
  • Time Commitment: 5-10 hours per week
  • Sessions:
    • Weekly 1 hour relaxed discussion style lesson with explanation of how GitLab frontend works with a different guest each week with AMA 
    • Weekly 2 hour Live coding lesson with a practical task for participants to complete
    • 2 x 2 hour dedicated “Office Hours” sessions where participants can work on the task assigned in the lesson with GitLab frontend engineers. (2 sessions in different timezones as this will require participants to join synchronously)
  • Fortnightly 1 on 1 mentoring sessions with each participant

We can accept a maximum of 10 participants in this course so that we can ensure time and attention is given to all participants. In saying that, anyone can follow this course asynchronously and work though it at their own pace.

Curriculum

Week Number

Discussion Lesson

Live Coding Lesson

Task given to Participants

1

Learning on the Job:

 - Learn only what you need to
- Make the cost benefit analysis for learning more
- In Engineering slower is often better, take your time
- Being Thorough
- Problem oriented learning
-Need to specify that the teaching style is hands-on and bottom up. It's hard on purpose.

Simple Button Migration part 1:
- Introduction to Pajamas migration project
- Understanding GitLab Issues

- GDK setup
- Migrate the button

Also covering General set up, what is ESlint, how does it work with prettier, what extensions should you have installed, how to navigate a large code base like gitlab

- Request having an issue assigned to you
- Creating a branch
- Migrate the button

2

The GDK and GitPod

- Why have a dev env?
- How does the community fork work? Why have it?
- What is GitPod? How does it work? what is it for?

Button Migration Part 2:
- validating changes
- creating an MR
- Writing a MR
- assigning a reviewer

Also covering:
How MRs work at GitLab:

- Commit messages

- How to write good descriptions

- Technical writing

- Levels of reviewer, ie maintainers 

- pre-push hooks
- pipelines
- what tests are run and when

- Validate the change with screenshots
- writing the MR
- requesting a review

3

Team Communication:
- How to Ask for Help
- Technical Writing
- The importance of understanding a task

4

GitLab Frontend, Vue and HAML

- how does the Frontend work

- how does routing work

5

Testing at GitLab

6

Community Contributions at GitLab and the GitLab Hero Program

Things we would need to do in order to start this:
- Prepare curriculum
- Ensure Pajamas Migration Issues are created and moderated
-

Edited by Lee Tickett