CST438 - Week 8 Reflection
List the 5 most important things that you learned in the course, and why you chose them.
Were there topics would you like to see added or deleted from this course?
First and foremost, this course does excellent work inviting students to consider software from end to end. Prior to CST438, I had worked with many of the individual components and concepts explored in the curriculum, but I had not yet spent much time considering how workflows managing requirements, user experience by way of stories, databases, REST endpoints, front-end interfaces, testing, version control, and deployment of just a single system fit into and define the practice of software engineering. This leads to my next important area: how React applications communicate with REST APIs. This was touched upon in Internet Programming, but I felt CST438 threaded the needle from a more sweeping and nuanced perspective. Reviewing HTTP requests, JSON data, routes, and database operations from a comprehensive angle helped me understand how features go from planning to implementation.
Mentioning React/REST leads to my third most important topic, using Git as both an individual and a team. Even working professionals hit pitfalls and uncertainty resolving issues and making changes in a shared codebase. I rank this topic in the top five as coordination and accountability within a software team are the foundation for a functional and scalable product. Going hand in hand with creating a functional and scalable product is my fourth major lesson: software testing. Test Driven Development introduces a surefire way of establishing expected behavior for software which drives sound development. Testing can be seen as an afterthought, something performed after development is largely done. This ignores that software must be designed with functionality in mind from the beginning of the project.
Finally, I feel that deploying software through AWS is one of the most realistic and hands-on lessons that the CS online program has offered. I see AWS mastery as a solid badge of aptitude in the Computer Science workspace as it is a constant make-or-break topic in interviews for high level IT engineer positions. If I could add any material to this course, I would perhaps attempt to find a way to incorporate more AWS labs that include sound monitoring, security, networking, and cost management for cloud deployment. Cloud deployment has become such a cornerstone of modern development operations that it is essential for CS students and professionals to learn. I would not delete Mockito from the course entirely, but I do feel least familiar with that topic out of everything that has been covered in the last eight weeks. Using Mockito to isolate dependencies and testing a realistic service is worthwhile, I just didn't feel as engaged with that material as the rest.
Comments
Post a Comment