wgxcodersdc / organization

Learning, interview, and leadership resources for WWCode DC
99 stars 36 forks source link

What should an Intro to Git with <Language_X> accomplish? #38

Open emgrasmeder opened 8 years ago

emgrasmeder commented 8 years ago

One of our suggested meetup types is an Intro to Git Talk. Especially as WWCDC looks to be git evangelists in the DC area & use git as a primary mode of organizing things, we're planning on having a git talk every week --- spread out across different meetups. (we can adjust frequency if we need to)

The initial purpose for Git 101 lectures was:
  1. to get more people giving a technical talk with a low barrier to entry.
  2. to allow us to use git as a standard means of sharing code
  3. to increase the number of events with a specific title/focus (these are less intimidating and get better show up numbers)

The question is what is the optimal scope?

I think points 1 & 3 are the natural consequence of a talk that accomplishes 2.

Let's compile a list of features that must be covered in our Git 101 lectures and go from there!

emgrasmeder commented 8 years ago
For starters:
  1. What problem does git solve?
    • I like to talk about what it's like working on Microsoft Word documents + email. It quickly turns into 100+ versions of the same f'in document. Git solves this & maintains the history of the progress
  2. How will WWCDC members experience using git.
    • We'll frequently ask them to "clone a repo," refactor some aspect of the code, "commit it," and maybe "push the code on a new branch"
tabithacherie commented 8 years ago

Syntax/Abbreviations and words frequently used when talking about GIT ... I think this is useful as push, pull and fork are terms that are used in other places in different ways.

emgrasmeder commented 8 years ago

Commands:

git init
git clone
git status
git diff
git add
git commit
git push
git log

As far as I know, any others will be quite less frequent: git remote add and stuff like that, things that I frequently have to look up.

emgrasmeder commented 8 years ago

so!

Where to find answers when you're lost!
tabithacherie commented 8 years ago

I think http://nupurkapoor.github.io/intro-to-git/#/ is actually a good base, I just went through it but maybe add :

  1. Each group adds a couple slides for their own presentation or maybe just a demo with specifics to that language/group
  2. Where to find answers should be added -- also do we want to add a GIT channel on slack for if people have questions?
emgrasmeder commented 8 years ago

Yeah, it should be a decent base, we just can then cater it to different groups. & we have a GitHub channel now!

tabithacherie commented 8 years ago

I think maybe we can add git push and fork to the vocabulary page though -- those are the words that tend to confuse me the most at least :p

nupurkapoor commented 8 years ago

I can create a womenwhocode dc version of the ppt, and then each study group can basically extend/fork it as per their needs

tabithacherie commented 8 years ago

@nupurkapoor That sounds awesome. @emmagras When do we want to start trying to do intro to git nights?

kdmcclin commented 8 years ago

How does git tend to differ for different languages, especially at a beginning/fundamental level? (that's an actual question I have)

Also (and I mentioned it in Slack, but to put it here for the record), visuals would be good. This is only one workflow visualized, and I'm not great at the design aspect of things, but something like this would be useful. I was playing around with draw.io because it seems to be free.

gitworkflow1
emgrasmeder commented 8 years ago

@kdmcclin the difference for git in different languages should depend on what capacity the study groups can use git to their advantage.

For example, I think getting an entire Android project off the ground enough that you have something nontrivial that you can look at and interact with might be overwhelming. I'm imagining "let's learn how to add infinite scrolling to this template app" or "fix this app so the color scheme is managed in one place, rather than on every view." Without an existing app to clone, those lessons are unreachable for most people.

Ruby & front end folks probably want to know about github pages, Python I can only think of the stats packages I've used that other people have created. We can highlight the important packages, but it's also important for beginners to know how to structure their packages. Maybe ruby (rails/bootstrap?) does that for you, but w/ python you're gona need to make your own file hierarchy. Where do the test files go? Where do the data files or output go? When do I include an __init__.pyfile? That's how I'd focus a python talk, anyway.

I don't think there will be a big difference in talks, but if we have enough interest for people to be showing up so frequently, then it's probably worth splitting them up by preferred language, no?

kdmcclin commented 8 years ago

I think that's the difference between git and GitHub. Git you can version control an empty text file if you want to, so the ideas of commit and status and pull and push and other basic keywords don't so much matter what language you're using. GitHub (or other online places, like heroku for things like Rails apps) is where it might be more useful to be technology specific. Though I've seen a GitHub and git workflow/forking exercise done with a text file where each successive person adds a * for each line (so line one has one, line two has two, and so on), and you watch and see it break down with merge conflicts and uneven stuff like this: * **


**


That was all text file though, or maybe markdown.