Last week, I took a class called "Intro to Git" offered by the Girl Develop It chapter in Cincinnati. It was a two night class that was supposed to introduce the students to Git and GitHub.
This is a long blog post, so if you are busy and do not want to read the whole thing, here's a quick summary: Even though the Intro to Git class was targeted at beginners, I wanted to be well-prepared so I went through a few tutorials online before the class. Despite the extensive amount of materials available on the web, I still found this class really helpful because it offered some perspective on what was actually important to know about Git and GitHub for a developer. Some of the things I had found in my tutorials are things that developers do not seem to actually use. On the other hand, there was something I learned in class that is very useful, but none of the tutorials covered it.
Although the class was targeted at newbies, I thought it might behoove me well to prepare myself in advance so I decided to watch various tutorials on the subject.
On the event page for the class, there was a link to a tutorial, but I did not find it helpful. I think that videos are more helpful to me when I'm first starting out with a topic so I decided to do some of my own research.
I remembered that last year, I took a Coursera course called "The Data Scientist's Toolbox" and some of their videos went over the basics of Git and GitHub and explained them in a way that I could understand so I decided to get started by going there.
The information on Git and GitHub was part of the Week 2 curriculum in that course. I started with the video on the Command Line Interface because I remembered needing that last year to use Git and GitHub. I stopped after the video on Markdown. I was not sure if the Markdown video was relevant until I watched it and it turned out it was!
Looking at my notes in hindsight, this short set of videos covered the majority of the things I would learn in the Git and GitHub class. One exception to that is that these videos did not cover Vim.
One of the videos from "The Data Scientist's Toolbox" mentioned using some tutorials on GitHub's website. I went there and did their "Hello World" tutorial, but this tutorial was just on using GitHub and not at all about using Git. In fact, the tutorial specified that I didn't even need to have Git installed! Here's a link to that tutorial: https://guides.github.com/activities/hello-world/
After this, I explored GitHub's website a bit and found a link to video guides which directed me to YouTube. There, I decided to watch a one hour tutorial called "The Basics of Git and GitHub." Here's the link. If I recall correctly, this tutorial did not go over the basics of using the command line, but did go over Git and GitHub in a way that seemed to assume the viewer had not used Git or GitHub before. That tutorial was roughly fifty minutes long. It was helpful to me because I had previous experience with the command line in college and from the Coursera videos I mentioned above.
Next, I found a playlist of 22 videos that was called "GitHub & Git Foundations Training." Here's a link. I liked that they addressed the question about how much someone would need to know to be productive with GitHub and Git. In the opinion of the trainers in that video, a person needs to know about 10 commands and about 10 button clicks to use Git and GitHub for their daily software development needs. Since there is months and months worth of information on this topic, it is helpful to know that you do not need to know everything to get started using Git and GitHub.
At my skill level, however, this tutorial was pretty confusing, especially on topics that I had not previously covered in other tutorials. The videos went very fast and did not always show the full commands. Sometimes, the explanations seemed brief and quick. This is not to say that it was a bad tutorial; I just was not the right audience for it.
Still, since I still had not started the "Intro to Git" class yet, it gave me some ideas for questions to ask the instructor and teaching assistants when I started the class so I found it helpful in that regard.
When I had initially been looking for tutorials to prepare for this class, I had also planned on going through a few more GitHub guides and also a six hour long course on Lynda.com called "Git Essential Training." However, getting through videos took quite some time and I did not end up getting to these before the class started.
The class itself was awesome. First, the venue was awesome. I had been looking for the class materials beforehand on Girl Develop It's GitHub page, but it turned out that the materials for this class were on the GitHub page of the instructor. I also learned that he copied slides and notes into Markdown files, which confused me at first because I would have expected instructional materials to be in a PDF or PPT file.
I later learned why Markdown is valuable and why people use it. Next time, I will know to look at the Markdown files to see if they contain notes if I take another Girl Develop It class in the future.
The first day of class went over using Bash and command line basics and then briefly went over Vim. A few things that I learned on the first day that were not covered in my tutorials and preparatory work:
- Users can alias commands in the command line if they want to change the names.
- The command ls -lh; The h flag makes the contents more readable.
- The explorer command opens up Windows Explorer.
- There's a command called "man" to open up the manual, but it does not work on Windows.
- The cat command concatenates.
- The history command shows you the history.
- Exclamation points can also be used to call previous commands.
- We briefly went over Vim and then our homework was to practice it. None of the tutorials I had used to prepare had even mentioned Vim.
After the first class, I had a bunch of questions based on things mentioned in class and things that I had found while watching tutorials so I posted them in the Slack channel.
I will not bore you with all the details of all the questions, but I'll tell you about one of the more interesting ones. One question I asked was about the purpose of using Vim, which is a text editor that does not let you use the mouse. Apparently, with Vim, you can interact with a file directly on the server versus having to open up another program. It may seem like a trivial thing, but when you work on code all day, everyday, being efficient can save you a lot of time.
On the second day of class, I talked to the instructor and one of the teaching assistants a bit before the class started. One of the questions I had posted in Slack was about the "similarity index." The instructor told me that this was not something he had ever used in his professional life which I was glad to know. Since it was mentioned in a relatively short tutorial on GitHub on YouTube, I had thought it might be one of the fundamentals, but it was good to get another perspective on this before I fretted over some obscure feature of Git unnecessarily.
The second class was really good practice and review of things that I had learned when watching the tutorials. I also learned one especially cool new thing and that thing is that Bitbucket is basically a free version of GitHub. (GitHub is free for public repositories, but to have a private repository, you need a student account or a paid account.) I certainly was not going to learn about Bitbucket from a training video made by GitHub!
After the second night, I had plenty more questions which I shared in Slack. I also got to practice using Git and GitHub some more with one of the teaching assistants at a "tech self study support group" that coincidentally took place a couple of days after the Git and GitHub class.
Despite the amount of resources available online on these topics, I am really glad that I took this Girl Develop It course because it offered me some perspective on what things were really necessary to know about Git and GitHub, including some things that I did not come across at all during my own research.