Throughout this ICS 314 course, I’ve started to slowly grasp and learn the fundamental software engineering concepts. My first impression of this course was actually that this course will just be strictly learning web application development and how to make different types of websites. However, despite how true that was, I sort of picked up on the concepts behind each module. It’s like finding a new path in a cave you’ve thought you’ve already fully explored. It’s fascinating how interesting and how deep each concept can go. A few of the concepts I found quite interesting were open source software developments, development environments, and user interface frameworks. Those concepts were really fascinating to me and were the ones that I really enjoyed learning about.
Open source software development is one of those concepts that is really cool to me. Open source software development, for those who do not know, is software that is published or distributed with its source code, the actual thing that makes the software work, and anyone can use the source code however they like as long as the rights are properly credited. The concept for this is really cool and how openly cooperative programmers that publish this type of work are. Big examples of open source softwares are Firebox and Linux. Those two softwares are completely open source and people can freely use its source code however they want. I’ve always wanted to understand what really sets the difference between open source softwares and softwares that dont share their source code and this course helped clarified what those differences are. I believe the best and simple way to explain it is that these softwares are made for the sole purpose to see what others can do to make it better. Enhance it to the best of its abilities. A good foundation for possibly a dozen of ideas.
Development environments are super cool too. They are basically tools for coders to freely or not-so-freely use to build their websites, softwares, and all of the sort. The development environment we used for this course, IntelliJ IDEA, is an amazing development environment. It was incredibly easy-to-use and had a really simple user-interface, which is basically the way a user navigates through the environment/application. I also learned some really cool shortcuts within this development, that really really REALLY saves time for some of the more trivial things such as alt + enter which allows to fix any error or suggestion that comes with in the code. Another cool shortcut is double tapping the shift button to access a search function. From here you can look for anything you need and that can really become helpful once you have built up hundreds of lines of code. Development environments are really neat and I feel like my eyes were sort of now opened to finding and using cool development environments.
User interface frameworks are super interesting and I have never heard of these until I started learning and using them in this course. User interface frameworks are essentially a collection of pre-built components, libraries, and designs that the user can freely use the moment they have installed it. It makes software development much faster in terms of starting from scratch when designing the application as well as a responsive design to the application. IAn other words, it actively resets the application itself to fit to the last updates the coder has made. For an example, if an image was centered and its size was enlarged, it would take less than a few seconds to update, and boom, the webpage is already updated. It’s super useful and the user interface framework we used was React, and React was a super easy-to-use and cool user interface framework to utilize. It has a preset of images, buttons, div containers, and so much more (feel free to try it yourself by checking it out at this link). It’s a perfect template for web development and was extremely helpful in building my final project for this class. We didn’t need to focus too much on the CSS part of the project unless for formatting and organizing.
To sum it all, this cave exploration was pretty fun and I can not wait to go back in the future. I have found and discovered so much cool stuff and I know there were many unexplored paths back in there that I’ve got to at least try and explore. ICS 314 was a really good beginner course into software engineering and really encourage the many that haven’t yet take it yet here in UH Manoa. You learn and build many skills, how to cooperate with others in a group-based project, and the fundamental concepts that this software engineering course offers such as the three I have stated earlier: open source software development, development environments, and user interface frameworks. If web design and web development is your passion, definitely look into this course and continue research and learning more about software engineering in general.