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
Example code repository: https://github.com/avidrucker/clojure-bootcamp-may31
(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
See Avi's demo: https://github.com/avidrucker/clojure-hello-world
(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
Create a vocab list here OR at maria.cloud OR on Coggle, then publish and share it
Brainstorm effective ways to learn using coggle.it
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.