It is the end of the semester and during this semester I have had a completely new learning experience which tends to happen going into a new semester. But this time it was with a professional option and not a mandatory course for my degree. This new learning experience was open source. When I first registered for open source, I did not exactly know what I was getting myself into. I knew that open source had to do with a lot of work with GitHub and my experience with GitHub was not exactly great so I was looking to improve in that area. As far as that, I was not exactly sure what else to expect.
I half-expected to work with languages that I had not worked with before and I was sort of correct. I did work on a pull request with Ruby which was completely new for me, but that was the extent of my experience with working with a new language. It was mostly working on projects that I had no knowledge in which threw me off at the beginning. Like most programming courses that I have taken, when it comes to assignments, we are given an outline of what needs to be completed, and projects and normally started from scratch. For a few courses, a template is given which is for us to start from, but other than that, not much has been completed. For open source, projects are completed or completed as close as possible, and it is anyone’s job to work on those projects to either fix bugs or to make improvements to the project. If there was a project that I was working on, I had to take the time to review and understand what had already been completed in order to fix a bug or make an improvement.
I think overall, even though that this was a new experience, I am glad that I took this course in the end. My goal of understanding GitHub better at the start was definitely completed, but having this new understanding of open source could be a helpful experience for me in the future. If I end up working in a field that uses open source technology, I could go back to what I learned in this class and apply it to the working field. I think the most important aspect of the class that I’ll take into the future is the collaboration aspect of open source. Its difficult to work on an open source project on my own, which is what I am used to doing when it comes to assignments. For open source projects, collaborating is not only encouraged but it is needed in order to complete the tasks correctly. By collaborating with others, there is a clear focus on how a project needs to be completed since there is not a specific set of instructions that is given from the start, which is what students are usually used too when it comes to most programming courses.
Moving on from open source and this semester, I am not entirely sure what is next. I know for sure that I want to keep my doors open. I know that if I want to continue in open source, I would have to make improvements in order to get better in this area. Mainly when it comes to collaborating because I normally work on my own, which I also prefer. But I did learn during my eight month work term before starting this semester that maybe collaboration might not be such a bad idea. There were times where I was working on projects given to me by my supervisor and a second opinion on my approach on completing projects seemed necessary to complete tasks as efficiently as possible. So hopefully in the future I can improve on collaborating with other people when it comes to projects. These people can be people that I know, or just complete strangers from halfway across the world. Either way, the need to improve when it comes to collaboration is required in order to go anywhere, not only in open source, but any other aspect of software development.