Skip to content

Instantly share code, notes, and snippets.

@bengm
Last active June 4, 2016 19:06
Show Gist options
  • Save bengm/c420e5a12bb6797b47e6 to your computer and use it in GitHub Desktop.
Save bengm/c420e5a12bb6797b47e6 to your computer and use it in GitHub Desktop.
High School Externship

High School Externship

Title: Contribute to Open Source Software

Time: 5 half day sessions (give or take) from June 10 - June 20 2016

Format: At least 3 sessions are be on-site at the company, and each session includes 30-60 minutes of background/tasking/status/feedback.

Who: Students who have some software development/coding background, and an interest in doing more. Could be destined for a software career or not.

Background: Open Source Software runs under much of the world's IT applications. This includes big-name projects like Linux, but also many smaller libraries. Communities maintain open source. That means that developers who see an issue or want a feature can create it and submit a "pull request" to get it incorporated into the software.

Structure: Light mentoring supports independent learning. It is mostly self-driven, building a necessary skill set to find answers on your own. However, mentors help students find the right projects and become unstuck as necessary.

  • Students are assigned a project to which to contribute - or can identify their own if there is a strong preference.
  • They attempt to build the project, documenting steps along the way, particularly issues.
  • They review existing 'getting started' documentation for the project, and potentially re-write that if they have something to add.
  • They review issue lists and documentation for gaps to find a digestible contribution to make.
  • They make the change and submit a pull request. This may be something really small, anything from documentation typos to creating some simple tests to software changes.
  • Along the way, if not done already, they get started with a real-world presence, including setting up accounts in github, stack overflow, etc.
  • At the end of the program, we do a retrospective.
  • Students optionally write a blog post (probably under company blog) summarizing experience.

Benefits to Student: Getting a job with no experience is difficult. However, experience need not be a formal job. By contributing to open source, students:

  • Are acting as good community members by 'giving back'
  • Begin to build a reputation within the software community
  • Walk away with github account and contributions, which are more valuable than a resume

Expected Outputs

The project is short, with an expecation of about 25 hours. The outputs would be modest, but could include:

  • Contribution to "getting started" documentation for an OSS project - filling in gaps students find as they try to build/run the project locally
  • Possibly actual software or test contributions
  • A "lessons learned" blog post authored by the student(s)

Selecting the OSS Project

The OSS project to which the students will contribute has a combination of the following factors:

  • It is well-used, so that even modest contributions have impact
  • We ideally have a point of contact within the core team to validate what we are working on, and if possible, the point of contact can speak with the team briefly to discuss OSS, the project, and/or feedback on team contributions
  • Needed changes fit the time and skill parameters of the team (a modest but valued contribution can be made by a relative novice in a week's time)
  • Possibly use sites like http://yourfirstpr.github.io/ as a starting point.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment