Reflecting back on what seems like a long semester in ICS 314, I have grown a lot as a programmer and added various tools to my repertoire of coding skills. I started the course with close to zero knowledge of web development. I learned a lot about the nuances of group work, the functionality of GitHub, and the awesomeness of IntelliJ IDEA among many other things. Many of these skills that I learned can be applied in things outside of software development.
One of the main things I learned was Coding Standards, a collective group of rules, guidelines, and practices that provide a structure for a software developer to write code. There are many coding standards and they are typically specific to a coding language. When I first started programming in ICS 314, I had a distaste for these standards. I used to think, “if the program was able to run, why should the way the code looks matter?” I even wrote an essay on why it felt stupid to follow these rules.
I was naive. Working in a group made me appreciate these standards. I did not have any issue reading and understanding code written by my groupmates, since we all followed a coding standard, ESLint. When sharing a piece of code in my previous classes, there used to be times when I would get confused by what my peer wrote, especially with indentations. It helped that IntelliJ IDEA had a built-in checker which would inspect the code making sure it was following the standard.
These conventions can be applied to various things outside of programming. In writing, there are already formats such as MLA, and APA, which do the same thing as coding standards. The standards also do not have to be rules for stylistic and grammatic guidance. I plan on having a guideline to follow when I start on a new project at my workplace. I would do the research before attempting anything, take notes throughout the process, and write documentation at the end. These standards started off as something I hated to follow, but I learned the importance of them and embrace them.
Another concept that I learned was the ethics in software engineering. At first, it seems like programming should not have ethics. Ethics may not apply to the action of writing code, but it comes into play when we look at the consequences a program can have. Looking at the ACM Software Engineering Code of Ethics, we see that many principles can be broken if programming is done wrongly. In the ICS 314 class, we looked at how the actions of Facebook violated some of these morals. We debated amongst ourselves the ethics of their actions and whether it was right or not. In the end, there wasn’t one clear answer.
Ethics is not something that is black and white, there is always be a gray area that exists. A solution to a problem that satisfies one may not sit right with another. I am still uncertain about what career path I want to follow, whether it be a job in security science or in the medical business. But, one thing I have learned is to question actions taken and decide if it is ethical and matches my morals before continuing with them. Ethics is always going to be an issue especially when we all have different morals and beliefs.