The Power of Software Engineering

15 Dec 2019

Software Engineering is one of the greatest tracks of computer science, which I would really love to do in the future. Fortunately, I was able to learn web application development at the University of Hawaii - Manoa for one of its software engineering classes.

One of the takeaways from this class is the User Interface Frameworks (UI Frameworks). The UI Frameworks fasten the speed for the front-end programmers because they don’t have to manually type everything out. A similar analogy to this is a comparison between walking versus biking. Most of the time is much faster than walking from point A to point B, and also walking requires more effort than biking. UI Frameworks, such as Semantic UI and React that we have used in the Software Engineering class, takes much less time to do front-end application, and each framework has its own beauty in its elements like rounded buttons, amazing icons that can be added into the DIV tags, real-world application for forms, animation to cards/profiles, just to name a few. Additionally, developers can change the props of these elements easily; they can invert the DIV tags, change the size, and other techniques shown on the documentation of each framework. Although it is hard and frustrating to learn a new UI Framework at first, I could see myself using one, if not, many UI Frameworks in the future, because they don’t consume a lot of time once you get used to it, compared to writing out CSS code entirely. I have done Bootstrap before, and I am planning to learn Material UI next!

I think of UI Frameworks as libraries for other programming languages, such as NumPy and Turtle for Python, which I have used before. Everyone who has used any of these libraries must import it on the header of each file that he/she is working on in order to run properly on their application. Furthermore, one must understand what each library does as well as what and when to use each function, and one must read its documentation, see the examples, and experiment with the given functions from that specific library in order to understand clearly. Of course, as a programmer and a developer, we may need to use frameworks and libraries that have already implemented by others for our applications now and in the future because we don’t have to do what has been done for us before.

Not only I have learned User Interface Frameworks in Software Engineering, but I also learned the Coding Standards. Coding is like grammar on every language for humans, and everyone must speak in the right order in order to help others understand, or even help you to understand. Notice, I did not write “make others understand” but rather “help others understand” because as long as you say something, it may make sense to others, but it may confuse someone else. Similarly, in coding, if your code does work like you intend to, there may be ca conflict between other developers. For JavaScript, there is a coding standard tool called ES Lint that helps developers to maintain the code consistency as well as to help resolve any confusion when working with multiple developers in a team. I have done something like this similarly in the past, but in Ruby called Rubocop. Basically, it tries to correct your code if the convention of coding is a bit off, and you must listen to it by fixing that specific error that it has warned you. Lint helps many developers/programmers because it may help to avoid security flaws and/or optimizing any performance of the code. The coding standard for developing an application requires a lot of effort when writing the code. It is always best to use lint on whatever you are programming for, in any language, because, at the end of the day, we all may want to make our code work like intendedly, as well as to make it consistent for ourselves and others to read, in which helps our performance on our application!

I am looking forward to building an application that both uses a framework and lint in my future career!