My new year's resolution for 2021 is to teach as many people git as possible.
I'd like to teach git. By building a game that someone can play, and in playing it, learn about git and git hosts like GitHub. This will be a major side project of mine in 2021.
Working title for this project is "LGTM", and I'm also going to be "Building in Public". Hopefully it's education, and also helps motivate me to continue.
- Git and version control in general is an integral part of a software developer's workflow. You start your day with it, you end your day with it, you use it to collaborate with others. It's probably the biggest skill/tool needed outside the act of programming itself for any programming job.
- Git tutorials are often hard and very dry to learn. I've taken them myself, and particularly for new programmers, the examples are somewhat abstract and hard to relate to.
- A personal reason: I've been interested in making games for a while, in particular games with narrative. I've dabbled in gamedev, and produced a few games, and have found my strengths and weaknesses - I'm no good at producing fun gameplay, but my technical execution is ok.
Through doing it. I want to teach people git through making people use git. I don't want to give abstract examples, and expect people to just get what they're doing and why, instead, I'd like to present easy to understand scenarios while teaching git so that people understand why they're doing it.
Because I'd like it to be narrative-based, so that people feel a narrative connection with the task, it is effectively going to be an interactive game, played out through using git. I'm not 100% sure how it will be presented, but I like the idea that the primary interface will be git rather than a game. What better way to focus on teaching git than for all interactions to be through it.
Naturally, a lot of the focus will also be on a git host like GitHub. Even though a git host's features are not really part of git itself, like Pull Requests, I think these things are integral to the act of using source control, that they should be covered, even though it would mean tying the game strongly with a git host. I'll be using GitHub due to it's popularity.
I'm starting now (ass-end of December), and I'm giving me a year to do it. I might fail - a large proportion of my projects do. But I'd like to see how far I can go with the little time I have with my other work.