Why did I decide to take this course?
Well, to be honest, I needed to take some electives to graduate, and I suppose most of my classmates are in the same situation. However, I have some justifications on why I chose to take this course rather than other electives.
Contribution to OSS
The main reason is to start contributing to open source projects. I think this class is the best course for that as the name of this course says. Even though I have always wanted to contribute to open-source projects, but I do not know where to start. There are so many projects, and many of them are huge. Besides, it is somewhat scary to try yet most projects have contribution guides on their page. I think this applies most of the people who have no prior experience in open source development.
Git Skills
Another incentive is to become more proficient in git. I took the capstone
course (a team project course which is designed for cs majors who completed all
requirements from the department) last semester, and I realized how poor I know
about git and GitHub. I had no idea how git commands like pull, fetch or
merge work, so every time my teammates update our repository, I had to clone
the repo and start working on the directory just cloned to my machine. As you
can see, it turned into hell when I had some changes in my local repository.
Fortunately, one of my teammates told me how to use those commands, so I
eventually got to know the basics about them. However, those commands were more
complicated than I thought, and there are a lot more git commands that are
useful. This class seemed the best class for me to learn these things.
Communication Skills
The last one is to improve my communication skills. I am an international student, and my first language is not English. I sometimes find it hard to tell others what I am thinking about in my head, both in verbal and written communication. However, extensive communication is required in the world of software, and my situation cannot be an excuse. This class fits the best for me to improve my communication skills because I have seen that documentation or communication are significantly important in open source development.