Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
endor649233dVim, as cool as it may be, is a bit too complicated for someone who doesn't even know what git is.
I suggest you go for a milder learning curve and pick a different editor for doing git stuff - nano is a great start.
@mr-user I think you should teach the concepts through the CLI tool. It isn't more complicated concept-wise, and there's a lot less noise. One they know what they're doing, a GUI will make it more convenient. Git is based on the concepts of tree, hash and tag, and it's much easier if you teach with the concepts. If you approach it from the user actions, it can seem counterintuitive, when in fact the whole point is to make merges as simple and predictable as possible.
Maybe I should get creative and draw diagram. In your point of view which concept are essential?
For me I think (I sort them based on order of importance)
1) Git init
8) reset & revert
10) git ignore
@mr-user I learned git in the exact order Pro Git uses, and I found it easy. I don't remember what that was, so here's what I personally recommend:
You should decide on a few things first: If your student doesn't mind a bit of theory, first explain to them the object store, how trees are represented and what refs are. Once you know the plumbing, the porcelain is very obvious. If they have little patience and don't like learning things they can't use, teach them how to create a repository, make commits, branches, merge and check out older commits. Once they can move about in the tree and do all the operations they need for collaboration, you can teach the rest in whatever order you like. If they have a hard time memorizing, explain relevant bits of the plumbing, because it's the same behavior described with simpler rules. Also, don't forget to tell them about reflog in due time, it makes experimenting with branching a lot safer.
By "Pro Git" do you mean the book written by Scott Chacon and Ben Straub?
Are you a professional lecturer by any chance?
The problem is I don't know the person I am teaching. We just have a few conversation online and we hit off.
He is interested in CS and just started out so I thought I will help hum. Show some pitfall and stuff. I give him some pointer and do review on his code (if he ask for it).
Maybe I will try to show different way and see what stick. I am feeling generous these days and wanted to share my knowledge with new comer.
I'm not a professional lecturer, I only taught 4 friends so far, and I totally misunderstood the situation. Do not teach about the git plumbing to a newbie, obviously. Actually, if he's completely new, I'd advise not to teach anything but the bare minimum required to collaborate. That would be a specific GUI client and telling him exactly which buttons to press and in what order to
- create a new repo and publish to github (or whatever you use)
- receive your updates and merge them
- push his updates for you to merge
You can wait with the rest until he gets an idea about the software development process. The whole concept of git doesn't make sense without that anyway.
Btw my friends were maths enthusiasts whose primary leisure activities at the time were learning interesting concepts and throwing chalks through tetragonal grids, so I had success teaching plumbing along with the porcelain from the beginning. That wouldn't apply to anyone but long time programming/maths enthusiasts.
parthanon1932dI like vim. I did a dev project a while back where I had to do all development on a remote machine through ssh. I decided to use it as an opportunity to get familiar with vim.
It takes some adjusting. At first I used it with Tmux to get multiple files open at a time. Turns out vim can do that itself. Can also browse files, run code, has spellcheck and lint. But the powerful stuff is in the command mode.
Also working with lines at a time and moving around words and paragraphs at a time instead of clicking made my workflow faster.
To this day I can edit code on my phone through ssh because vim only requires an escape key and the alphabet.