Topics in Open Source Development, or DPS909 for short. It's been an up and down rollar coaster of some sort. I originally picked this course because one of my colleagues and close friend, Mo, recommended me to take this class after having a conversation with the professor of this course, David Humphrey. I didn't think too much about it at the time, since I was missing the Java course necessary to take this class (BTP400). I wasn't even too sure about what professional options course I was going to take this fall semester too. Most of the ones offered this time weren't to my liking. I would've taken iOS development and took advantage of the iMacs in the computing commons to do my work there, but the global pandemic made that impossible. The game related courses weren't to my liking and the robotics class would've been much better in person than online. Ultimately, DPS909 was the outlier and seeing how passionate Mo was for this class, I figured I had nothing to lose. I went in and enrolled in this class.
The course seemed to be tailored to online learning before the pandemic made it a reality too. The lectures were provided asynchronously, allowing us to focus on our other classes and lives while having an opportunity to go over the topics for each week. The main thing though was to be as vocal as possible in this class compared to other classes that I've taken until this point. Being vocal is not something I enjoy doing unless it's with a group of people that I'm comfortable being with. The same can also be said with being a leader. If I have to lead, I'll do it, but my introverted nature naturally leads me to being that guy in the back that does what he needs to do and not let anyone else down. I had to adjust that mentally here.
I think that DPS909 is a course that should be integrated into the curriculum here in BSD. A lot of what was taught in this course were relevant to technologies that we'd have to use in the real world. GitHub was the core engine that kept everything together, but the little stuff like CI/CD or the linters and formatters that help keep the styling of the code nice and consistent. BSD to me seems to be very resistant to change for reasons that I don't know and don't wish to speculate on. Until I did DPS909, the only course that felt remotely like what we'd be handling career-wise was the web programming courses, and that's also subjective too. Someone that wants to work on the backend would prefer the linux systems development pro option course, which I'm ironically taking next winter semester too. One thing me and my colleagues agree though for sure, is that the financial accounting class is unnecessary and that we have way too many writing/presentation courses. For example, BTC240 is focused on building up interpersonal communication, so why is it that we need a separate presentation course the following semester, LSP400 (Previously BTC340). Likewise, the financial accounting aspects could be a part of the business course we did this semester. Either way, you get the point. Open Source Development was the first course in which topics that were covered were relevant to what real life software developers would have to deal with.
This leads into the 4 releases. I did well in the first one, okay in the second one, terrible in the third one, and okay on the fourth one. I think the releases were designed well and actively encouraged you to have discussions on what you're trying to accomplish and how. After all, this course is built on discussions. The same can also be said of the labs. I liked how it forces you to take the first release and continue working on it until you have it ready to be released and shared to the public. It's not perfect, but it's a project that can continue to be worked on. The same practices can be made with any open source project, which I find very valuable.
Overall, my experiences with DPS909 were very positive. Even when I was down, I tried to work my way back up. Today, I found out my final grade for the course and I'm satisfied with what I got. This course is a lot of work you must do, but it's also work that's satisfying to accomplish. That's how I felt as I made my PR for release 0.4. I plan to use the next day or so to relax, before I turn my attention to fixing the PR to have it ready to be merged. It's not everyday that I work on something outside of school, but that's what we have here with open source. The open source life continues onwards.
Lastly, I'll try and talk about my approach to DPS911, the follow-up course. It seems that not too many students took it. As of Tuesday December 15, 2020, only 4 students, including myself, enrolled in DPS911. I'm not sure about the numbers for the CPA equivalent, OSD700, but I'm sure it'll be a similar amount. This means that the group will be much smaller than any course I've ever taken. In addition, we'll have to continue working on projects, working towards releases every few weeks. It's a time commitment that's needed in order to do well. What makes this harder for me is that I also enrolled in 2 other pro options courses, linux systems development, and cross-platform mobile app development. Along with the 4 mandatory semester 6 classes and my work-term prep course, this adds to a total of 8 classes, 7 since WTP200 is probably not a course imo. This is a very demanding schedule, and the level of time management I'll need will be incredible. I'll probably drop a course or 2 at some point, which will alleviate the stress and give me more time to focus on the classes I didn't drop. At the end of the day, the simplest approach is effective time management and communication between my colleagues and professors. I'll be asked to work on issues that may seem hard to be at first. I'll have to ask a lot of questions on the PR/issues thread and the slack channels. It's gonna be a challenge, and one that I'm happy to accept. More than just building up my resume for my coop in the summer, I can gain valuable experience working with relevant technologies and industry practices that will be valuable to me. I also need to keep reminding myself, that failure does not ever define who I am. It's how I come back from failure that shows what I'm really capable of. Without the failures I've had until now, I wouldn't be the person I am today. So I'm ready to continue learning, practicing, and developing the skills needed to be successful in the industry.
Right now though, I'd like to relax and play some video games. Next time, a whole new adventure awaits us in DPS911. I wonder what new challenges the course will bring to us. As always, stay tuned! See you all in 4 weeks!