Spring 2023 has been the most busy, yet probably the most learning and growth that I have ever experienced in my college career as cliche as it sounds. I have honed in on many interests (it sure is not web development) and feel ever more confident about the type of work I would like to do going into graduation next semester. Though web development is not my personal interest, there are more general practices that I feel will continue to have value well into the future. Namely, understanding the type of community based around open source development and the necessity of applying coding standards for software development projects with large teams.
I truly believe that open source development is one of the greatest accomplishments that the software development community has ever achieved. Software that anyone can contribute to is a cause I support and I aspire to one day contribute to a large open source project such as Linux as a hobby or as a career. With that being said, I never realized that the community can be a bit daunting for newcomers to get started in. Code can be heavily scrutinized especially if it isn’t up to the standards of longtime community members. However, this seeming sense of animosity is a side effect of how much community members care about the open source project which they are working on. They take time out of their day because they care about the project and want it to be the best that it can be. With this in mind, they must continue to live with any code that gets pushed and would rather spend time on the project than help a newcomer who hasn’t demonstrated effort in finding a solution for themself. Having this perspective in mind will be quite helpful when I start breaking into open source because I will be able to sympathize with any criticism made and mitigate discouragement from trying to break the beginner wall.
It is hard to overstate how important coding style conventions are for large team software development projects. In my experience with projects of limited scope, code has been very messy to put it bluntly. It has either been small group projects where each member’s code is practically isolated from one another, or a solo codebase where I would probably be the only person able to easily decipher the code. These mistakes have made me realize how important having standardization for software development really is. I feel if I take anything away from this semester, it will be to become very familiar with the coding style whenever starting work on any project as a first step. It will only work to help me understand the rest of the codebase and helps all other developers who may have to eventually read my code.
I found the more general software engineering principles that can be applied outside of web development to be the most valuable. In the long term, I am aiming to contribute to the Linux kernel and so I will take these principles along for that journey. No matter what the future holds however, it sure as hell will be an exciting one.