• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: September 28th, 2023

help-circle
  • Depends on to whom. If you’re explaining to your grandma, a small child, a co-worker, or a student under your tutelage, you probably don’t want an explanation that relies on reference to a porn site.

    And if you’re explaining to a novice developer or to an IT person who sometimes might have to work with Git, they deserve an explanation that leaves them with a basic understanding (or at least the names) of the kinds of things Git and GitHub are (VCSes and SCM forges, respectively), not just an inkling that GitHub is not unique in being ‘a place to host (some?) Git, whatever that is’.

    So… if you don’t mind that it suggests ‘GitHub is for uploading Git(s)’, that line is an okay way to teach ‘the difference between Git and GitHub’ to non-technical, non-elderly adults who don’t really need to know what Git is (and don’t work with you or study under you).

    That’s an explanation of pretty damn narrow usefulness, to put it generously.

    It is pithy and memorable, though.



  • For general Unix skills, get him a laptop and help him install a Linux distro on it. Show him a few different desktop environments, buy him a Linux magazine with a DVD and articles or projects. Then just let him try whatever he wants and promise to be there to help him fix whatever he breaks (by pointing him to docs, belong him write good forum questions, helping him revise search queries, etc.). These skills are perhaps a bit simpler to pick up but can eventually grow into scripting and programming skills.

    For programming, start with simple programming exercises or koans, and maybe give him prizes (like a quarter or a piece of candy or something) when he solves them. Let him solve lots of similar problems/puzzles over and over as he builds his confidence; rather than pushing him to harder material, just offer harder material with higher rewards. You’ll probably have to write your own exercises at first, like just translating arithmetic expressions from a notation he’s learning in school to one used by whatever programming language you’re working in together. Eventually, you can start to do online exercises together.

    Once he has been messing with this stuff for a year or two, revisit fundamentals by working through a carefully selected introductory textbook together. You can include shell scripts at this point to tie the Unix stuff and programming stuff together, and maybe use a good Linux magazine or Learn Enough Developer Tools to Be Dangerous as the ‘textbook’ for that side. Then he’ll at least know basic version control and surrounding tools.

    After you’ve gone through a chunk of those basics together— full mastery is not required— sign up for an introductory programming class together at the local community college. Taking it together, you can make sure he’s keeping up with the material, encourage him to ask questions, and help him with homework if necessary. If you want, you can also do this with networking or systems administration.

    This is based on some things that my dad did with me, including a couple of community college classes we took together. (Idr exactly how old I was during those classes, but I think it was before I started high school.)