Training Missions

About the training missions

Some video games have a “training level” where you can get shot at without dying. These training missions are a place to learn open source contribution skills without getting burned.

A training mission shuns “manuals” and long, boring blobs of text. Instead it says, “Here’s a short, concrete task to perform. Interact with this web-based robot here, and it will tell you if you succeeded.”

Get to know about: "The Shell"

These missions teach you about how to use the command line tool called as the "shell" and few basic commands which will help you in other missions.

Using the shell

Learn how to use the shell and play with commands.

Before the missions: Prepare your command line

Contributing to free, open source software frequently requires using a text-based command line. Our training missions are written with that in mind. A command line is available on Windows, Mac OS, Linux, and other systems, and we can show you how to launch it and play around in it.

If you're not sure how to use a command prompt to run programs like tar, diff, and git on Windows, you can get started with "Prepare your command line" below. We have not written our own instructions for other platforms yet, but you can try these external resources for Ubuntu and Mac OS.


Get "Git Bash" and GNU tools on Windows.

Get to know the tech used within open source

These missions give you a tour of command-line tools you may run into when contributing to free software.

Using tar

Learn how to work with tar archives.

Using diff and patch

Learn how to use diff and patch to submit changes to a project or apply others' changes.

Practice contributing to a project

These missions let you practice sharing a patch with a maintainer.

Using Subversion

Learn how to interact with projects that use the Subversion version control system.

Using git

Learn how to interact with projects that use the Git version control system.

Setup your Python environment

These missions teach you how to install Python packages and create virtual environments.

Using pip and virtualenv

Learn how to install Python packages and how to work with virtual environments.

Where they came from, and where they're going

You can read about vision behind the training missions on the OpenHatch blog. They were initially built as a Google Summer of Code project.

Now, our community of volunteers takes care of creating more missions and fixing bugs in them. We could use feedback, and if you want to jump in to help, we'd love to have you! Get in touch with us and let us know what you think (or how you want to help out!). If you get stuck, read our tips.