Highlight text to annotate itX
[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.
[Git Merge 2013]