Code Monkey home page Code Monkey logo

intro_to_sprinting's Introduction

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 very steep learning curve and need to learn 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 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 anaconda, 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

intro_to_sprinting's People

Contributors

808kimosan avatar alestainer avatar briansmithbeta avatar bsthorpe742 avatar chalmerlowe avatar chris-nowlin avatar coeurderyan avatar costrouc avatar ctaylor08 avatar dmanier avatar encukou avatar horshacktest avatar ilankham avatar james-prior avatar jfmario avatar jimstearns206 avatar jkobyp avatar johnjohnsoniii avatar jpbatz avatar kjcole avatar meldex avatar michael-b-king avatar paulproteus avatar samsammurphy avatar seawolf42 avatar sockduct avatar steve-lorenz avatar tashamc avatar tathagata avatar yshshrm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.