Git Merge • The state of Teaching Git (Matthew McCullough)


[Git Merge 2013] Hello, I’m Matthew McCullogh and
I work on the training team at GitHub. And what I wanted to tell you
for a couple of minutes and that was a wonderful segue is the state of teaching
Git the world over. I’ve done about a thousand or 1,200 gigs
over the last five years or so. And I know a fair number of
people in the audience. I’ve taught at some of those companies. And it’s a wonderful job. And it’s supported a lot by the work that
people in the community have done. So I wanted to show you
a couple of things. That was a cool one that I didn’t know about. But I want to tell you also
kind of what I’m discovering to see if you can take that back
to what you’re doing working on Git. And to teaching in your own company
as well as to see if there’s things we can improve to make it easier
for people to use in the future. So in the course of teaching
all these companies and all these different things
and thinking about GitHub, the majority of what I teach is the fundamentals of
better software development which is one of the keys that I want you
to think about in the future. When teaching Git,
we actually have a community that’s very opinionated about doing what I think is better software development. Excellent commit messages,
small atomic commits. We pride ourselves in quality code because why should you ever push bad code when you have the chance to re-base it and change it locally and get inputs on
a private branch before you push that to master? So it’s very interesting that a tool has kind of affected the quailty
of software development and the people that work in the space. Now when we say training
and teaching this, I have a pretty unique opportunity
at GitHub for some of the stuff that we do simply because I ask, “Can I make this open source?” And they basically look at me,
Scott, or PJ, or Tom and say,”Of course.
Why are you asking us?” So this is a delightful part of a job
that I never really had the opportunity to do before. And so all of our materials
that are teaching materials are 80 percent crafted by GitHubbers. But these are completely CC by licensed. No -NC. No other crap at the top of it. Just CC By. Contribute to it. People put patches and pool requests
to these repos all the time and I’d like to see your stuff here, too. It is meant to just be a curation
of teaching materials on Git. And I wanna see instructors
and professors and universities and people at companies use this. But I wanted to point out just a couple of
my favorite implementations of this. So I’m gonna come over here to–
oh yes, there’s more to go. But I wanted to show you this slide deck as one of the things you could use
inside your company. This is on the Teach GitHub website and we’re always open to
implementations of this and fixes. This is completely browser driven so we’re getting rid of the
PowerPoint Keynote junk. I haven’t taught on that
in over four months. This has some neat little bits. This is actually called Hide Slides.
Some of you may get the pun. It’s Jeckle driven derivations for reveal
and some of the other slide implementations. You’ve got three different emitters.
But uses the Jeckle template. The basic idea’s you write markdown
and you get all the different rendering engines that work
in the browser for slide decks. So this one, there’s a
neat little control panel that Jordan at GitHub has built. And so you as the instructor can
be giving a class and you say, “I don’t teach all the time, Matthew.
It’s really stressful for me.” “And I can’t remember what I was supposed
to say about notes or ref log” or something like this. So it has little presenter notes that
you could put on this panel on your screen. So you look like the pro and
you’re just saying, “I remember, yes, of course.
I know exactly what I should say on each of these pieces.” And it’s in a nice little control panel. And somebody dynamically says, “You know what I really was hoping you
would cover today is thinking about commit.” And you click on that note in the graph
and you smoothly just say, “Why that was the next topic
I was going to cover.” And you just look like this excellent
pro teacher at your own company. And I’d be pleased to
hear if you’re using it. If you wanna navigate around,
one other thing to do is to hit Escape. And you may know Reveal.js
but you’ve got a nice little visualization of a slide deck. And we have enough materials for about
18 hours worth of teaching so enough to cause you to drop dead
if you’re wanting to teach Git for that long. But it’s enough materials to cover
basics, intermediate, advanced stuff. Again, these are things that we use
on paid training engagements but the neat part is that
it’s meant essentially for the community to use it any place
that you want to teach Git. CC By licensed. Have a lot of fun with it. But I want to point a couple of things
that have had a neat affect just to kind of open your mind to
who you can teach this to. You may be thinking programmers, developers. The kind of usual people
that you assume are in the room and who we often teach Git to. But this is Jessica Roll,
our Training Coordinator at GitHub. And she’s not a programmer and has
no programming background. She is working kind of in the
recruiting world for the most part and helps us with a lot of
our training engagements. She now owns several repos at GitHub
and the other day she said to me, “That’s ok. I can open a pool request.” And I was just like, “Oh my goodness this is wonderful!” There’s somebody who is not in the
programming community is like, “I got this. Thank you very much.
I’ve taken the class twice.” The only thing I’m finding out is
she’s now kind of fascinated with 3D supporting GitHub. So she now is kind of
distracted by shiny things. She’s like, “Oh my goodness!
This is so cool!” “What if we could DIF3D stuff?”
she said the other day. And then suddenly I saw experiments
for people diffing 3D things. But beyond what we put together I wanted to point to at least one
other that I hadn’t seen demoed up here before I close out today. Which is another training tool
that’s pretty cool and very similar to what we just saw. Peter Cottle put this together and
let us see it a little bit earlier last year and just as a quick demo,
kind of on his behalf, this is an open source thing that he’s
put together as a graduate project. You can do things like git checkout typing one hand over here, Test 1. Very similar to the example
that we saw before I can do a git commit and put
some sort of new note over here. I can go back over to git checkout and to the master branch
for a second. And I can do another git commit
on this one so now we have a place of those two little nodes and it supports amends.
It supports reset hards and moves the pointer but I think
this is the fun piece to see and maybe this just kind of augments and adds motivation to
that past animation. Git rebase on Test 1,
oh yes, it totally does that. And there’s the new commit with the
new hashes and the pointer calculates and moves over. And I think these kind of tools
are very helpful. I’m so excited to see more people
than GitHub and kind of the core committers put these together
because if we’re gonna keep getting more and more users of this, we’re gonna get more and more people
that we’re teaching. We do need some interesting visualizations
and some interesting materials to teach that are not just slide decks. Let me read you how to type
the next command. It loses attention to people. And this really kind of grabs them and
lets them visualize how these things work. So, with all these pieces in place,
I was going to point you just at one last set of materials as I
look through my tabs over here. Wanted to go over to this one. We’re putting together some videos on
this stuff too and just giving away for free. Our objective is to get people
to be more proficient on using Git. And it’d really be neat to get all
your suggestions by email or tweets or what have you, in terms of
topics that you see a gap. I know what I wanna teach. Brent knows what he wants to teach. But it’s interesting to say, “Matthew, we’re really
struggling with this piece.” “Could you perhaps invest putting
something together to teach some small” “five minute module?” And we’ll take that into consideration. So with that in place, I wanted to put just the last couple of URLs up
on the screen over here. And those are kind of the main
ones that we use these days. We’re kind of collapsing
things into one URL. But we respond to all the tweets. And you can send me an email and say, “How should I teach this
at my company?” And we’ll be happy to help you do that. Not for pay. Not looking
for consulting work. But we want to see other people
kind of be multipliers to teach this stuff. And we’ll do our best to support you with
materials and some ideas on how to do that. If you wanna talk about teaching,
learning, anything about Git education I’m here all day today.
I’m here all day tomorrow. And I would love to have
any conversation at a table that you like about that and
maybe we’ll throw some pool requests up
here too on hack day. I saw a couple of hands. I’m done with speaking formally but
I’ll happily take any questions. I see one in the middle. I’m talking to “localizers” all over
the planet potentially moving to Git. Is there training material, do you know
anything that is not in English? So that’s kind of a sensitive area
so to speak because these materials are not so well structured for
localization just yet. We’ve got volunteers for German, Swedish,
and Spanish I think so far for people to try to do that. But what we wanna make an effort on
over the next couple of months is to get these materials in a format
that better supports localization. So what I’m saying respectfully
by that is: I want people’s time to be very well used, and I think there’s one
or two steps that we need to restructure these to better support
long term localization. But I don’t know of a lot of
materials just yet. There’s two people at the conference
that have done some localized training in other languages but I don’t know
if those materials are available necessarily just yet. The Pro Git book though, I will point out,
that Scott Chacon wrote is localized to 13 or 15 languages. Scott? Something like that?
Sound about right? So Pro Git book on the Git SEM website is translated fairly well to
a wide variety of languages. Other hands? Or I shall
give the stage to the next person. Alright, my last request as I leave. If you have a Git story about migrating
or learning it, that you’d like to share on the camera, could you
consider this an investment for the companies and the people
who are kind of skeptical? It’s really incredibly helpful
even if you’re not a formal speaker to hear, “Oh well we tried this
and we struggled but in the end it produced these results.” And Jen’s last night was giving me one
of those and I’ll record it today. But it’s so awesome to hear just
a story of how it worked out that your team learned it and was
successful at the end. So find me. Let’s grab a camera. And it’ll be a huge benefit to
the Git learning community if you took just a minute to do that. So with that, thank you. [Applause] [Git Merge 2013]

1 thought on “Git Merge • The state of Teaching Git (Matthew McCullough)

Leave a Reply

Your email address will not be published. Required fields are marked *