Looking into the Future

16 Dec 2022

Scary Start

At the beginning of the semester, my software engineering class scared me. It had been a while since I last programmed anything, so I wasn’t sure if I still had the skills to be able to do well. I was also worried, because I was scared of a class that’s extremely important for my major. Then, before I knew it, we had our first WOD (Workout of the Day, basically a weekly quiz). I passed! We started out with JavaScript and it felt just like what I did in previous classes with Java, so it was perfect for helping me get back into the right mindset and start pushing myself to reach new heights. It would prove to be crucial too, because this software engineering class was the first programming class that taught me more than just how to make my code work.

Consistency in Code

Arguably one of the most important aspects in computer science, having coding standards is something that I hadn’t thought much of before this class. Coding standards are rules/guidelines of how to format code so that it’s easier to read and understand. Whenever I helped my friends or classmates with their code in previous classes, I always thought that it would be nice if everyone had written their code in a similar way - since some people indented or named things differently, some did things like put brackets on separate lines, and everyone put different pieces of code (like methods in Java) in different areas of the file. I kind of enjoyed the challenge of understanding everyone’s style and sometimes changing how I worded my advice to suit them, but at the same time, it was a little annoying when I didn’t agree much with their style. I only started to realize how important coding standards are when we began the group project. Everyone wrote their code differently, which was surprising because we were all in the same class! Beyond just coding, the concept behind coding standards showed even in things like naming the GitHub branches. I knew that if all of us named branches differently, it would be very difficult to find specific ones, so I suggested that either one person make all of the branches or that we name them like the majority of the branches at the time. Thinking back on it, though I may wish we named them slightly differently, the most important thing is consistency.

Roko's Basilisk Image

Ethics in Programming

Something I didn’t think about at all prior to this class (and still wouldn’t really expect to learn in this class) is ethics in programming. The closest I came to actually thinking about ethics in programming is when I first learned about the Roko’s Basilisk thought experiment. Basically, Roko’s Basilisk is a theoretical artificial super-intelligence that would torture anyone who knew about it but did not help bring it into existence. My thoughts on it were (and still are) that if everyone agrees to not bring it into existence, everyone wins. It wasn’t a very difficult choice for me. However, in the last week of the semester, our software engineering class had a debate about a very possible real-world scenario, where a company was making not-so-secure technology that removed part of the public’s freedom. At first, I thought that it wasn’t ethical to work there because I would be contributing to something that everyone agreed was bad. Sure, theoretically the perfect form of technology that was wanted could be good, but the current form of it that the company had was far from it. Then, I realized that if I worked there, I could change that technology. Maybe I could stop it altogether if I felt that would be better, maybe I couldn’t. At the very least, I could push to improve it as much as possible, since I would be working on it. My thoughts on ethics in computer science expanded even further when the professor asked if working on defense technology is ethical. He said that the same technology that is supposed to be used to defend from attackers could also be used to simply attack first. From now on, I’ll definitely think more about my actions and their consequences, whether in programming or elsewhere in life.