Programming is unnecessarily unfriendly to newer programmers. We can make it better through simple optimizations. This is the Third of a Series of blog posts where I’ll be exploring that!
A lot of people teach Git Internals. It’s a great thing! It helps people understand Git and just how it works, and what all those commands do. However, there’s one frequent problem with their approach: They don’t use their Operating System’s GUI*.
The problem with this is that the command line is implicit. You have to trust that it’s just doing its thing. Yes, at some point, every programmer needs to be proficient and comfortable with the command line, but it’s inaccessible and confusing to most newer programmers. This makes your presentation harder to absorb and learn from.
On the other hand, there’s something we all already know how to do: Double click our folder in our Window System and see what’s actually going on. There’s another thing we all know how to do: Open up a file with a text editor, and see what’s actually inside!Can you learn Git Internals from a command line using nano, vim, emacs, etc? Sure. But if you’re new and Git’s already confusing, chances are that command line text editors are not your strength. They usually lack syntax highlighting, and have a steep learning curve. So they’re overwhelming for newer programmers.
On the other hand, open up the Git Directory in Finder, Explorer, etc, and open up the files in a text editor, and suddenly everything makes sense. This hits a really important aspect of Human-Driven or User-Centered-Design: Combine your new product or information with something your user or audience already knows how to do! It will feel familiar and welcoming, it will be positive, and it will help them reinforce the new techniques
When you open those files in a text editor, they’re concrete. I can see them, and I can figuratively hold and touch them. You’ve shown me they exist!
Key Principle: Explicit is better than Implicit. Carry this with you, and your lessons will go further than you thought possible.
tl;dr: Show, Don’t Tell. Use your Operating System’s GUI. It’s much easier to understand than the command line. Connect with something your users already know.
*I’m not talking about Git GUIs — those are their own thing. I’m referring to the Operating System’s GUI.