Git Anxiety

Seems like everywhere I go these days people are talking about “iterative” processes. I’d claim it’s the buzzword that has replaced the “pivot” of 2020-2021. And this reiteration of “iterative” isn’t taking place in computer science contexts like I would expect. Of course I discuss iteration in my CS classes that I participate in and teach. But more and more often I will roll into a meeting or workshop and be introduced to some “iterative” process in which we will be learning, discussing, ideating etc. Anyway, as interesting or uninteresting as you think that observation may be, I’m writing today to reflect on the iterative process of learning and unlearning programming skills… in particular Git.

Throughout the first half of my CS program, Git and GitHub were somewhat mysterious tools that I knew were ubiquitous in software development. I had no idea of the mechanics of them or even how to utilize them appropriately. My early instructors would set up these prepopulated repos for us and all we had to do was commit and push. As long as the assignment got submitted, I was happy to let them keep their secrets.

A year and half in, I was starting to realize that my gap in knowledge was becoming somewhat of a problem. The version control and collaboration on my Databases project consisted of my partner and I taking turns adding webpages and server routes to the code base followed by a compression and upload to a shared drive. Not particularly practical for a 2-person dev team, much less one of 5-10 people you might see in industry.

My second software engineering class pulled back the curtain of Git. I learned the workflow, the commands, and the value of Git and GitHub. I learned how to use it for TDD and CI and had a really positive and gratifying experience collaborating on a shared codebase with 2 others. Cool.

Time goes by… the memories of summer term fade into the past and we reach the present. Winter term… capstone! Another opportunity to collaborate and engage in agile development and another task necessitating version control and a central repository. No big deal, according to me last week. The me of this week can chuckle at my naivete and is here to share that anything that can be learned can also be unlearned. I found myself staring at a GitHub repo, and an empty local directory with absolutely no clue what to do next. I was struck with an acute case of Git anxiety.

Now, leaving the drama behind, the moral of this long-winded story is that just about anything we might do in life that is meaningful of adds value requires skills and knowledge. We all go to school and expect that at the end we will be a perfectly programmed robot ready to execute our functions forever and ever. Of course this is not so and that is actually a very good thing. We are dynamic beings, with mysterious and powerful brains that, of course can forget and unlearn, but just as quickly can remember and learn. So yes, I was very nervous to issue the first pull request of the project but I did it, and we merged with no conflicts and I figured it out. And now I’m not afraid of what I might unlearn as time goes by, but instead excited about what I’ll get to relearn in the future. Such is the iterative nature of software development.

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *