The Most Important Things I Learned In Software Engineering

18 Dec 2024

Introduction

Throughout the semester in ICS 314, I was able to learn more about web development and software engineering in general. Although web development was the main focus of the course, we are also taught skills that are crucial for software engineering such as coding standards, user interface frameworks and development environment as well. These skills not only enhance my ability to develop functional and maintainable web applications but also provide a strong foundation for starting more software engineering projects. By understanding and applying these concepts in class through experiences and in-class WODs, it gave me confidence and insights further than just web development.

Coding Standards

Coding standards are a set of guidelines that ensure consistency, readability, and maintainability in software development. Before this class the only coding standard that I knew of was the coding standard in ICS 212. Being introduced to ESLint was different from the coding standard that I am used to. ESLint can sometimes be time consuming because I wouldn’t be able to make commits to Github because of ESLint errors and this really bothered me for sometime because I have to go back and fix all the ESLint errors. Discovering that there is a command that fixes almost all the ESLint errors automatically is so huge because it saves me so much time. I learned that with a good coding standard in place and command to fix syntax, I can worry less about syntax and focus more on the design of code while having the code looking consistent. This is super important when it comes to working on a project because for our final project we are tasked to work in a team to complete a web development project. With ESLint I was able to read my teammate’s code and they can read mine with the same consistency.

User Interface Frameworks

User interface frameworks provide pre-built components and tools for designing and implementing user interfaces. Examples of this include React, NextJs, and Bootstrap. These frameworks simplify the process of creating responsive and interactive user experiences by abstracting away many of the repetitive tasks involved in UI development. These frameworks are really efficient because they can create work that would take plain html css and javascript weeks or months to complete in a matter of days or hours. In my experience there was a huge learning curve for me when working with a framework such as React because it abstracts a lot of the work behind the scenes into a simple template. So when I was learning React, it was like here’s a template to work with but there were so many files and things that work in the background that I did not understand. I learned that not understanding things is okay sometimes because it’s part of software engineering. I will never know everything I need to know because there is constant new technology or frameworks coming out so it’s important to keep on learning.

Development Environments

Development environments refer to the tools and platforms that developers use to write, test, and debug their code. Integrated Development Environments (IDEs) like Visual Studio Code, IntelliJ IDEA, or Eclipse combine code editing, debugging, and project management features into a single interface, enhancing productivity. Before this class, I was coding most in Java hence why Eclipse was my choice of IDE. Eclipse is just another development environment because it’s tailored towards Java since it has many built in command interfaces. Rather than running a command to compile or run code, it’s as simple as a click of a button. Being introduced to VS Code allowed me to understand how code is actually compiled and run. VS Code simply is just a text editor with many different choices of extension and built in functions such as the terminal. There are no run buttons to run my code so in order to compile and run my code, it’s done in the terminal. VS Code is a very lightweight IDE that is my favorite IDE because it’s so fast and versatile. Having a personal favorite development environment like VS Code allows me to become better with all the tools and functions which will help me become more efficient in future projects.

Conclusion

me become a better software developer. Everything was fast paced in this class as there was a lot of material to go over. In the future, I will focus on getting good at each technology or development environment. I will continue to personalize VS Code as I go to tailor towards my needs and I focus on getting more repetition of working with React to become really proficient at the framework.