Embarking on the journey of studying software engineering has been an illuminating expedition into the world of coding and the tools that shape the digital landscape. At first, I thought I knew what I would be going into as I figured software engineering would be my firsthand experience of coding something that mirrors closely with using code to solve actual real-world problems. However, as a novice navigating through the complexities of this field, I learned along the way that software engineering encapsulated more than just coding to solve real-world problems. I initially encountered concepts like UI frameworks and coding standards which were novel to me.
Delving into the world of UI frameworks during my software engineering journey was an eye-opening experience. Initially unfamiliar with the concept, I discovered that frameworks are essentially pre-built components designed to expedite software development, serving as a toolkit to avoid redundancy in coding. The analogy of frameworks as a language resonated with me as I encountered terms like “React,” “SemanticUI,” and “Bootstrap” on resumes, initially mistaking them for programming languages. Bootstrap 5, my first UI framework encounter, unveiled a world of possibilities and introduced me to the structural aspects of webpage design, such as navigation bars and footers.
However, navigating the power of Bootstrap’s pre-built components posed its own set of challenges. The process mirrored the frustrations of learning a new language—trying to get a grasp of the vocabulary and grammar patterns. Despite moments of struggle and the temptation to give up, I came to appreciate the nature of learning frameworks. It became clear that, similar to new language learning, mastery requires time and practice. The initial frustration transformed into a recognition of the long-term benefits, simplifying the creation of expressive web content and technologies. The journey, though tedious and somewhat frustrating, underscored the beauty of frameworks—complex in the beginning but ultimately rewarding in streamlining the path to bringing new ideas to life.
With the concept of frameworks in mind, I hope to apply this concept to my learning in other subjects outside of software engineering. To me, the general concept of frameworks is similar to having a toolbox that helps shape and outline tasks. As a student, I hope to apply the concept of frameworks to things like time management and goal setting, as having methods in my toolbox to tackle these things as part of my life as student can help me structure and lay things out so I can improve such things while learning.
The concept of coding standards, a concept that initially emerged during my second semester in ICS 212, unfolded as a subtle but powerful influence on my coding practices. Initially, my urge to lean towards aesthetically pleasing code, marked by proper indentation and spacing, was a personal choice driven by a desire for visual clarity. However, the formal introduction to coding standards brought about a shift in perspective. Beyond mere aesthetics, coding standards enforced rules governing elements such as line length and brace placement. The initial frustration of conforming to these seemingly trivial standards transformed into an understanding of their crucial role in maintaining consistency within code. As I grappled with these standards throughout my ICS 212 assignments, I realized their significance in facilitating collaborative development across diverse environments. Coding standards emerged not as a pursuit of “picture-perfect” code but as a practical means to ensure that code remains readable, reviewable, and adaptable across varied hardware and software setups.
Supplementing this learning, the integration of ESLint into my JavaScript coding workflow introduced an active and dynamic approach to adherence. ESLint, serving as a real-time linter, actively checked for both programming and style errors while I coded, providing instant feedback and fostering a habit of adhering to coding standards. The green checkmark at the end of a successful check became a rewarding sight, signifying not just neat and organized code but also efficient practices, such as using variables purposefully and calling functions judiciously. Despite occasional challenges with new syntax, such as those introduced by ES6, ESLint served as a valuable tool in navigating these complexities. The resulting improvement in code consistency not only benefits individual projects but also positions me for collaborative success in diverse development and testing environments. Through this journey, I’ve come to understand that coding standards are not constraints but tools that enhance the quality and adaptability of code, fostering a collaborative and efficient coding culture.
The concept of coding standards goes beyond just proper formatting in coding to sustain efficient practices for both myself as coder and for others to view. This concept can also be applied outside of software engineering. The big purpose of conforming to coding standards was to maintain consistency. Should I apply the concept similar to coding standards to my life as student, I can help myself to maintain consistency in what I do. It can help me to develop proper habits when I go about my lifestyle in general and even as a student and employee in the workforce. Hopefully I can set standards for myself to help structure my routines when doing homework, studying, or just going about other tasks in my lifestyle.
This journey in my learning of software engineering opened my eyes to a lot, not just in developing software and programs that would solve problems, but also in various concepts that help foster the process in software engineering and in life. All of what I’ve learned are now a part of my toolbox, all of which can be applied both in the crafty coding world and in the real-world.