Skip to main content

CST 438 - Final Week

This week marks the end of CST 438, and a short, yet intense learning experience about software engineering. Although the work load was tough at times, and especially during unprecedented events happening in the world at the same time, I feel proud of myself for making it this far.

I learned a lot of useful things in this class that will definitely help me out in my current job working as software test, and in any other future jobs/careers I might pursue in software. Five things I considered the most important are:

1. Always create requirements that are clear and concise, along with getting all stakeholders to agree on these requirements. This allows for efficient development and realistic goals when making an application, and also wastes less time and resources if conflicts arise over what requirements are/aren't wanted, or in the worst case having to change requirements and lose time by starting over on certain aspects of the project.

2. Microservices are powerful, modular tools, but they're not always the best solution for an application. Starting an application as a monolith creates less overhead and is easier to manage, and also gives a development team more time to understand the application and increase their technical skills. Switching over to microservices should only happen once there is a clear need for them, such as an application requiring to scale beyond what its original monolith design can do.

3. Writing good test cases saves debugging time and chasing down pesky bugs that could've been avoided, freeing up precious development time.

4. Code reviews are an important tool for developers to focus on their "weak points" in technical skill, and are useful for development teams as well for learning good coding practices.

5. Using a centralized version control system such as Git is essential for any kind of software development project, even solo projects. At the minimum, a VCS system prevents data loss by saving snapshots of code repositories, but its real strengths lie in allowing teams to easily collaborate on software through development branches and pull requests (along with integrating code reviews!). 

Comments

Popular posts from this blog

CST 499 - Week 7

This week, our group finished recording and editing our capstone project video and prepared our presentation for the capstone festival. Although I wish the capstone festival was held in person (and it could not due to current circumstances), I am excited to show off our project and hard work to other computer science students, friends, and family. I hope they'll enjoy it and learn something cool while doing so. 

The Final Journal

It's the end of a long, four year journey, and what a journey it has been. I never thought I could pull off finishing my second bachelor's degree four years ago when I first went to that introduction to programming class at my community college. I would like to thank all the friends I've made along the way and the people who have helped me through the last two years. Although it was difficult at times taking class while working 40+ hours a week, I'm proud of myself for making it through. I don't think I'll be a student enrolled in classes anytime soon, but I'll always be a lifelong student. See you all around.

CST 499 - Week 3

This week, we finished our ILP portfolios and turned in the final versions of our resume and cover letter. My group also completed the first part of the capstone report. I'll admit that creating a portfolio showcasing my past work was not at the top of my priority list when I first started studying computer science, although at this point in my educational and professional career I've learned how important it is to have such a portfolio. Like other creative professions, having a solid body of work to show to a potential employer, or even for personal documentation is one of the best ways to display your talents as an engineer. Also, all the assignments I've completed during my academic career, both at CSUMB and elsewhere, have given me a good start to my portfolio. I tend to prefer classic, plain styling like  Brian Kernighan's  home page (he has a pretty nice portfolio too), although I've come to appreciate highly stylized portfolios that make use of WebKit ani...