I Taught GIT to High School Students
Tags: github, git, teaching, sharing
Published: 2023-12-27 17:27:50

# 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.

![image](https://cdn.jsdelivr.net/gh/coluzziandrea/andreacoluzzi-blog/2023/git/how-i-taught-git-to-highschool-students/photo/1700473966553.jpeg)

# When & how I decided to teach GIT to high school students?

It all started when [Exo Italia](https://www.exoitalia.it/) decided to organize a **Linux Day** here in Latina.

Since I am the founder & one of the admins of [Latina In Tech](https://www.latinaintech.org/), 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](https://www.latinalug.it/) (which is a Linux User Group based in Latina) and [Open Hub Lazio](https://openhublazio.it/), which was the location choosed to host this event.

![image](https://cdn.jsdelivr.net/gh/coluzziandrea/andreacoluzzi-blog/2023/git/how-i-taught-git-to-highschool-students/photo/logo.jpg)

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.

![image](https://cdn.jsdelivr.net/gh/coluzziandrea/andreacoluzzi-blog/2023/git/how-i-taught-git-to-highschool-students/photo/1700473969802.jpeg)

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](https://docs.google.com/presentation/d/1XBWl-tYKE0cKizAwlZvif-pULRbUXU54ZZ4jL8vkMCs/edit?usp=sharing) 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:

![image](https://cdn.jsdelivr.net/gh/coluzziandrea/andreacoluzzi-blog/2023/git/how-i-taught-git-to-highschool-students/photo/slide-01.jpg)

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](https://github.com/coluzziandrea/latina-linux-day-2023) 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):

![image](https://cdn.jsdelivr.net/gh/coluzziandrea/andreacoluzzi-blog/2023/git/how-i-taught-git-to-highschool-students/photo/agenda.png)

# 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!