I Taught GIT to High School Students
This blog post is not about a new technology or an hot tech trend that you would hear of nowadays, it's about my experience as Mentor for High School students.
When & how I decided to teach GIT to high school students?
It all started when Exo Italia decided to organize a Linux Day here in Latina.
Since I am the founder & one of the admins of Latina In Tech, a local community of tech professionals in Latina, we were selected as partners for this initiative and we were so excited to take part into this!
So we gladly accepted to collaborate with Exo, Latina LUG (which is a Linux User Group based in Latina) and Open Hub Lazio, which was the location choosed to host this event.
We as a community are really focused on knowledge sharing, and this was a perfect opportunity for us to get involved in sharing things, and it was also a great way to get in touch with young techies like we were a long time ago. ๐
The topic of my presentation was quite random, because initially it was another guy who proposed to speak about GIT, and I proposed myself to help him writing down the slides and be his substitute if he had trouble coming that day.
I must say that helping him out preparing the slides made me feel like I really wanted to take part in that event as presenter! As luck would have it, Lorenzo (this was the other guy's name) told me he wouldn't have been at the in-person event, because he did have an unforeseen on his agenda.
Teaching Experience
The only experience in teaching I had before was back in 10 years ago, when I helped my younger cousin to study math. This was not comparable to the situation I was facing, but it was a memory that helped me during this project.
In fact, I was not going to teach math to my cousin, but I was going to teach GIT to a bunch of high school students, which is a completely different thing!
Slides
I tried to explain in the slides the basics of GIT. To do so, I started from the very beginning: Why do we need GIT & What is GIT after all?
The presentation was structured the following way:
Introduction & Foundamentals: Understand what GIT is & why it is so important to have a Version Control System (VCS)
Installation & Configuration: Let's see how to install & configure it
Basic commands: Dive in the basic GIT commands
Merging, branching & advanced commands: undersand most important GIT features
Tools & best practices: fix what we learned
Conclusions
I tried to insert in the slides as much images I could, to give a visual impact to the presented concepts. Like in the following slide extracted from the deck above:
Unfortunately I couldn't go through all the slides because of time constraints, but I gave the students an exercise to solve instead.
Practical Exercise
I prepared a GitHub repository as an exercise to give the students. The repository is a simple HTML page with a plain JavaScript file and a CSS file.
The challenge was to identify two different bugs in the code. I tried to make it simple and straightforward for them, and the bugs were really easy to find (for a mid-level software engineer): one bug was in the URL used to import the CSS file that was pointing to the wrong path, and the other one was in the JavaScript, there was a counter which hadn't been updated in a for-loop.
So the assigned task was to:
Fork the repository
Open a GitHub code space on the repo
Create a GIT branch
Solve bugs on that branch
Commit the changes on the new branch
Merge the new branch in main branch
The final result was something like this (which is the agenda of the event, which I used as a template for the exercise):
Retrospective
One issue I had almost instantly after giving this task was that just one of the students had a GitHub account, so we spent a while waiting for them to create & activate it.
On the other hand, I was really happy to see that they were really engaged in the exercise, and they were really focused on solving the bugs.
One of them even asked me if he could use his own laptop to solve the exercise, and I was really happy to see that he was so interested in the topic that he wanted to use his own tools to solve the exercise.
The impact of this experience on me was really positive, and I would definitely do it again if I had the chance to. I think that sharing knowledge is one of the most important things we can do as human beings, and I am really happy to have had the chance to do it.
Indeed, I am really grateful to Exo Italia for giving me this opportunity, and I hope to be able to do it again in the future.
In the meanwhile, I will keep sharing my knowledge on my blog, so stay tuned for more content!