This week was especially interesting to me. I got to learn all about how the different technologies interact to create a finished product. Aside from the Student View Schedule, View Assignments, and View Transcript routes, I was in charge of CSS for my group, so I learned how to install Bootstrap for React and how to implement those elements, which was slightly different than the way I've implemented them in the past. Because I had to implement style changes in a different way than I'm used to, I "accidentally" learned more about how React components work together and have a much better understanding of the different elements. While trying to adjust certain elements, I also learned some more about Javascript states, which is definitely a weak spot in my knowledge. Overall, I really felt that this has been the most beneficial for me from a growth perspective.
Tuesday, July 29, 2025
Tuesday, July 22, 2025
CST 438 - Week 4
One of the most interesting things I've learned from reading "Software Engineering at Google" comes from this week. I never really thought about the breakdown of how code is reviewed. So far in any group projects I have been a part of, one person sort of 'takes the lead' when it comes to managing pull requests. While I assumed that there would be a more complicated process for this when dealing with a larger team and more complex projects, I didn't realize that there are not only multiple people who review, but that these people are looking at different aspects of the code. For example, one of the people who reviews code is focused on readability and maintainability while another focuses on if the code is suitable for their portion of the codebase. This allows for division of responsibility so that no one person is responsible for checking every aspect of the code.
Tuesday, July 15, 2025
CST438 - Week 3
The most obvious benefit to using git as version control is being able to revert back to previous working version of your code. Before I learned to use git, there were times that I started re-writing code for a new feature, just to break everything that worked fine before. With git, I'm able to restore the file to a previous version in order to more easily figure out where I went wrong. Another thing I find useful about git is the ability to coordinate with team members on projects in parallel. I can work on one branch while my partner works on another and we are able to push and pull our code remotely without having to worry about copy and pasting or downloading files from each other.
One thing git merge does not solve is when two developers make changes to a file, but not to conflicting lines of code. What I mean by this is if two developers both modify line 15 of a program in different ways, git merge will find that problem and flag it as a conflict. However, if one developer writes line 15 to print a variable and line 14 defines it. But developer 2 changes the variable name or deletes line 14, we're going to run into problems that wouldn't necessarily be caught by git merge. Even though there is no merge conflict, the code will still not compile or work as expected.
Tuesday, July 8, 2025
CST 438 - Week 2
This week we were introduced to React.js. React is a front-end framework that manages a virtual DOM to allow for increased performance. We used this to connect a visible webpage with our previous module's Java code. This allows users to interact with our database and related functions in an intuitive user-friendly way. I found the way the codebases connected to be really satisfying and I'm really looking forward to utilizing this in more depth as we move forward.
I think one strength of React is the way it promotes modular code by utilizing components. Similarly to the way we use partials in Node.js, I can see how the individual components allow for less re-writing and better efficiency.
On the other hand, I found learning the pattern of the React concepts a little intimidating and can imagine how much more intimidating it would be without a solid background in code. Alternatively, vanilla JS, HTML and CSS are more approachable and the structure is more easily understood.
Tuesday, July 1, 2025
CST 438 - Week 1
I expected a course in software engineering to cover what goes into building a software from scratch, including the design, the technologies and the life cycle. After the first intro course to software engineering that we took last year, I expected it to include aspects of multiple courses from back-end to front-end, databases, and security. After the first week in this course, my expectations were met, but I also learned more about things like scalability and maintainability along with the importance of communication amongst not only developers but with the clients as well. In my coding experience so far, it has been easy to make changes or refactor code, because I've been primarily working alone or in small groups. Emphasizing the impact of project management and tradeoffs will be vital to working on larger scale projects