It has been about 4 months since I started going on my software engineering adventure. When I first started this class, I wasn’t sure what it even meant to be a software engineer. After going through ICS 314, an introductory course to software engineering, I can now say that I have a firm grasp of the topic. From the course, I learned that a major part of software engineering is web application development. We learned how to build, design, troubleshoot, and deploy a website throughout the course. However, there is much more to software engineering than just web applications. There are also concepts that revolve around working in a team such as the use of Github and following a template solution to common coding problems known as design patterns. Some concepts that I would like to talk about are development environments, coding standards, and ethics in software engineering.
An idea that has been expanded on in our ICS 314 class is integrated development environments. IDEs are a software development tool to code programs and develop applications. I have used Eclipse before but our class used IntelliJ IDEA to write our code. Successful use of IDEs can help developers understand large software systems, correct, and improve software systems faster. Although IDEs can be more complicated and slower than other text editors, it is much more efficient for many aspects of software engineering. An important feature of IDEs are shortcuts, which our class spent some time with. It is vital for mastering an IDE as it saves a lot of time which leads to more efficient code writing. IDEs and shortcuts are likely going to follow me as I continue on my software engineering and computer science journey. Finding a suitable IDE for my application and learning the shortcuts associated with that IDE will allow me to be a quick and efficient programmer.
Coding Standards are rules that developers follow in a program to keep their work neat and consistent. Our class used ESLint to enforce these rules on our Javascript code. My experience with coding standards throughout the class have not been too troublesome for me. I found that ESLint helped with cleaning up unused functions or imports and made indentation consistent throughout a long file. Following coding standards is extremely important in a team setting as it allows for a team to work on something and make it look consistent. Gaining this experience with coding standards makes it easier to be able to jump into a professional environment with multiple team members and be able to start coding with them in the same way without needing to learn much.
Ethics are an important part of software engineering because as the future becomes more based around technology, the ethics that power that technology must be checked. It is pretty clear when a software engineering topic is ethical or unethical. However, other software engineering topics can have both ethical and unethical reasons for it where the issue balances on a line between safe and dangerous. Some examples include face ID and self driving cars. These issues have the upside of making their product more convenient but they also have the downside of possibly being a breach of privacy or discriminatory. Understanding why something is unethical helps us to fix that and make sure our code stands clearly in the ethical part. While working on projects in the future, I will always consider the ACM Code of Ethics so that the issues I face will be dealt with ethically and professionally.