CST 438 - Week 8 Learning Journal - Course Overview

 

Throughout this course, I learned that software engineering involves much more than just writing code. It also requires planning, testing, teamwork, documentation, and thinking about how software will be maintained and improved over time. The five most important things I learned were working with REST APIs, developing a frontend with React, system testing, using Git in a team environment, and deploying an application to AWS.

1. REST APIs and Backend Development

One of the most important things I learned was how REST APIs allow the frontend and backend of an application to communicate. Before this course, I understood the general idea of a backend, but working with REST APIs helped me better understand how an application is divided into different components. I learned how HTTP requests such as GET, POST, PUT, and DELETE can be used to retrieve and modify data.

2. React and Frontend Development

Another important skill I learned was developing a frontend using React. React showed me how a user interface can be separated into reusable components instead of building everything as one large page. I also gained experience connecting the React frontend to the REST backend.

3. System Testing

System testing was another major lesson from this course. I learned that getting code to run does not automatically mean that the software is finished or reliable. Testing requires looking at the application as a complete system and making sure its different parts work correctly together. It can also reveal problems that may not be obvious while developing an individual feature.

4. Git and Team Software Development

Learning how to use Git as part of a team project was also extremely valuable. Version control is fairly straightforward when working alone, but it becomes much more important when multiple developers are making changes to the same project. I gained a better understanding of working with branches, combining changes, keeping the project organized, and dealing with the challenges that can happen when different people are working on the same codebase.

5. Deployment to AWS

Deploying to AWS was one of the most useful parts of the course because it showed me what happens after an application has been developed and tested. Running an application locally is very different from making it available through a cloud environment. Deployment introduced additional considerations about configuration, infrastructure, and making sure the application works outside of the development environment. 

Topics I Would Add or Remove

I would not completely remove any of the major topics from the course because I think REST APIs, React, testing, Git, documentation, and deployment all contribute to understanding the software development process. However, I would like to see more time spent on deployment and DevOps. Deploying to AWS was useful, but cloud deployment can involve many different tools and configurations, so additional examples or practice would make that part of the course easier to understand.

I would also like to see a topic on CI/CD added to the course. Since we already used Git, system testing, and AWS, learning how automated testing and deployment can be connected through a CI/CD pipeline would be a natural next step. It would demonstrate how professional teams can automatically test changes before they are deployed.

Overall, the biggest lesson I took from this course is that software engineering is not simply about producing code that works. Good software also has to be testable, maintainable, understandable by other developers, and capable of changing over time. 

Comments

Popular posts from this blog

CST 349 - Week 4 Learning Journal

CST 349 - Week 5 Learning Journal

CST349 Week 2 - Learning Journal