Pathway

Contributing to a Project

For those building the craft of contributing: code, issues, and docs, plus testing, packaging, and reproducible workflows.

Open Source Literacy

Version Control Basics

Intermediate3h 30m

course

Contributor, Maintainer

Collaborative Git for Teams

This lesson explains how to use Git for collaborative software development, focusing on advanced Git techniques such as branching, merging, and conflict resolution.

Prerequisites

Introduction to Git
Updated 4mo ago

Community Management

Intermediate

guide

Community Manager, Maintainer

Collaboration in Open Research Projects

A comprehensive reference guide covering collaboration practices in open research — community setup, GitHub workflows, code review, meetings and events, leadership, and research infrastructure roles. Part of The Turing Way open handbook.

Prerequisites

Introduction to Git
Updated 2mo ago

Packaging

Beginner7h 25m

course

Contributor, Maintainer

R Packaging

This workshop will provide you with the basics for writing your own packages in R.

Prerequisites

Introduction to Git
Updated 2mo ago
Intermediate2h 2m

workshop

Contributor, Maintainer

Python Packaging

This lesson teaches how to create and publish packages in Python. We assume a basic understanding of Python, and assume learners are comfortable using simple commands in a Bash shell.

Updated 1y ago
Intermediate10h 5m

course

Contributor, Maintainer

Building Better Research Software

This short course is teaching tools and practices for producing and sharing quality, sustainable and FAIR (Findable, Accessible, Interoperable and Reusable) research software to support open and reproducible research. The course can be delivered over 2 full or 4 half days.

Prerequisites

Introduction to Git
Updated 2mo ago

Testing

Intermediate17h 15m

course

Contributor, Maintainer

Intermediate Research Software Development

This course aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language (see detailed learning objectives below).

Updated 2mo ago

Reproducible Research

Beginner5h

workshop

Contributor, Maintainer

Introduction to Docker and Podman

This lesson covers the fundamentals of Docker, including creating containers, managing Docker images, and using Docker for software reproducibility and deployment.

Updated 3mo ago
Beginner3h 39m

workshop

Contributor, Maintainer

Good Enough Practices in Scientific Computing

A set of practical computing habits every researcher can adopt — covering data management, code organization, collaboration, version control, and project structure.

Intermediate

guide

Contributor, Maintainer

Reproducible Research

A comprehensive reference guide covering all aspects of reproducible research — version control, testing, data management, CI/CD, open research, licensing, and more. Part of The Turing Way open handbook.

Prerequisites

Introduction to Git
Updated 2mo ago

Software Design Patterns

Intermediate

workshop

Contributor, Maintainer

Modular Programming with Python

This lesson covers modular programming in Python, explaining how to write reusable code in modules, organize codebases, and test them to improve collaboration and maintainability.

Prerequisites

Introduction to Git
Updated 4mo ago