Presenting concepts to beginners

###Providing a road map for learners

When learning something new, I prefer to have a reasonable understanding of it before I jump into using it—kind of like reading a map before I travel somewhere new. When learning programming, it’s often hard to find a reliable map.

Take Git, for example. I’ve been reluctant to use it, because there are some basic concepts about how it works that I’ve never been able to find a satisfactory answer to.

##learning Git, as an example

For example, say I’m working on a document, and I want to keep track of the changes to it. A traditional approach might be to make multiple copies of a file every time you make a change. (That’s the way I’m used to working, but it’s pretty inefficient.) A version control system like Git makes this process a lot more efficient, because it can track changes, merge them, step backwards etc.

Until I had a lightbulb moment recently, I never understood something very basic about Git. Let’s say I set up Git to track changes to that document I’m working on. Then I create a branch to work on, so that I leave the master (original) version of the document alone. I go to the folder on my computer that contains the file, open it, make changes, and save it.

The document’s folder still contains just the file, with the changes I’ve made. So where’s the original? This was what I could never understand. What if I wanted to open the original file and check something in it? All I see in the document folder is the latest version of the document.

The answer is that, when using Git, the version of the document you see in the document folder depends on which version (or branch) is active in Git. If you switch back to the master branch in Git, the original master file magically appears in the document folder, replacing the modified version.

For some reason, none of the things I’ve ever read on Git—blog posts, tutorials, books—mentions that basic concept—something I would consider crucial to having a conceptual overview of how Git works.

###Understand what your audience sees

I urge anyone presenting information to beginners to think really carefully about what it’s like to be in their shoes, and carefully to fill in the concepts that are necessary for understanding how something works. Leaving out essential concepts is like giving directions but failing to mention a critical turn along the way. All following instructions could be rendered completely useless by that one error—no matter how brilliantly presented!


What is your response to this? Do you have examples of your own lightbulb moments, and what concepts were missing for you when learning something new?

6 Likes

Can you show me how Git works?

Whilst I have a Github account, and would like to understand and make use of it, I too haven’t been able to get my head around it. My guess is, that understanding Git would help me make sense of Github. Right now, I can do no more that download other people’s files from there (even reading that back I’m questioning whether that’s necessarily true).

Has anyone on Sitepoint done an absolute beginner’s guide to Git/Github? I’m sure it would attract plenty of traffic.

I’m only just a beginner, but I’d say it’s easier to understand GitHub than Git itself. But that’s because I’ve just used GitHub’s own free app that makes it easy to connect your computer to GitHub repositories.

With the app installed and connected to GitHub, I can upload my projects to GitHub, or “fork” and “clone” repositories that others have placed on GitHub, play around with them, submit pull requests and so on. I found this guide very helpful:

I should note that there is a brief mention within that guide of the concept I mentioned above! It’s the first place I’ve seen it, though.

I have to hold my hands up; my reply was a little tongue in cheek, as I recognise you’re only a little way into your own Git/Guthub understanding at the moment.

I’m Windows based, but I did find an equivalent page to the one you posted - https://windows.github.com/help.html. I’ll do a bit of reading, as well as check what I’ve actually got installed at the moment. It might not be a bad idea just to compare notes, once I’ve done that to see how closely my understanding mirrors your own.

1 Like

Well that’s got Github for Windows installed. But as I’m off down the climbing wall tonight, reading/understanding/doing will have to wait a little longer. :smile:

1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.