In the first blog that I wrote about open source, there was one thing I wanted to know about it:
I heard a lot about the glamorous evolution that most programmers experience while contributing to open source projects. Everything from their technical skills (e.g. programming knowledge, coding style) to their soft skills (e.g. collaboration and communication skills) is improved.
Without too much spoiling, I can say that I came looking for gold, but I found diamond instead. With only 14 weeks, I feel that there are still quite a lot of aspects about open source that I haven't experienced yet. Nevertheless, I won't let it stop me from sharing my personal experience.
There is one thing I can say for sure: I love the spirit of open source. I've had a wonderful time working with open source communities of different sizes (e.g. Seneca-CDOT, StepZen, Appwrite, and Zulip). Fortunately, all of them are fantastic and patient with beginners.
I've had several good opportunities to learn not only new technologies but also good software development practices. I helped Element fixed a CSS bug but made a few mistakes when submitting my pull request. During Hacktoberfest, I picked up two completely new technologies (i.e. Ruby and GraphQL) and a nice tree for my 4 merged pull requests. I also had an opportunity to work with Docusaurus while auditing the content of IPC144 Course Notes. Finally, I will never forget my struggle to develop a new feature with jQuery and Handlebars for Zulip.
After all that, it's still hard to tell if my skills have improved any bit. Nevertheless, I realized in the end it doesn't really matter (thanks Linkin Park for reminding that). In my opinion, open source is all about publishing your "bad" code/project and collaborating with others to improve it. I don't mean "bad" as in "worth being shamed and disrespected". It's the "bad" in "worth being improved/enhanced/optimized". Those are two different things.
Therefore, my only advice for my past self and anyone who wants to get started with open source: get ready to learn. If you are interested in a project but clueless about how to get started, learn about it from the community (
git grep or VSCode search tool may be your best buddy, but a supportive community is your wife/husband). If you don't know how to fix a particular bug, learn how others approach(ed) it. If you want others to help you out with your open source project, communicate with other maintainers and learn how they treat new contributors. In open source, I think we are all here to grow not only as a developer but as a community.
I wish open source could be applied to many other aspects in life. It's a bit embarrassing to admit how obsessed I am with open source. In fact, I was so used to filing a new issue on an open source project and requesting to work on it that I unconsciously did the same thing to Scotiabank the other day. The bank tellers must have thought I was high on drugs or something. Finally, I'd like to thank David, who helped other students and me fall into this fascinating rabbit hole. If you are reading this (which is very likely), we really appreciate your amazing content and support, Dave! That was an incredible adventure from Release 0.1 to 0.4 and the labs. I'm looking forward to the my next chapter after this course.