Endless Thoughts Surrounding Software Engineering

14 Dec 2022

There is so much more wisdom beyond Software Engineering!

Coming to an end, but it is a new start of journey

As of right now, my journey for ICS 314 (Software Engineering I) is coming to an end. However, this is just a beginning for my new journey of another software engineering adventure. Software engineering is something that is continuously improving over the time because people are constantly updating and developing new technologies. Through my ICS 314 course, I was able to gain a lot of knowledge on web development and fundamental concepts beyond it. The two fundamental concepts that I really love are the coding standards and ethics in software engineering.

Efficient team work with coding standard

Projects involving software engineering will usually require a group or team of people to work together to complete. Each person in the group might have their own unique way of coding, so without coding standards, the projects will likely have a lot of errors, duplicate lines of code, or unreadable codes. When each person in the group is following the coding standards, the code written by them will have a uniform look. This will improve readability and efficiency. The group will be less likely to face simple bugs or errors and people will have a better understanding of the code. By enforcing the coding standards, the quality of code will improve and it will be easier to use the code from yourself and others.

No real right or wrong decision

When making a decision, there will always be a “right” and “wrong” for each choice. However, there is actually no specific or a clear right choice in reality. This applies to software engineering as well. There are many situations where software engineers need to make a decision in their development process. Making the decision is very difficult because it involves ethics. Software engineers will create products that should guarantee the safety of the people, but it’s not always the case where safety can be guaranteed. For example, in an emergency situation where the driverless car must choose to injure either the person in the car or a person on the road. Who should the driverless car choose? There is no guarantee of a right decision and the person who can make the decision is the software engineer that develops the driverless car. The software engineer needs to consider both the pros and cons of the decision and make the most ethically sound decision.

Into the future

There are so many fundamental software engineering concepts that I didn’t mention in this paper, but they are equally important. I got to gain new skills and experiences on new technologies such as Bootstrap, React, and Meteor. With these technologies, I got to experience working in a team to develop a web application. While working in the team, we used a lot of the fundamentals of software engineering concepts to complete our final project. In my future, I plan to incorporate these fundamental concepts into an interview for an internship or job position for my future career.