Software Engineering After ICS 314

20 Dec 2024

In a Nutshell

After six years of “computer science,”—starting as a programmer on my high school robotics team—I’ve come to appreciate how far I’ve progressed. Computer science is not just programming I have come to realize, but all the processes and concepts including software and hardware, problem-solving, cybersecurity, and other concepts. More importantly, it is about applying these principles to use the available resources to develop and produce technologies and systems to solve problems, effectively making the life more efficient and easier.

Learning Highlights

ESLint React Icon Bootstrap Icon

Putting It Together

Learning about user interface (UI) frameworks (Basics) was fun and very straightforward. UI frameworks are prebuilt tools and libraries to create user interfaces for applications. At the first exposure of HTML, I did not learn much, however, with the interactive tutorial on FreeCodeCamp, I found it easier to learn HTML. I was able to understand the basics through the provided explanations of each HTML tag

The CSS tutorial was just as helpful as the HTML tutorial. I understood how classes and IDs were used to group and format elements in the body of the HTML. Sometimes, getting the correct formatting was simple and fast. Other times, it was tedious and frustrating. However, with Bootstrap, some of the more frustrating formats were easier to do.

With libraries available, like React and Bootstrap, it seems like learning vanilla HTML and CSS was wasted effort. However, I feel like by learning HTML and CSS first, I was able to fully and easily understand how to create webpages using the available components. This was also amplified with the practice and in-class WODS. When it comes to creating mockup pages, it is almost muscle memory.

In addition to UI frameworks, I also had practice in functional programming. Functional programming creates, applies, and combines functions. Functions are everything; they are treated like variables. They can be stored like a vairable, passed as an argument, and even return by a function. At first, functional programming was hard to grasp. However, with time and practice, I understood the structure and logic behind the syntax. Functional programming made the code easier to read, making it cleaner and more concise. It allowed for the use of reusable and maintainable code. For the first few weeks of the semester, we focused on the TypeScript programming language.

It is easy to write code. However, writing clean code is a challenge, which leads us to the importance of coding standards. Coding standards is a blueprint of best practices that acts as a benchmark when writing code. It is important because it increases code readability and quality. Beyond software engineering, it improves collaboration, organization, and efficiency. Easy to read code is easier to debug because one is can understand the logic and structure of the code, thus making spotting errors easier. Painful and tedious it may be, but will save hours of effort later on.

Not only are these skills beneficial in web application development but the concepts behind them can be applied to other concepts in software engineering and computer science, and even problem-solving. For example, UI frameworks allows for consistent design and interactivity for different applications and platforms. The available libraries are open to all users, encouraging others to collaborate together.

Conclusion

I remember when I was walking at an empty high school campus going to a summer programming camp for robotics. It was the first time I had ever tapped into anything computer science-related. I sat in a chair staring blankly at the slides the senior programmers were sharing to teach us the basics of Java. Then, throwing an exercise at us. The famous print “Hello world!” Without any programming experience and not understanding what they had just said, I stared at the computer right in front of me, not thinking to look up at the slides to see the example they had provided. But once I saw the resemblance of the code I wrote and the one they had shown, everything seemed to click.

To not be a burden in robotics, I took all the available computer science classes in high school. However, that made me more invested in computer science, and led me to pursue a degree in computer science. During summer camp, I followed the “Monkey see, monkey do” strategy. I paid close attention to the examples they showed us and connected everything together as I programmed. To this day, I continue learning about what I was typing. And moving forward, I hope to improve my understanding in not only programming, but develop my skills and knowledge in computer science, more specifically, software engineering.