The Git Zone

TL:DR: Cut to the puppies.

When I was working on Glow full-time Ian Stuart talked a lot about the Zone of proximal development . Wikipedia says that the ZPD is The zone of proximal development is an area of learning that occurs when a person is assisted by a teacher or peer with a skill set higher than that of the subject..

This week I’ve had a personal revelation about this zone.

Most of my personal learning over the past few has not been directly related to my profession. A lot has been in the sphere of computers and computing driven by fascination and fun. I frequently take a shallow dip into coding and web development. On of the areas I’ve occasionally tried to understand is Git and GitHub.

Git is a widely used source code management system for software development. It is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.

Quite a mouthful and well above my pay grade. My simple understanding is that git can be used to develop code (or writing) allowing one to experiment without breaking a working system. It can also be used to collaborate with others. It has some educational uses 1.

Git is also difficult, or I’ve found it so. I’ve dipped in and out several times over the last few years but taken away very little. I’ve used GitHub to download software and played about with both the command line and GUI application, but never got further than following instructions.

Over the last couple of weeks I’ve been dippping in and out of Ry’s Git Tutorial – RyPress this really makes sense, and I am making some slow progress but not quite in the zone.

Last week I read couple of posts on Alan’s blog Fork on the Range: Getting Over the Fear of GitHub Forking and Forking Your Way into the Flickr CC Attribution Helper. These offered the opportunity to fork a couple of Alan’s repos (fork = make copies), change some things and submit pull requests (pull request = offer Alan the chance to pull in your changes).

Both examples were very simple to join in with. Nether needed any coding skills. What they did do was offer the opportunity to see the collaborative functionality of gitHub in action. This was enough to take me into the zone.

A few years ago I got a badge: Try Git this feels quite different, a couple of comments from a known friend is on a different level. The step into the zone was serendipitous rather planned by the teacher in this case so I guess this might not be a great example of ZPD, but it feels like it.

Another piece fell into place on Thursday: #tdc1550 Oh No! We missed #NationalPuppyDay Do a Puppy Video 2 This had nothing to do with git, but I decided I could approach the challenge by making a website rather than making a video. I could host that website on GitHub and develop it with some version control to practise the stuff I’d been learning on Ry’s Git Tutorial.

The site: Puppies is pretty silly, but it took a while to put together. And it gave me an chance to repeatedly practise the git commands I’d been learning. I could also easily backtrack through the development:

johnj:puppies john$ git log --oneline
14ed184 Adding credit links for gif and sound
df2914a Fixing title on single.html
0a22006 more explaination & info
d63de49 linking to single.html
e7ffc2e Started on single gif sound combo
a57e6d7 simplfying the starting of audio, adding sound ids t oquery
d99dfc7 commenting out console logging
31adc22 Added # for loading and linking
7612182 fixing the position of mobile button
07678ae moving mobile button
c06acd0 adding button to start sounds on ios
ac233e6 Create README.md
bf7a3f6 added info button and text
2760bb5 add gitignore file
25ba5ab Adding example buttons
cd503e0 Adding a search box
403b1c9 fix credits on first sound
0a80883 Adding credits fro sounds
02b5e24 meta description
18dfa21 fixing height css properly
f0dbc3b fixing height
6d8084b Remving some cruft
8de4425 first commit

I can see that my spelling and typos could be improved. I’ve left them in place here, I don’t know how to fix them in the git log (more to learn).

I am not sure I would choose this process for a similar (or even a slightly more sensible task). Each time I wanted to update the live page I had to go through a dance of several commands. But if I ever got to to something in collaboration with other folk it would be invaluable.

What helped my learning, was two things: Alan’s teaching, arriving at the right time, encouraging me that this was worthwhile; The Daily Create challenge which gave me a playground and a small but friendly audience.

This is probably enough git learning for me for now (unless Alan issues more challenges) but I am in a much better place to move on if I need or want to.

This post got some commentary when cross posted to medium. (Manual webmention)

Featured image, one of my own that has zone for a tag on flickr. Filtered to mono as the colours were terrible.

1. For example:

Get started with Git in the classroom | Opensource.com or education/teachers: a place to share ideas around using GitHub for learning ↩

2. The Daily Create provides a space for regular practice of spontaneous creativity through challenges published every day.
Each assignment should take no more than 15-20 minutes. There are no registrations, no prizes, just a community of people producing art daily. Developed as part of the ds106 open course on digital storytelling, TDC is open to anyone who wants a regular dose of creative exercises (and it more fun than jumping jacks, pushups, and P90X). ↩