• Stars
    star
    107
  • Rank 317,336 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created almost 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A gentle introduction to contributing to open source projects / open source sprints

Intro to Sprinting

This project is designed to help beginners learn AND practice the basic skills necessary to contribute to open source projects. While it is designed to be delivered as a workshop for a group of students, it can also be used individually as self-study.

It can be used in multiple ways:

  • as a lead-in for open source sprints at programming conferences
  • as class material for teachers
  • as preparation for hackathons OR group projects
  • as a resource for open source project leaders

Why an introduction to sprinting?

At many programming conferences, time is set aside for developers to come together to work on open source projects (called sprints or sprinting). Many project leaders welcome new developers of all skill levels to contribute. This works fine if a newcomer has contributed to a project before and has an understanding of the tools and processes.

The struggle for both the project maintainer and the newcomer has been that beginners often have a significant learning curve and need to become familiar with too many new tools and new skills before they can successfully contribute.

They often turn to the sprint leader for help and mentoring on the basics of "contributing to open source". Things like these are fundamental skills, most of which are not specific to a given project.

  • using version control software,
  • interacting with version control repositories (repos)
  • process of submitting patches and contributions
  • setting up virtual environments (for Python developers)

They are often limited by the sprint leader's availability to help them learn. The sprint leader becomes, through no fault of their own, a bottleneck. The beginners often spend so much time figuring out the basics that they can't really get into the project sufficiently to understand nuances of the bugs they want to fix OR the contributions they want to add. Due to limitations on time, new contributors often leave the sprints without having successfully contributed to the project, at all. Furthermore, once new contributors arrive at home, they are often so removed from the project and the mentorship opportunity, that they may not be able to pick up from where they left off.

This project aims to fix some of these problems by having materials and instructions available via group/classroom study AND self-study so that new contributors can learn the basics before they ever sit down with their sprint leader and can start focusing more on the project and less on the learning curve. In addition, should they run into a problem, they have a ready resource to return to, thus taking some of the burden off the sprint lead.

Overview

This workshop provides a high-level overview of the steps, tools and tradecraft needed to introduce beginners to open source sprints. The workshop provides lecture/demo AND lots of hands-on in the following areas.

  • Using version control tools such as git and github
  • Hands-on: Creating additions and changes to an open source project
  • Getting those changes incorporated into the project via pull requests
  • Understanding, creating, and using virtual environments

In addition, the overview will include numerous resources for self-study.

This project is based on conda, git, and github for Python sprints. This project can be modified for the needs of other sprints and other languages.

Prerequisites

Beginners will need to already know the following:

  • How to edit plain text files on their computer

It helps if a beginner knows:

  • The basics of using the command line (cd, ls/dir, etc)

For help with the above, see the Student Preparation instructions

Beginners will NOT need to have in-depth knowledge on the following:

  1. Programming OR Python (many contributors to open source never write code: they help with design, documentation, etc)
  2. Any specific open source project
Next
Table of Contents

More Repositories

1

stats_and_probability

Tutorial on statistics and probability
Jupyter Notebook
34
star
2

machine_learning

A gentle introduction to machine learning: data handling, linear regression, naive bayes, clustering
Jupyter Notebook
24
star
3

bokeh_tutorial

HTML
20
star
4

jarvis_II

Data Analysis Tutorials created by The Dark Art of Coding
Jupyter Notebook
16
star
5

jupyter_tutorial

An introduction to Jupyter and Jupyter Labs for data analysis, data science, and Python development
Jupyter Notebook
12
star
6

intro_to_sprinting_codeless_project

A sample "code-less" project in support of the "Intro to Sprinting" workshop.
10
star
7

data-analysis-courseware

College course focused on intro to Python and Data Analysis, including pandas
Jupyter Notebook
10
star
8

darkartofcoding

assorted class materials for the dark art of coding intro to python course
HTML
3
star
9

data_generator

Python
2
star
10

lightningpro

Lightning Talk management tool
Python
2
star
11

coding_puzzles

A collection of puzzles suitable for learning programming, coding, and problem solving skills.
Python
1
star
12

scoring_and_validation

Lesson related to scoring and validation of machine learning models
Jupyter Notebook
1
star
13

microbit_tutorial_I

Intro to the BBC micro:bit hands-on tutorial
Jupyter Notebook
1
star
14

bokeh_governance

suggested governance documents for the bokeh project
1
star
15

tutorial_prep_stats

Preparatory instructions regarding downloads/installs, etc for a tutorial
Jupyter Notebook
1
star
16

git_bisect_demo

Demonstration of git bisect and assorted git commands
1
star
17

apuzzle

apuzzle
Python
1
star
18

validation

Jupyter Notebook
1
star
19

configs

Some sample configs
1
star
20

montyhall

Short script created by N. Lowe to simulate the Monty Hall problem
Python
1
star
21

demo-script

Launches a demonstration script that runs through IPython Demo files
Python
1
star