Posts

Showing posts from July, 2026

Software Engineering - CST 438 - Week 5 - Learning Concepts

This week I learned about the purpose and importance of larger tests in software engineering. Unlike unit tests, larger tests run in environments that are closer to production, which makes them more realistic but also more expensive and slower to execute. I also learned about the challenges of large testing, such as configuring test environments, managing realistic test data, and maintaining test ownership. Finally, I learned that different types of larger tests, including canary testing and A/B testing, help validate software behavior under real-world conditions before changes are fully released.

CST 438 - Week 4 - "Software Engineering at Google"

One of the most interesting things I learned from " Software Engineering at Google"  was how much emphasis Google places on the code review process. Before reading this chapter, I thought code reviews were mainly about finding bugs or checking if the code worked correctly. However, I learned that a good code review is much more than that. Reviewers also consider whether the code is easy to understand, maintain, and extend in the future. This changed the way I think about writing code because it showed me that software development is a team effort, not just an individual task. I was also surprised to learn about the different roles involved in a code review, such as the peer engineer, codebase owner, and language readability approver. Each person has a different responsibility, which helps ensure that the code meets technical standards, follows project conventions, and remains readable for future developers. I had never realized how structured the review process could be in a ...

CST 438 - Week 3 - Git

Git is a powerful source code management system because it allows developers to track changes, collaborate efficiently, and maintain a complete history of a project. By using branches, multiple developers can work on different features or bug fixes at the same time without affecting the main codebase. Git also makes it easy to revert to previous versions if mistakes are made, compare changes between versions, and keep a reliable backup of the project's history. These features improve teamwork, reduce the risk of losing work, and make software development more organized and efficient. Although Git's merge feature helps combine code from different developers, it cannot solve every problem. Git can detect and resolve many text-based conflicts, but it cannot determine whether the combined code works correctly or meets the intended requirements. Logical conflicts, such as two developers implementing incompatible features or introducing bugs that only appear during testing, still req...

CST 438 - Week 2 Learning Journal - Introduction to React

This week I learned the basics of React and how it is used to build user interfaces for web applications. One of the biggest concepts I learned is that React is component-based, which means you can break a website into smaller, reusable pieces called components. I also learned about JSX, which allows you to write HTML-like code inside JavaScript, making it easier to build and organize the user interface. We also explored how components can display dynamic data using props and how React updates the page efficiently when data changes. In my opinion, one of React's biggest strengths is that it makes it easier to build large and interactive web applications by reusing components instead of rewriting the same code. This can save time and make projects easier to maintain. Another strength is its fast performance because React only updates the parts of the page that change instead of reloading the entire page. One weakness of React is that it has a learning curve, especially for beginners...