Learn. Reflect. Repeat.

09 May 2024

Starting from Scratch

I first entered the world of software engineering at the start of 2024 in ICS 314. Stepping into the world of software engineering proved to be very challenging, as I have limited experience coding. I am a business major, so taking ICS 314 was a shot in the dark. I wanted to challenge myself and get uncomfortable with my abilities to develop my transferable skills in coding. I do believe that I have learned some valuable skills that I would like to share with you. Although they may be obscure in nature, the lessons that I learned had a large impact on my thought process.

I started to use React Bootstrap a few months ago as my first introduction to a user interface framework. A UI framework is a pre-built library that can be used to create front-end user interfaces. The only experience I have with these frameworks is React with Bootstrap. I believe that the lightweight framework creates a fast and responsive coding experience where you can create complex page elements in seconds with preset tags and formatting. Instead of doing significantly more work with HTML and CSS, you can utilize pre-built items to put together a functional page very quickly. Another benefit is the framework’s ability to be properly displayed on phones, tablets, and monitors with few drawbacks. I can see myself trying to create a website design for myself or a small project that needs seamless cross-platform support. Using React Bootstrap, I can easily create a website design that is fast to make, lightweight, and supportive of multiple platforms. I do not possess the knowledge to make something from scratch that is also capable of being up to par with modern standards in a timely manner. I would like to think I can develop these skills, but the reality is that utilizing tools that shortcut these issues is easy to do and provides real results.

Divide and Conquer

When tackling a large problem, it is best to write down what your goal is and the concrete steps and progress markers you expect to hit. Agile project management is very similar to this problem-solving approach, as it utilizes many of the same steps. Agile project management breaks down the problem into iterations or steps, adapts to a changing environment or situation, and is flexible enough to improve on pre-established ideas. All of these features of agile development play perfectly into logically thought-out procedures that enable you to make a clear but unknown route to success. What I mean by this is that the winning conditions are clearly laid out, but the path to each step can be different depending on the situation at hand.

Walking the path of uncomfortable lessons yields the greatest amount of information learned. Creating and solidifying solutions to simple problems helps tackle larger problems in the future. I enjoyed learning about many different aspects of software engineering and the many ways to view, code, and practice it. Although I am not majoring in computer science, I found immense value and satisfaction in taking this course. I hope to see myself one day putting into practice the lessons I have learned on my journey through software engineering.