Day 2 Clojure Bootcamp for Open Source

First Look at Git and GitHub

See this workshop's notes in mindmap form at our Day 2 Coggle mindmap link (note: both day 1 and day 2 mindmaps are in the same document)

Today's activity: *Please (1) read through and (2) complete the exercises down below to learn to:

  • (a) download ("clone") someone else's code from GitHub

  • (b) make your own GitHub account (skipped this b/c everyone already has)

  • (c) "fork" (make a remote copy of) someone else's repository

  • (d) create a new repository of your own

  • (e) save a file to a repository using the online "GUI", and

  • (f) share your repository with someone else and have them successfully download or fork its contents

*by Thursday afternoon, so you don't fall too far behind

Recommended activity for review (approx. time to do: 1 hour) https://lab.github.com/githubtraining/introduction-to-github

Welcome to Day 2!

Today we will:

  • introduce any new folks (not recorded) [5 min]

  • introduce the instructor (if necessary) [1 min]

  • review yesterday's content [2 min]

    • talk about what Open Source is: movement, philosophy, creation & distribution model for software & code

  • introduce & overview today's content [2 min]

  • explore using GitHub for the first time [15 30 min]

  • learn some relevant vocabulary [10 min]

  • brainstorm ways to learn effectively [5 min]

  • take any remaining questions and chat [1 hour]

    • Answer any remaining questions from yesterday

    • share logic riddle and discuss potential benefits

Overview

Day 1: First look at Clojure by using maria.cloud

Day 2: First look at Git by using GitHub to save & share files

Day 3: Second look at Clojure & installing Clojure locally

Day 4: Second look at Git & GitHub to contribute to Open Source

Day 5: Final Project, Presentations, and Final Bootcamp Review

First look at Git and GitHub

Starting Questions

  • 1. What is GitHub?

  • 2. What is Git?

  • 3. What is Open Source?

  • 4. Why is Source/Version Control crucial to programmers?

  • 5. Why does Open Source matter to programmers? To non-programmers?

Future Questions to Consider

  • 1. Questions TBD...

New Questions

  • More questions TBD...

Extra Resources

TBD...

Avi's Next To-Do's

  • Add all relevant links to this Nextjournal document

  • Find great examples of Git in action

  • Find great examples of GitHub in action

  • Find awesome infographics for Git

  • Find awesome infographics for GitHub

Rooms For Improvement

  • Create 2-3 scenarios that learners can follow through on their own

    • Jenny creates a repo called "github-test" with 5 empty text files (a.txt, b.txt, ... plus the readme which is created automatically), adds 2 more after initial commit (f.txt & g.txt), and then remove 3 of the original 5 (a, b, & c), and (edits and) updates 2 files (one of the remaining original 2, and one of the newer 2 additions, d.txt and f.txt) to have their file name on the first line.

    • Kiki forks Jenny's repo, and updates the readme to be more fully fleshed out with a title header, an embedded picture, a Google search link, and a paragraph of text. She also post an issue to ask, "what license does Jenny intend to use?" She then makes a PR to submit the above changes, which Jenny confirms with a "LGTM" and "TYFC" and merges into the codebase

    • Robin posts on the issue that Kiki made to say that Robin prefers the MIT license, though the GNU GPL license also looks good to them. Robin forks the project, clones, adds the MIT license, pushes back up to her fork, and makes a PR on the original project repo by Jenny. Jenny says thanks for the suggestions, and she prefers the GNU GPL license after all, and while she rejects the PR she takes care to express gratitude to Robin for contributing valuable insights to the project.