I came across this tutorial by Georgia Reh in The Recompiler and have found it really helpful. I'm not quite in the position to teach others Git (I'm still learning it myself!) but I am looking forward to using this as a resource when that day comes.
In addition to being a helpful cheat sheet for understanding Git, this article caused me to reflect on some of the assumptions I make about learning tech.
For context, I work in an engineering department at a tech company, and on a given day I pick up on all the terms I don't understand and it gets overwhelming. I'm pretty good at asking questions, taking notes and researching and following up later, but there is inevitably a balance at the end of every day that accumulates as time goes on.
Assumption: Everything in tech will make sense and will be intuitive to me once I learn it.
Reality: A lot of the rules and words in tech that come across as arbitrary to me probably reflect the point of view of the person who originally wrote the programming language/package/tutorial I'm using. That person's point of view may or may not overlap with mine. Sometimes these terms make sense once I understand them, and sometimes they continue to make no sense but I gotta learn the rules of the game and play by them anyways.
Assumption: If I keep learning, I can learn it ALL and never again deal with how uncomfortable I feel about all of my blind spots.
Reality: I will never, ever reach the point where I fully understand all of the coding languages and technical terms that come across my radar. There will always be new products and new concepts I need to read up on. I need to get comfortable with this.
Assumption: All of the unfamiliar terms I hear represent concepts and tools that I need to understand as soon as possible; they will all be equally hard to learn.
Reality: There are some things that will be easier to learn at first, or more interesting to me, and I should start with those and add on gradually. Tech has a complicated topography, not a flat one. I can classify some concepts as "now" and others as "later" once I'm better equipped.
Assumption: All of the terms I hear are unique concepts with no overlap.
Reality: Some terms (like the container services Docker, Kubernetes, and ECS) represent branded solutions to solve a common problem. Learning one won't be sufficient to use or fully understand other equivalent solutions, but it'll give me a solid head start.
Assumption: When one person in a group uses a term, (1) they understand everything about it and (2) all the other people in the group understand everything about it too.
Reality: Someone knowing that a thing exists doesn't necessarily mean they are an expert in it. (This is really just a way to question some of the bravado I see in tech.) And people throw out terms that others don't understand, even others who are at the same company solving similar problems. Asking questions should be applauded. I'm not alone in not understanding everything.