Software Engineering is not for everyone

17 Dec 2020

Through the many semester as a student majoring in Computer Science, I realized something: “Learning to code is just as hard as learning how to speak another language.” For an average ICS student, I would say it would take about 6 months to more than a year to fully understand a type of coding language. Just like how it can take many years to fully master another spoken language. For example, this semester in Software Engineering we learned multiple ways of developing web applications. Specifically Javascript, CSS, and HTML. These take time and effort to really acknowledge how complicated and complex it truly is. The one quote that has stuck with my through ICS 314 and 311 is “Winners never quit, and quitters never win”- Vince Lombardi (A famous professional Football Coach).

A gist of Software Engineering

The true definition of Software Engineering is really in its name, but my definition is A person who can analyze, design,and test software for the benefit of our future generations. Being introduced to Software Engineering, I thought it was really scary and made me rethink if I am even ready to learn how to develop. However, since I am writing this essay, I was able to stick through it. Overall this class taught me concepts that isn’t only for programming, but for everyday life. I want to share some of the more important concepts that I learned in this class and evaluate how I can use it in my career outside of Web Development.

1. Open Source Software Development

I’m just going to give you a synopsis of what this is: The ability to publicly produce a project for anyone to see or collaborate with. This basically means that the code you have personally designed can be either looked at or criitcized for everyones benefit. The first ever assignment that I had to publish online was for this class. Don’t get me wrong, I felt a little hesitate even though its just an assignment because of the fact that someone can actually glance at how I program. You should always keep this in mind because these assignments/projects published online will reflect on who you are as a person in real life. In my own opinion, you can really understand someone through their ability to work on a project and what their final product will look like. Open Source Software Development is kind of like an article that you have written for anyone to read. By just carefully examining what you publish, others can gain a deeper appreciation of who you really are.

2. Coding Standards

Every programmer should have the ability to use a type of coding standard. If you are interested in learning about what Coding Standards are, I have an essay that talks all about it: Coding Standards. One form of a coding standard that my class used during our time coding in Javascript is called ESLint. Let me tell you this: “ALWAYS USE A CODING STANDARD WHILE YOU CODE!” This will literally save you so much of your time trying to figure out why your code isn’t running. Through the many assignments that I have done, I’ve learned that you can’t expect something to work right away. But if you have some sort of Coding Standard, it’ll eventually teach you different ways to code effectively. As I level up as a Computer Scientist, I now know that I should always check if there is a type of coding standard so that there will always be a virtual “set of eyes” whenever I start to code new programs/applications.

3. Issue Driven Project Management

The past four weeks of this class were dedicated to creating a web application that can solve a specific problem at UH Manoa. This took a lot of communication and hard work to have a functional website working. But without the guidelines of Issue Driven Project Management, I wouldn’t think my group would have been able to create such a unique website. The Project Board on Github really helped my group because without it, we would have no idea on how to start developing it. You may be asking what even is Issue Driven Project Mannagement, this is how I see it as; A guideline that supports the progression of a project by dividing and organizing the ways a group can function and develop together in a professional matter. IDPM or Issue Driven Project Management has been around for centuries now, that means that you’ll probably be using a form of project management whether you notice it or not. This is such a good idea to keep in mind because you’ll never know when you are going to have a project that requires you to work with complete strangers. Following some type of IDPM can reduce the drama and arguements between you and your groupmates.

So what now?

As Fall 2020 semester finishes, I expect myself to continue to develop my skills in Software Engineering through the next upcoming classes for Spring 2021 semester. I really enjoy Web Development and I think I would really want to pursue a career in a form of Software Development.