ICS 414 taught me a lot about software development, and some of the most important things I learned are in Version Control with Git and GitHub, UI/UX Design with Figma, and Front-End Development with Next.js. For each subject, I gained more experience that helped me improve my professional software development toolkit.
Git and GitHub Version Control was definitely one of the most valuable things I learned from this class. Version control is a mechanism that tracks all the changes that happen to your code over time. This is very helpful to programmers who collaborate on projects to avoid messing up each other’s code and to revisit previous code when things don’t work. Prior to ICS 414, I knew only the basics about Git and struggled when working on assignments. Throughout the class, I was able to feel more confident when making new repositories and committing code. The part I grew the most from was solving conflicts between files. It was intimidating because I didn’t want to lose the progress I had made or damage my team and I’s code but the more I did it the more I learned what each problem was and felt more comfortable. Something else that was valuable from taking 414 was I learned that version control is not only about Git commands; it is also about code organization and teamwork.
UI/UX Design with Figma gave me a new perspective of software design. Figma enables designers to design mock-ups and prototypes of what they want their app to look like before actually coding it. Before this class, personally, I did not know how to utilize any design tools because, to me, there was no point until I actually started coding. Throughout this class, I created a number of mock-ups for the front end of my website and designed a number of different layouts and looks. Designs and coding are not that different, they both involve planning something you are going to create, and I’ve learned that planning what you are going to design is just as important as planning what you are going to code.
Next.js and working with APIs was another thing I learned while taking this class. Next.js can be described as a React framework that simplifies building modern web applications, especially when it involves server-rendering. I devoted considerable time to creating interactive front-end applications and integrating them with data sources via APIs. I became comfortable writing API calls, working with asynchronous data, and displaying data dynamically in Next.js pages. I realized that modern web applications retrieve data from databases or other sources to display live data. I realized that I didn’t complete an entire back-end API in the semester, but I was able to understand a lot about both front-end and back-end interactions. This taught me the significance of comprehending APIs, data, and error handling when there are issues.
Overall, ICS 414 has given me useful skills for modern software development. These three skill sets were particularly useful. They have not only helped me become a better coder, but they have opened my eyes to the broader concept of how software projects come together. The skills that I have acquired, ranging from learning how to design in Figma and how to work with Github and Git, as well as how to develop a dynamic web site utilizing Next.js, make me feel like I have a well-rounded skill level that would be useful in actual software development projects.