When I first heard the term “software engineering” and what it generally entailed in relation to studying computer science, I thought that it was a very broad topic and feared that while taking ICS 314, I would have to prepare myself to learn a lot of theoretical, dry stuff that would make my head spin and frustrate me. Fast forward to today, and while I definitely still struggle with some of the concepts that I’ve learnt throughout this course, none of it shouted at me as being boring or mundane. As a matter of fact, the process of going through some of the aspects of software engineering was fun and enjoyable in this course, as I not only had to learn but also apply the stuff I had learned to solve practical problems that anyone may encounter when developing or creating new things. While acquiring better problem solving skills and efficiently solving such problems are what I believe to be the main takeaway of learning software engineering, there are obviously a few specific concepts that I personally would like to discuss in this essay.
Simple and clean is the way to go when making your own code neat and readable. I believe no other ICS courses which I have previously taken have emphasized this ideology as much compared to this semester. While I am still not confident in the quality of my own code, the introduction of tools like ESLint, which identify and display code errors and useful feedback, help me adhere to coding standards. I have written about the topic of coding standards previously, but in summary they are basically a set of guidelines that one should follow if they want to write “good” code. In the same sense that following the MLA format will help you write a comprehensive essay for readers to enjoy, adhering to coding standards allows fellow developers to better understand how your code functions. Admittedly, I find that when I write messy code (which is still often) and come back to work on it after not looking at it for a few days, I personally wonder what the heck I just wrote and would often scrap the code and rewrite it, or just not touch the code at all in fear that adding something to it would break the whole program! The importance of coding standards should not be overlooked, and with enough practice, I believe that just like writing nice essays, writing neat code can be second nature.
Another concept of software engineering that I like is UI frameworks. UI frameworks are a set of tools that help developers build a nice and consistent user interface, which is basically the visual fluff that most people will interact with when they visit your website or use your application. By building a fluid and responsive user interface, people will be more compelled to use your program as it communicates effectively what kind of service you are trying to offer them. This visual communication goes a long way if a developer intends to make people more engaged with their service. Overall, the general idea of making a nice UI requires not only a decent amount of coding skills, but also intuitively a good amount of creativity and imagination. I personally like to consider myself as somewhat creative, so when I was first introduced to UI frameworks, I spent a great deal simply toying around with one and discovering how each component of the framework functions. Like coding standards, I also believe that the usage and advantages of UI frameworks should not be overlooked. I hope that in the future I become more exposed to other types of UI frameworks, because the evolving visual design aspects of current websites and apps that I use today continually fascinate me, and I hope that someday I can also develop cool looking UI designs.