Throughout my ICS314: Intro to Software Engineering course, I learned more about coding and web applications than I did in my collective four semesters as a computer science major. However, the biggest lesson I learned was that software engineering is much more than just writing code or developing apps. It’s about the combination of collaboration, structure, and ethics that ensures that the technology performs its intended purpose efficiently and without disregarding anyone’s rights or freedom. Among all the concepts I learned during this course, the two that stuck out to me were coding standards and ethics in software engineering. These concepts have changed the way I think about developing software and computer science as an overall endeavor.
The success of any software we create is greatly dependent on the readability and maintainability of the code we write. During my ICS314 course, we learned about coding standards, which are rules that allow the code we write to be organized, structured, and uniform. The purpose of coding standards are so that the code can not only be understood by the author, but also by anyone who may work on it in the future. During this course, I was introduced to linting in the form of ESLint, which detects mistakes and inconsistencies in the code (according to certain requirements) and ensures that the code cannot be pushed unless it fills these requirements.
The importance of coding standards extends beyond just writing code for web applications. For instance, a big team could be developing software for emergency medical services. If the code is not simple, organized, and consistent, one person could mess up something and the system would fail to perform. In this example, the consequences of not following coding standards could cost someone their life. Following coding standards would instead, result in a system that is readable, understandable, and easy to maintain in the long-term.
Another important topic taught in this course was ethics in software engineering. As technology becomes more influential in society, software engineers must examine the broader implications of their job. This includes concerns about data privacy, accessibility, and the potential biases built in algorithms. Reflecting on ethics has reminded me that software engineering is more than just addressing technical challenges; it is also about making decisions that are consistent with principles such as fairness, transparency, and respect for user rights.
The course taught me that software engineering is a complex subject that incorporates technical skills, collaborative strategies, and ethical issues. Coding Standards have stressed the significance of clarity and consistency in teamwork, whereas Ethics has provided me with a foundation for making sound decisions. These notions have provided me with a well-rounded viewpoint that I will apply to any career or personal endeavor. Software engineering is fundamentally concerned with developing solutions that are not only functional but also responsible and impactful.