Sunday, September 15, 2019

Writing 02: What are your thoughts about the hiring industry?

I have mixed feelings about the hiring industry personally. On one hand, I like the fact that Computer Science positions offer technical interviews and other forms of practical testing for hiring. On the other, I feel that most of my prior schoolwork has been a waste of time now that I am applying for jobs. While GPA is an important component of the application process, many of my prior classes, especially university requirements, do not seem to translate to practical, on-the-job skills.

The hiring process in my view has both good and bad aspects. I don't really enjoy the process of networking and discussing my qualities as a candidate. I would rather just show off my skills in a technical evaluation and have the employer deem if I have the ability to perform the job. I find the other aspects of the interview process to be rather artificial and somewhat fake, especially for a position such as an SDE. Of course, conversational skills and persuasion are good for positions such as being a sales representative or business executive. However, for software engineering, I feel that technical skills and knowledge is much more valuable.

Regarding my preparation for the hiring process, I feel that I took a different route than many of my peers due to my study abroad experiences. Rather than use the summers before junior and senior year for internships, I spent them in Japan studying at language schools. Also, due to the number of classes I needed to take in order to study both Japanese and CS, I had no time to participate in research. I feel like these choices, while allowing me to possibly work in Japan in the future, have put me at a competitive disadvantage compared to my classmates.

I think that there should be a distinction between academia-focused universities and job-focused trade schools. I think the core curriculum of most universities isn't really useful for the majority of technical-focused students. For example, I think that classes such as Moreau, FYS, and university requirements (particularly history, theology, and literature) would serve STEM students much better if they were to be replaced with classes about career building, team-based work, and research.

If I could give advice to my younger self, I would tell them to do more research and personal projects rather than focus on school work. From my perspective, once you get your first job or internship, your past grades basically get thrown out the window and forgotten. Also, grades don't really translate to career skills. Research and personal projects on the other hand give you practical experience that can really bolster your resume and viability as a job candidate.

Notre Dame, in my view, severely lacks the resources and education for job searching. Sure, if you want to get a consulting job in Chicago, it's very easy for pretty much any CS major due to the numerous alumni connections there. However, in my case, I wanted to look for an internship abroad. However, Notre Dame has no resources for this both in the Career Center and at the Career Fair. Thus, I had to do my own research and attend an external career fair on my own budget. This can be very difficult as it's both a huge time and monetary investment to travel to attend a career fair such as this.

Friday, September 6, 2019

Writing01: What is your identity?


In terms of Computer Science and my hobbies, I feel like I have a hacker/maker identity. I enjoy making things in my free time, whether that be small programming side projects or pencil sketches. I always like the feeling of knowing that I made something cool or interesting. Consequently, I get frustrated if I don't see immediate value from side projects that I'm doing. I think that's why I struggle with art and music since those skills require lots of time and dedication before you can achieve meaningful results. With programming, on the other hand, you can do amazing things with just a few lines of code copied from Stack Overflow.

I don't like playing video games or watching Netflix if I'm by myself since I feel that it's a waste of time. I do think that these events are good if they are done with friends or in a social environment since they help build relationships, but I feel so lazy if I do them alone. I used to do these activities much more as a child, and I feel like it had a negative impact on me going forward since I would skip social and educational opportunities to play video games or watch TV.

I'm pretty much the opposite of most Notre Dame students. I'm non-religious, I don't care about watching football, and I don't really have any school spirit or pride. Notre Dame wasn't my ideal school, and I see it more of a means to an end. While I think the majority of the CS professors I've had so far have been exceptional, I have many problems with the way that the school is run and question my choice of attending ND.

As for my privileges, I've grown up with a supportive immediate and extended family. While my family is not wealthy, my parents have worked hard to make me not worry about tuition and living expenses. I have also had opportunities to attend schools with good academic records and to study abroad in Japan. Also, thanks to access to computers in high school, I was able to start learning about Computer Science before college.

However, I also have some disadvantages. Since I'm rather short and thin, people assumed that I can't play sports and just spent all day doing academic activities. This stereotype has come up time and time again throughout my life, despite the fact that I would throw the football with my brother each week and would climb the giant magnolia tree in front of my house for fun everyday. In fact, due to my excessive tree climbing, I would always win the rock climbing competitions at my middle school's relay races. Despite all this, I would always be picked last in PE and would never get the football passed to me during games.

I also feel like I've been stereotyped as "that smart kid." Even though I would always work hard and stay up late every night to maintain my grades, people would always assume that I got good grades because I was just innately smart. Even at Notre Dame, people will say that the only reason why I could code a certain thing or pass a certain interview was because I was just naturally smart. Very rarely would people acknowledge the hard work that I've put in over the years. Additionally, people would assume that I had everything "under control" and never had to worry about anything. Thus, when I actually did struggle, I had no one to turn to for help and just had to act like everything was okay.

I have a pretty cynical view of the world. I think most success and failure can be attributed to your appearance, rather than the hard work you put in. Of course, if you have good grades and skills, you might be able to find a good job and make a lot of money. However, I don't consider that by itself successful. For me, your friendships and relationships are the most important elements of a well-lived life. For this reason, I don't really care whether I become a millionaire or change the world.

Request: @pbui - please don't bring this up in class as I feel like some parts are a bit too personal

Saturday, August 31, 2019

Writing 00: What does it mean to be ethically responsible?


For me, it is rather difficult to define an ethically responsible person. I think the most important quality of being ethically responsible person is considering the effect of our actions upon others. However, in my opinion, there is an important caveat to this that one must not ruin one's livelihood in order to promote the common good. In this sense, I believe my primary ethical framework would be a mix between Utilitarianism and Egoism.

In the context of Computer Science, this framework entails that it is morally permissible for a ethically ambiguous employer such as Facebook or the NSA provided that you work within your capacity to do the right thing. For Facebook and the NSA, that would mean speaking out against abusing user data for company gain in as many opportunities as you can without overdoing it and losing your job because of it. Of course, an act such as whistleblowing would certainly be ethically supererogatory in my eyes. However, I don't think it is write to claim that whistleblowing is ethically required if you know of wrongdoing within your company. As mentioned in class, I believe that we should do what good we can within our means. In other words, we shouldn't necessarily sacrifice our livelihoods and careers in order to do the right thing.

One of the reasons I stress acting ethically within our means is my experiences abroad in Japan. In Japan, there is this idea that one must always put the general community over oneself. While in theory this mindset is intended to encourage people to act with kindness and proper manners, I found that in reality this thinking encouraged the brutal cycle of overwork and lack of self-care. This idea also encouraged a culture of shaming in which people would be criticized for not giving back enough to their community. For example, there is a notorious problem in Japan in which elderly people are neglected by their families since they are seen as dead weight and a burden to society. For these reasons, I strongly believe that some sense of self-care and self-interest is a necessary component of a good ethical framework.

How can we do the right thing "within our means?" I believe as programmers acting ethically within our means entails being responsible for the code we write and the code we review as much as possible. When we create programs, we have to take ownership over the user experience and the effects that our programs have over others. For example, if you write a program that accesses and stores user data, then you should strive to the best of your ability to protect that data and limit access only to the most critical systems that require it. In the case of code review, you should push back against malicious or incompetent use of the data. In this way, you can still achieve good in your everyday life without having to destroy your life in the process.

Another way in which we can achieve good within our means as computer scientists is by giving back to the community through open source. Open source software is a great avenue for spreading our talents far and wide to the global community. It is also an opportunity to do volunteer work while achieving personal growth and satisfaction. For me, I have found a lot of value in sharing my work through open source and receiving help in return from the community. It really is a great positive feedback loop that benefits everyone.

In conclusion, I think that you should strive to be an ethically responsible person. As humans, we are nothing without community. In order to maintain and improve our community, ethical responsibility is a requirement. However, I don't believe that we should sacrifice our livelihoods in order to achieve the greatest amount of good possible. Thus, like with many things, we should strive to find a balance between ethical responsibility and our personal obligations.