Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add extra guidance on mentored pair programming #1133

Merged
merged 12 commits into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions org-cyf-guides/content/pair-programming/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+++
title = 'Pair programming'
description = 'Practice writing code and getting support'
emoji = '👥'
+++

Pair programming is an excellent way to develop programming and communication skills.

It is often much easier to work through a problem when working with someone 1-to-1.
illicitonion marked this conversation as resolved.
Show resolved Hide resolved

It also helps our trainees to prepare for technical interviews when they'll need to code in front of other people.
illicitonion marked this conversation as resolved.
Show resolved Hide resolved

## What

Pair programming is working together with someone else to code a solution to a problem.

Pick a piece of programming to do, find a buddy, and work on it together.

Sometimes one person does all of the writing, and has discussion with the other. Other times, people take turns writing.
Original file line number Diff line number Diff line change
@@ -1,30 +1,19 @@
+++
title = 'Pair programming'
title = 'Guidance'
description = 'Practice writing code and getting support'
emoji = '👥'
weight = 1
+++

Pair programming is an excellent way to develop programming and communication skills.
## How

It is often much easier to work through something when working on something 1-to-1.
You can do pair programming in person (sharing one computer), or remotely (either by sharing your screen, or using something like [CodeTogether](https://marketplace.visualstudio.com/items?itemName=genuitecllc.codetogether)).

It is also helps our trainees to prepare for technical interviews when they'll need to code in front of other people.

## What

Pair programming is working together with someone else to code a solution to a problem.

Pick a piece of programming to do, find a buddy, and work on it together.

You can do this in person (sharing one computer), or remotely (either by sharing your screen, or using something like [CodeTogether](https://marketplace.visualstudio.com/items?itemName=genuitecllc.codetogether)).

Sometimes one person does all of the writing, and has discussion with the other. Other times, people take turns writing.

## Guidance for trainees
## Guidance for learners

When approaching a problem, you need to **explain your thought process**, **plan out what to do**, **write the code**, and **check that it works**.

## Guidance for volunteers
## Guidance for mentors

**Help people learn**: Most of the exercises the trainees are doing aren't useful in their own right. The point is for the trainee to learn and grow through them. Focus on understanding, and techniques that will help solve the next problem.

Expand Down
28 changes: 28 additions & 0 deletions org-cyf-guides/content/pair-programming/mentored/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
+++
title = 'Mentored pair programming'
description = 'Practice writing code and getting support'
emoji = '👥'
weight = 2
+++

We assign **mentored pair programming** as a coursework assignment throughout the course.

All of the standard [pair programming guidance](../guidance) applies - make sure you're familiar with it.

**Before** a mentored pair programming session, learners should decide what they're going to pair on and share this with the volunteer, e.g. by sharing a link to a particular Codewars exercise, a particular piece of coursework, or some other problem.

**During** mentored pair programming, the **learner** should:
* Explain their throught process
illicitonion marked this conversation as resolved.
Show resolved Hide resolved
* Break down the problem
* Plan what code to write
* Write all of the code
* Check that it works

The **mentor** should:
* **Ask questions** to get the trainee thinking. It's always better to ask than tell.
illicitonion marked this conversation as resolved.
Show resolved Hide resolved
* Help the trainee think about breaking down the problem
* Support the trainee as they write code
* Help the trainee to debug their code
* Stretch the trainee by bringing up extra concerns
illicitonion marked this conversation as resolved.
Show resolved Hide resolved

This is different from other forms of pair programming, where both people may be expected to write code, or people may take turns at different roles. This is because the goal is different - the goal is teaching.
illicitonion marked this conversation as resolved.
Show resolved Hide resolved
Loading