The Finale of my Journey in this Class

03 May 2023

The Finale of my Journey in this Class

My experience with ICS 314

I learned a lot in ICS 314 and there were many topics that I was introduced to and had to learn quickly. This class was pretty challenging and fast-paced in the beginning. For example, I failed the first two WODS mostly because I was careless and was nervous since it was my first time doing this type of workout. There were times when I would forget my assignment because there were so frequent. I started off this semester badly but eventually, once I got the hang of this class my grade just kept going up and up. Now that the semester is over looking back I am surprised by the amount of knowledge that I gained as a software engineer. There were many topics and tools that I can use in the future and it made me more confident.

Development Environments

One of the biggest things I am grateful for is utilizing the IDE that was used in this class. An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. Inteliji is a very powerful and useful tool and it cost money but due to being a student at this university, I was able to use it for free. Inteliji is a very friendly IDE and it helps you whenever you make a mistake or are coding. I even found it to be more helpful than other IDE such as Visual Studio Code or Codeblocks. The main thing we used Inteliji for was web development, we first used HTML/CSS then transition to frameworks such as Bootstrap and React. Our final project used meteor and all the components that we learned this semester.

Design Patterns

Design patterns are essential in software engineering and it takes a long time to become good at it. Software design pattern is a general, reusable solution of how to solve a common problem when designing an application or system. I learned in this class that design is not just creativity but logic in the mix as well. It takes a lot of time, experience, and learning from mistakes to know how to design great patterns in software engineering. In fact, there are many design patterns that people can learn from due to the legacy of experienced software engineers sharing their secrets. There are three main types of design patterns: creational, structural, and behavioral. Some notable examples of design patterns include singleton, prototype, builder, factory, and facade. In this class, we practice with this a lot especially when it came to our final project. We want to accomplish a task but we must develop patterns to be able to get the desired outcome.

Ethics in Software Engineering

Being ethical is essential not just personally but as a professional as well. On the surface, being ethical may sound straightforward, don’t cheat, steal, harm, exploit, be careless, etc. However, we learn that ethics can be tricky and not as intuitive as we assume. There are risks and some choices may not seem as black and white. Engineers must have great ethical decision skills because the choices we make can impact society. We have to prioritize safety and take no shortcuts. In the future, due to advancements in technology such as artificial intelligence, there will be more and more complex ethical decisions that we will have to make. We make to make sure to code we write will not harm society and make the best ethical decisions.