In my ICS 314 course we learned web development from the bottom up. We started by hard coding HTML and the associated CSS. Then we moved on to JavaScript, frameworks, plugins, databases, and website hosting. We used a combination of Semantic UI in React, with Application Programming Interfaces (APIs) such as Google Maps and Leaflet. The benefit of using these frameworks was to automate the majority of CSS and HTML code associated with our JavaScript. By using Semantic UI, we were able to condense multiple lines of code to only one or two lines. For example, instead of having to write code for a submit button, manually link that button to a form’s data, and then pass that data to a function for processing, we were able to condense all that code to a simple
Another useful skillset we picked up in ICS 314 was the ability to manage projects to meet the requirements at hand. Agile Project Management was crucial to the success of our projects. We were able to use GitHub, a project management platform, to store new web projects and then quickly branch off those existing projects to create new websites that had similar characteristics. When working in group projects we were able to create a Master Branch that held our working prototype. Then, every time we created a new feature, we would branch off Master to avoid breaking the working code. Once the feature was complete and operational, we could merge the branch back into Master so that everyone else had access. By splitting features amongst our group, we were all able to simultaneously create new features while having access to the active Master Branch. Though merging conflicts would occasionally arise, GitHub’s desktop application gave us the ability to update our local branches from Master and deconflict our merging process.
Frameworks have become the standard for modern web application development, and I foresee myself using React in the future. Part of the reason why I opted to take ICS 314 was to learn how to use React and gain experience working in teams with GitHub. An added benefit was that we covered both front-end user interfaces using React, and back-end database management using MongoDB. Although, for someone that has more experience in traditional programming languages (C and Java), Javascript didn’t feel as robust and streamlined as I had hoped. It was great for quickly creating user interfaces, but we definitely needed scripts from another program languages to run more complex algorithms. Overall, ICS 314 gave us great toolset to expand our employment opportunities.