Skip to content

Collaboration: Coding Together 🤝💻

Writing code alone is like playing a single-player game. Working in a team is like a multiplayer game. You need to coordinate so you don't crash into each other.

In software, we use tools like Git to manage this coordination.

The "Shared State" Problem ⚔️

Imagine you and a friend are editing the same Python file at the same time on Google Drive.

  • You change line 10.
  • Friend changes line 10.
  • Conflict! Who wins?

This is a Race Condition. We avoid this using Version Control.

The Workflow: Branches & Pull Requests 🌿

Instead of editing the "Main" code directly, we create a copy.

1. The Branch (The Copy)

You create a separate workspace called a Branch.

  • main branch: The working game.
  • feature-jump branch: Your playground to add jumping.

You can break everything in your branch, and the main game is safe.

2. The Pull Request (The Review) 🔍

When you are done, you don't just "Save". You ask for a Pull Request (PR). This is like handing your homework to a friend to check for mistakes before handing it to the teacher.

Why Review?

  1. Catch Bugs: "Hey, this while loop runs forever!"
  2. Learn: "Did you know there is a simpler way to sort this list?"
  3. Style: "Please add spaces around the = sign."

3. The Merge (The Save) 💾

Once your friend says "Looks Good To Me" (LGTM), you Merge your branch into main. Now everyone has your new feature.

Pair Programming: Coding with a Co-Pilot ✈️

Sometimes, instead of reviewing code after, we review it while writing it.

Two people, one computer.

  • The Driver: Has the keyboard. Focuses on typing correct syntax.
  • The Navigator: Watches the screen. Focuses on the big picture ("What if the user enters -1?").

Benefit: You spot bugs instantly. Two brains are better than one.

The "Bus Factor" 🚌

Question: If the only person who understands the code wins the lottery and leaves, what happens?

  • Bus Factor = 1: The project dies. (Bad!)
  • Bus Factor = High: Everyone knows how it works because you did Code Reviews. (Good!)

Task: The Code Review 🧐

Task

Scenario: Your teammate wrote this function. Review it. What feedback would you give?

python
def c(x):
    # calculates stuff
    return x * 1.8 + 32
Possible Feedback
  1. Naming: Rename c to celsius_to_fahrenheit so we know what it does.
  2. Documentation: Add a docstring explaining the math.
  3. Variables: Rename x to celsius.