In Fall of 2020, perhaps the worst year our world has faced in the 21st century, I took Software Engineering (ICS 314) with Dr. Philip Johnson at the University of Hawaii at Manoa. When I found out that my software engineering class would be completely online, I was very disappointed, disheartened, and discouraged. However I do understand the concern for COVID and the fact that many people have died, and that we should all be wise in making sure we do not spread disease. I am a natural hands on learner, who thrives on in-person learning. I came into the class a bit nervous about my performance and I was intimidated by how much time the professor said this class would take. After about the third week I got into a decent rhythm, and was doing fairly okay. There were times where I suffered a bit and fell behind, and had to deal with those consequences. However, the overall benefits of this class for me have outweighed the negatives.
Around the middle of the semester, I had a change of perspective on my academics. I had held the position throughout my college career that it is more important to pass the class than to learn valuable material. How mistaken was I! One common thing I would do that would help me pass classes, but inhibit my learning is memorizing mindlessly. Memorizing would help me pass the tests and pass the class but forget everything after. Once my professor talked about our future careers and how much we could accomplish with the skills we would learn, it made me learn how much more valuable it is to understand new concepts pertaining to software engineering. Because I want to be on the forefront of solving our world’s big problems! Nobody can do that by memorizing mindlessly.
One subject in particular which I took serious interest in was the concept of design patterns. In short, a design pattern is a solution to a problem that appears over and over again in computer sciences. There are different types of design patterns and almost every day as a software engineer we will be encountering new problems and challenges that in some cases, there will already be solutions for. It is important that we understand the design patterns we use so we can continuously progress our applications. For example the meteor application template which was provided by our professor, provided a very useful tool for understanding how meteor works and more generally, how we can better evolve our web applications. I am also thankful that our professor had us work in Github- a platform which hosts software development and projects Before taking software engineering, I had very little experience with Github. But coming out of this class, I can say with confidence that I am at least fairly competent with GitHub and GitHub desktop, which is really great primarily because Github makes life as a software developer much easier. In short, it allows its users to quickly and efficiently collaborate and manage projects in a way that does not interfere with other projects or developers (if used correctly).
Perhaps most importantly, this class has taught me that not everything can be learned in a classroom setting. As my professor told the class, the best software engineers often don’t know immediately how to solve a problem, but after trying, they eventually learn more until they do solve it. That is why it is important to be a part of future projects where we don’t have all the answers readily available, and so far that is very different from the academic setting I have been used to. For example, in a math class, if you don’t know the answer, you would ask the professor to walk you through the steps until you find the answer. However in some software development circumstances, there may be times where nobody may know the immediate answer, instead you must find it yourself! I am looking forward to applying the change of learning habits in the future, like finding problems that have unique solutions. Lastly, I am deeply grateful for the opportunity to take software engineering at the University of Hawaii at Manoa. I am especially thankful for Dr. Philip Johnson, and his amazing star TA Brandon Ogata.