Web Design Journey

10 May 2024

After completing ICS 314 (Software Engineering I), choosing to continue studying ICS 414 (Software Engineering II) was one of the best decisions I ever made. At the beginning of the class, I expected that we would be able to choose our own team members and work together on a project. However, the truth is not as I imagined. This idea stems from the experience in ICS 314, when we had the opportunity to choose who we wanted to work with, who we didn’t want to work with, and what projects we wanted to work on. However, Professor Moore in class mentioned the world is cruelty, that is real world, we rarely have the opportunity to choose what we want to do. I agree with this view because in the future if I join a company, I may be assigned to an unfamiliar team to work on a project that we need to complete. I don’t think companies let me decide who I work with and what projects I want to work on.

Self Learning

I’ve learned a lot on my journey, both in theory and in practice. I’ve learned how to build reusable components, split interfaces into separate parts, and about communication and data transfer between components. With Meteor, I learned how to implement real-time data interaction so that the application can respond to changes in the data instantly, no longer needing to manually refresh the page. Knowing how to coordinate front-end and back-end development made it easier for me to interact with and communicate back-end data with Meteor’s full-stack framework. Master React’s state management library to manage application state and take advantage of Meteor’s data management capabilities to handle back-end data. I also learned how to use React Router or other routing libraries to manage the routing and navigation of applications, enabling smooth jumping and navigation between pages. Learn to implement user authentication and rights management features to secure the application and take advantage of the user authentication and rights management features provided by Meteor. Finally, I learned how to deploy applications to production environments and perform unit and integration tests to ensure the quality and stability of the applications. By learning React and Meteor, I gained a well-rounded Web development skill set to build modern, responsive, and real-time Web applications. One of the point to being a good developer is to keep learning.

Teamwork Learning and Experience

In the process of group programming, everyone will have the opportunity to learn and grow. First, teamwork speeds up the learning process because problems can be solved by communicating and sharing knowledge with other members. Second, understanding the workflows and skills of different roles can improve the understanding of the overall development process, thus improving the efficiency and quality of the team. In addition, the process of facing challenges and solving problems is also a valuable opportunity to improve programming skills and teamwork. Most importantly, by working with others, more creative and innovative solutions can be created, which are often beyond the reach of individuals.

In the process of writing a volunteer website, we may encounter various challenges, such as how to design an intuitive and easy to use user interface, how to guarantee the security and stability of the website, and how to effectively manage a large number of volunteer information and activities. Through teamwork, these challenges can be broken down into smaller tasks and assigned to different team members to tackle. At the same time, close cooperation and communication between team members can help us identify and solve problems in a timely manner, ensuring that projects are completed on time and meet high quality standards. In my personal experience, the importance of team communication is vividly demonstrated. My team members have a clear branch of labor, each responsible for different branch. And the for my branch I was in charge of some problems I couldn’t solve. Due to my lack of timely communication and collaboration, I fell into a seemingly unsolvable problem, resulting in no progress for the branch I was responsible for. Although I tried many solutions, I could not find a satisfactory answer. Eventually I decided to enlist the help of other team members to share my problems and thoughts. Through discussions with other members, I not only gained new ideas and solutions, but also discovered some key points that I had overlooked before. This experience made me realize that team communication is crucial to the the project. Without team communication, I would have been stuck in the face of a problem and the project would have stalled.

Remember that team communication is very important. Through regular meetings, online discussions and instant messaging, team members are able to share progress, ask questions and coordinate action plans. Effective communication helps the team better understand the project goals and requirements and facilitates collaboration to achieve better project outcomes.

Team-Octagon